Lcd estable

master
Gerardo 2022-01-19 19:45:49 +01:00
parent 4a9023ba27
commit 3ac8960648
12 changed files with 320 additions and 55 deletions

View File

@ -4,12 +4,13 @@ DomoEspManager::DomoEspManager()
{ {
vars.config(NULL, NULL); vars.config(NULL, NULL);
vars.AddListenner(&sens); vars.AddListenner(&sens);
vars.AddListenner(&des);
sens.Config(&vars); sens.Config(&vars);
suscrito=false; suscrito=false;
} }
void DomoEspManager::inicia(PubSubClient *mqttClient, WiFiClient* espClient, DomoConfig* conf) void DomoEspManager::inicia( LiquidCrystal *lcd, PubSubClient *mqttClient, WiFiClient* espClient, DomoConfig* conf)
{ {
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("Inicia Wifi"); Serial.println("Inicia Wifi");
@ -23,7 +24,7 @@ void DomoEspManager::inicia(PubSubClient *mqttClient, WiFiClient* espClient, Dom
Serial.println("Configura Sensores"); Serial.println("Configura Sensores");
#endif #endif
//pasar funcion de configuracion de añadir sensores //pasar funcion de configuracion de añadir sensores
conf->ConfigSens(&sens); conf->ConfigGen(&sens, &vars, &lcdm);
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("Inicia variables"); Serial.println("Inicia variables");
#endif #endif
@ -35,6 +36,12 @@ void DomoEspManager::inicia(PubSubClient *mqttClient, WiFiClient* espClient, Dom
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("Iniciado esp"); Serial.println("Iniciado esp");
#endif #endif
des.inicia(&vars);
#if CON_LCD
lcdm.inicia(&vars, lcd, conf->lcd.colum, conf->lcd.lines);
#endif
} }
@ -61,11 +68,19 @@ void DomoEspManager::loop()
sens.loop(); sens.loop();
vars.loop(); vars.loop();
des.loop();
#if CON_LCD
lcdm.loop();
#endif
} }
void DomoEspManager::OnMqtt(char* topic, char* payload) void DomoEspManager::OnMqtt(char* topic, char* payload)
{ {
vars.OnMqtt(topic, payload); vars.OnMqtt(topic, payload);
//des.OnMqtt(topic, payload);
#ifdef DEBUG_PS
Serial.println("DomoEspManager::OnMqtt fin");
#endif
} }
void DomoEspManager::SubscribeMqtt(PubSubClient *client_mqtt) void DomoEspManager::SubscribeMqtt(PubSubClient *client_mqtt)

View File

@ -5,6 +5,7 @@
//#include <ESP8266WiFi.h>//este para esp8266 //#include <ESP8266WiFi.h>//este para esp8266
//#include <PubSubClient.h> //#include <PubSubClient.h>
#include <SPI.h> #include <SPI.h>
#include <LiquidCrystal.h>
/* /*
#include <SimpleDHT.h> #include <SimpleDHT.h>
#include <Wire.h> #include <Wire.h>
@ -14,16 +15,45 @@
#include "MqttUtiles.h" #include "MqttUtiles.h"
#include "MqttSensManager.h" #include "MqttSensManager.h"
#include "MqttDesencadenadorManager.h" #include "MqttDesencadenadorManager.h"
#include "LcdMQTTViewer.h"
#if CON_LCD
//configuracion del lcd--------------------------
#include <LiquidCrystal.h>
#include "LcdMQTTViewer.h"
#endif
class PubSubClient; class PubSubClient;
class WiFiClient; class WiFiClient;
class MqttSensManager; class MqttSensManager;
/* /*
* clase principal * clase principal
*/ */
class DomoLcdConfig
{
public:
//pines
byte rs;
byte en;//eneable
byte d0;
byte d1;
byte d2;
byte d3;
byte colum;
byte lines;
};
class DomoConfig class DomoConfig
{ {
public: public:
DomoLcdConfig lcd;
char ssidWifi[24]; char ssidWifi[24];
char keyWifi[32]; char keyWifi[32];
@ -36,8 +66,7 @@ class DomoConfig
int refresTimeSens;//tiempo de refresco en segundos de los sensores int refresTimeSens;//tiempo de refresco en segundos de los sensores
virtual void ConfigSens(MqttSensManager* sens)=0; virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd)=0;
}; };
@ -45,6 +74,9 @@ class DomoConfig
class DomoEspManager: public MqttReceiver class DomoEspManager: public MqttReceiver
{ {
public: public:
//variables------------- //variables-------------
//MqttVarArray avar; //MqttVarArray avar;
//MqttTopicAttay topics; //MqttTopicAttay topics;
@ -56,12 +88,13 @@ class DomoEspManager: public MqttReceiver
MqttManager mqtt; MqttManager mqtt;
MqttDesencadenadorManager des; MqttDesencadenadorManager des;
LcdMQTTViewer lcdm;
bool suscrito; bool suscrito;
//PubSubClient client_qqtt(WifiManager::espClient); //PubSubClient client_qqtt(WifiManager::espClient);
DomoEspManager(); DomoEspManager();
//PubSubClient client_qqtt(espClient); //PubSubClient client_qqtt(espClient);
void inicia(PubSubClient *mqttClient, WiFiClient* espClient, DomoConfig* conf); void inicia( LiquidCrystal *lcd,PubSubClient *mqttClient, WiFiClient* espClient, DomoConfig* conf);
void loop(); void loop();
//funciones auxiliares //funciones auxiliares

View File

@ -26,6 +26,7 @@ Y PROBAR RF*/
//includes----------------------------------------- //includes-----------------------------------------
#include <SPI.h>
#include <ESP8266WiFi.h>//este para esp8266 #include <ESP8266WiFi.h>//este para esp8266
//#include <WiFi.h>//este para esp32 //#include <WiFi.h>//este para esp32
@ -45,16 +46,25 @@ DomoEspManager domoManager;
DomoEspManager domoEspManager; DomoEspManager domoEspManager;
WiFiClient EspClient; WiFiClient EspClient;
PubSubClient clienteMqtt(EspClient); PubSubClient clienteMqtt(EspClient);
LiquidCrystal *plcd=NULL;
#if CON_LCD
LiquidCrystal lcd(
ConfiguracionActual.lcd.rs,
ConfiguracionActual.lcd.en,
ConfiguracionActual.lcd.d0,ConfiguracionActual.lcd.d1,ConfiguracionActual.lcd.d2,ConfiguracionActual.lcd.d3);
#endif
//funciones principales------------------------ //funciones principales------------------------
void setup() void setup()
{ {
plcd=&lcd;
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.begin(ConfiguracionActual.velocidadPortSerie); Serial.begin(ConfiguracionActual.velocidadPortSerie);
delay(10); delay(10);
Serial.println(""); Serial.println("");
Serial.println("Iniciando"); Serial.println("Iniciando");
#endif #endif
domoManager.inicia(&clienteMqtt,&EspClient,&ConfiguracionActual); domoManager.inicia(plcd,&clienteMqtt,&EspClient,&ConfiguracionActual);
} }

View File

@ -0,0 +1,103 @@
#include <SPI.h>
#include <LiquidCrystal.h>
#include "MqttDefines.h"
#include "MqttUtiles.h"
#include "MqttVarManager.h"
#include "LcdMQTTViewer.h"
void LcdMQTTViewer::envia(char* txt, int pos, int line)
{
lcd->setCursor(pos, line);
int l = strlen(txt);
if (l < nchar)
for (int i = l; i < nchar; i++)
txt[i] = ' ';
txt[nchar] = 0;
lcd->print(txt);
}
LcdMQTTViewer::LcdMQTTViewer()
{
maxpan = 0;
tiempo = 0;
incre_t = 10 * 1000;
for (int i = 0; i < MAXINFOLCD; i++)
{
LcdConf[i].ivar=-1;
LcdConf[i].formatLCD[0] = 0;
LcdConf[i].pan = 255;
}
}
void LcdMQTTViewer::setTimer(int seg)
{
incre_t = seg * 1000;
}
void LcdMQTTViewer::envia(int pan)
{
char val[16];
char buf[32];
for (int i = 0; i < maxtInfo; i++)
{
if (LcdConf[i].pan != pan)
continue;
if(LcdConf[i].ivar>=0)
{
MqttVar *v=vars->Get(LcdConf[i].ivar);
if(v==NULL)
continue;
//pilla valor
if(v->flags & MqttVar::FLOAT_VAR)
dtostrf(v->val.f,3, 2, val);
else
sprintf(val, "%d", (int)v->val.i);
sprintf(buf, LcdConf[i].formatLCD, val);
}
else
strcpy( buf, LcdConf[i].formatLCD);
envia(buf,0, LcdConf[i].line);
}
}
void LcdMQTTViewer::inicia(MqttVarManager *v, LiquidCrystal* lcdEx, int digi, int lines)
{
vars=v;
lcd =lcdEx;
nchar = digi;
lcd->begin(nchar, lines);
for(int i=0; i<lines; i++)
{
envia("Iniciando",0,i);
}
}
void LcdMQTTViewer::loop()
{
if (!MqttUtiles::pasa_incre(&tiempo, incre_t))
return;
#ifdef DEBUG_PS
Serial.println("Refres lcd");
#endif
envia(panActual);
panActual = (panActual + 1) % (maxpan+1);
}
void LcdMQTTViewer::add(byte ivar, char* formatLCD, int line, int pan)
{
if (maxtInfo >= MAXINFOLCD)
return;
LcdConf[maxtInfo].ivar=ivar;
strcpy(LcdConf[maxtInfo].formatLCD, formatLCD);
LcdConf[maxtInfo].line = line;
LcdConf[maxtInfo].pan = pan;
maxtInfo++;
//recalcula numero de pantallas
if (maxpan < pan)
maxpan = pan;
}

View File

@ -0,0 +1,51 @@
/*#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif*/
#ifndef LcdMQTTViewerdef
#define LcdMQTTViewerdef 1
#include "MqttDefines.h"
class LiquidCrystal;
class PubSubClient;
class MqttVarManager;
struct LcdMQTTInfo
{
byte ivar;//indice a variable
char formatLCD[32];//formato
byte pan;//pantalla en la que sale
byte line;//linea en la que sale
};
#define MAXINFOLCD 8
class LcdMQTTViewer
{
public:
LiquidCrystal *lcd;
int nchar;
int maxtInfo;
int maxpan;
int panActual = 0;
unsigned long tiempo;
unsigned long incre_t;
MqttVarManager* vars;
LcdMQTTInfo LcdConf[MAXINFOLCD];
LcdMQTTViewer();
void inicia(MqttVarManager *vars, LiquidCrystal* lcdEx, int digi, int lines);
void loop();//publica datos variables
//auxiliares----------------------------------------------------------
void add(byte ivar, char* formatLCD, int line, int pan);
void setTimer(int seg);
void envia(char* txt, int pos, int line);
void envia(int pan);
void revisa();
};
#endif

View File

@ -2,6 +2,7 @@
#ifndef MqttDefinesDef #ifndef MqttDefinesDef
#define MqttDefinesDef 1 #define MqttDefinesDef 1
#define DEBUG_PS 1 #define DEBUG_PS 1
#define CON_LCD 1
class MqttOnVarChangeListenner class MqttOnVarChangeListenner
{ {
public: public:

View File

@ -178,7 +178,7 @@ MqttDesencadenadorManager::MqttDesencadenadorManager()
void MqttDesencadenadorManager::OnVarChange(int ivar) void MqttDesencadenadorManager::OnVarChange(int ivar)
{ {
revisa=true; //revisa=true;
//marca Accion-- //marca Accion--
} }

View File

@ -44,6 +44,11 @@ class MqttOperArray
class MqttCausa class MqttCausa
{ {
public: public:
enum TipoCausa
{
AND_CAUSA=1,
OR_CAUSA,
};
byte ini;//indice a primer oper byte ini;//indice a primer oper
byte n;//numero de operadores totales byte n;//numero de operadores totales
byte tipo;//tipo de causa (and or ...) byte tipo;//tipo de causa (and or ...)
@ -73,7 +78,6 @@ class MqttCausaManager
public: public:
MqttCausaArray caus; MqttCausaArray caus;
MqttOperArray oper; MqttOperArray oper;
MqttCausaManager(); MqttCausaManager();
bool IsTrue(int icau, MqttVarManager *vars); bool IsTrue(int icau, MqttVarManager *vars);

View File

@ -40,6 +40,10 @@ MqttSensor* MqttSensArray::Ivar2Sen(int ivar)
if(res->ivar==ivar) if(res->ivar==ivar)
return res; return res;
} }
#ifdef DEBUG_PS
Serial.print("Sens::Ivar2Sen: no encontrada sensor de variable: ");
Serial.println(ivar);
#endif
return NULL; return NULL;
} }
@ -270,11 +274,18 @@ void MqttSensManager::procesaSensor(int i)
void MqttSensManager::OnVarChange(int ivar) void MqttSensManager::OnVarChange(int ivar)
{ {
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("Sens::OnVarChange"); Serial.print("Sens::OnVarChange: ");
Serial.println(ivar);
#endif
MqttVar *v=vars->Get(ivar);
#ifdef DEBUG_PS
Serial.print(" topic: ");
Serial.println(vars->topics->Get(v->topic));
#endif #endif
MqttSensor *s = sens.Ivar2Sen(ivar); MqttSensor *s = sens.Ivar2Sen(ivar);
MqttVar *v=vars->Get(ivar);
if(!s) if(s==NULL)
{ {
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("Sens::OnVarChange Sensor no encontrado"); Serial.println("Sens::OnVarChange Sensor no encontrado");

View File

@ -103,7 +103,7 @@ void MqttVarManager::config(MqttVarArray *vArray, MqttTopicAttay* t)
topics=&_t; topics=&_t;
} }
int MqttVarManager::OnMqtt(char* topic, char* payload) void MqttVarManager::OnMqtt(char* topic, char* payload)
{ {
char buf[32]; char buf[32];
#ifdef DEBUG_PS #ifdef DEBUG_PS
@ -111,8 +111,8 @@ int MqttVarManager::OnMqtt(char* topic, char* payload)
Serial.println(topic); Serial.println(topic);
Serial.print("val: "); Serial.print("val: ");
Serial.println(payload); Serial.println(payload);
#endif #endif
int res=-1;
sprintf(buf, "%s",topic); sprintf(buf, "%s",topic);
int nt=strlen(buf); int nt=strlen(buf);
int ng=strlen("/get"); int ng=strlen("/get");
@ -126,7 +126,7 @@ int MqttVarManager::OnMqtt(char* topic, char* payload)
byte f=MqttVar::OUT_VAR; byte f=MqttVar::OUT_VAR;
if(isGet) if(isGet)
{ {
f=MqttVar::PRIV_VAR; f=(byte)MqttVar::PRIV_VAR;
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("OnmqttVars: get detectado"); Serial.println("OnmqttVars: get detectado");
#endif #endif
@ -138,7 +138,7 @@ int MqttVarManager::OnMqtt(char* topic, char* payload)
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("OnmqttVars: Ni get ni set"); Serial.println("OnmqttVars: Ni get ni set");
#endif #endif
return res;//no es ni get ni set return;//no es ni get ni set
} }
#ifdef DEBUG_PS #ifdef DEBUG_PS
@ -150,15 +150,13 @@ int MqttVarManager::OnMqtt(char* topic, char* payload)
//comprueba variables //comprueba variables
MqttVar* v; MqttVar* v;
int res=-1;
for(int i=0; i<vars->n; i++) for(int i=0; i<vars->n; i++)
{ {
v=vars->Get(i); v=vars->Get(i);
if((v->flags & f) && !strcmp(topics->Get(v->topic),buf)) if((v->flags & f) && !strcmp(topics->Get(v->topic),buf))
{ {
#ifdef DEBUG_PS
Serial.println("OnmqttVars: Encontrada var");
#endif
if(v->flags & MqttVar::FLOAT_VAR) if(v->flags & MqttVar::FLOAT_VAR)
{ {
float ff=v->val.f; float ff=v->val.f;
@ -173,12 +171,15 @@ int MqttVarManager::OnMqtt(char* topic, char* payload)
if(ii!=v->val.i) if(ii!=v->val.i)
res=i; res=i;
} }
if(res>0 || isGet)
OnChange(i); OnChange(i);
break;//suponemos solo una variable con el mismo topic break;//suponemos solo una variable con el mismo topic
} }
} }
#ifdef DEBUG_PS
return res; Serial.println("OnmqttVars: fin");
#endif
return;
} }
void MqttVarManager::loop() void MqttVarManager::loop()
@ -238,26 +239,15 @@ void MqttVarManager::Suscribe()
v=vars->Get(i); v=vars->Get(i);
if(v->flags & MqttVar::OUT_VAR)//suscribe al set if(v->flags & MqttVar::OUT_VAR)//suscribe al set
{ {
sprintf(buffer_t, "%s/set",topics->Get(v->topic)); sprintf(buffer_t, "%s/set",topics->Get(v->topic));
client_qqtt->subscribe(buffer_t); client_qqtt->subscribe(buffer_t);
#ifdef DEBUG_PS
Serial.print("Suscribe: ");
Serial.println(buffer_t);
#endif
} }
if(v->flags & MqttVar::PRIV_VAR)//suscribe al get
}
#ifdef DEBUG_PS
Serial.println("Variables:");
for(int i=0; i<vars->n; i++)
{ {
v=vars->Get(i); sprintf(buffer_t, "%s/get",topics->Get(v->topic));
sprintf(buffer_t, "%s",topics->Get(v->topic)); client_qqtt->subscribe(buffer_t);
Serial.println(buffer_t); }
} }
Serial.println("Fin Variables Suscritas");
#endif
} }
int MqttVarManager::AddVar(byte flags, char*topic) int MqttVarManager::AddVar(byte flags, char*topic)
{ {
@ -266,6 +256,14 @@ int MqttVarManager::AddVar(byte flags, char*topic)
v.topic=topics->Add(topic); v.topic=topics->Add(topic);
return vars->Add(&v); return vars->Add(&v);
} }
int MqttVarManager::AddInternalVarFloat( char*topic)
{
return AddVar((byte)(MqttVar::PRIV_VAR|MqttVar::FLOAT_VAR ),topic);
}
int MqttVarManager::AddInternalVarInt( char*topic)
{
return AddVar((byte)(MqttVar::PRIV_VAR),topic);
}
MqttVar* MqttVarManager::Get(int i) MqttVar* MqttVarManager::Get(int i)
{ {
return vars->Get(i); return vars->Get(i);
@ -282,7 +280,7 @@ void MqttVarManager::OnChange(int ivar)
} }
for (int i=0; i<nListenner; i++) for (int i=0; i<nListenner; i++)
{ {
onChangeListener[i]->OnVarChange(i); onChangeListener[i]->OnVarChange(ivar);
} }
} }

View File

@ -43,7 +43,7 @@ class MqttVar
PRIV_VAR=0x04,//variable privada de entrada (acepta get como si fueran set) PRIV_VAR=0x04,//variable privada de entrada (acepta get como si fueran set)
FLOAT_VAR=0x08,//variable en coma flotante FLOAT_VAR=0x08,//variable en coma flotante
ACCION_VAR=0x10,//variable de accion (publica en cada cambio) ACCION_VAR=0x10,//variable de accion (publica en cada cambio)
VOLATILE_VAR=0X20 //marca variable que una vez revisada se cambia internamente su valor (usado en desencadenadores para variables de accion) VOLATILE_VAR=0x20 //marca variable que una vez revisada se cambia internamente su valor (usado en desencadenadores para variables de accion)
}; };
@ -99,7 +99,7 @@ class MqttVarManager
void inicia(PubSubClient *client_qqtt);//inicia variables si hace falta void inicia(PubSubClient *client_qqtt);//inicia variables si hace falta
void Suscribe();//subscribe variables a mqtt void Suscribe();//subscribe variables a mqtt
int OnMqtt(char* topic, char* payload);//entra trama mqtt devuelve indice a sensor cambiado void OnMqtt(char* topic, char* payload);//entra trama mqtt devuelve indice a sensor cambiado
void loop();//publica datos variables void loop();//publica datos variables
@ -108,6 +108,8 @@ class MqttVarManager
MqttVar* Get(int i); MqttVar* Get(int i);
int AddVar(byte flags, char*topic); int AddVar(byte flags, char*topic);
int AddInternalVarFloat( char*topic);
int AddInternalVarInt( char*topic);
void PublicaVars(); void PublicaVars();
void PublicaVar(int ivar); void PublicaVar(int ivar);
void OnChange(int ivar); void OnChange(int ivar);

View File

@ -1,5 +1,7 @@
//parametros configurables************************************************* //parametros configurables*************************************************
#define DEBUG_PS 1//Descomentar para debug #define DEBUG_PS 1//Descomentar para debug
#define CON_LCD 1
class ActualDomoConfig: public DomoConfig class ActualDomoConfig: public DomoConfig
{ {
public: public:
@ -11,17 +13,27 @@ class ActualDomoConfig: public DomoConfig
strcpy(ideEsp,"Esp8266_011");//idenitificador del esp (sera único) strcpy(ideEsp,"Esp8266_011");//idenitificador del esp (sera único)
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
portMQTT=1883;//puerto del servidor mqtt Broker portMQTT=1883;//puerto del servidor mqtt Broker
refresTimeVars=30;//tiempo de refresco en segundos de las variables refresTimeVars=30;//tiempo de refresco en segundos de las variables
refresTimeSens=15;//tiempo de refresco en segundos de los sensores refresTimeSens=15;//tiempo de refresco en segundos de los sensores
//config lcd--------------------
lcd.colum=16;//columnas lcd
lcd.lines=2;//lineas
//pines lcd
lcd.rs=D5;
lcd.en=D6;//eneable
lcd.d0=D3;
lcd.d1=D2;
lcd.d2=D1;
lcd.d3=D0;
} }
//configuracion de sensores--------------------------------- //configuracion de sensores, variables, lcd---------------------------------
virtual void ConfigSens(MqttSensManager* sens) virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd)
{ {
//sensores--------------------------------------------------------
/* /*
sens->AddHDT22(int pin, char* topic); sens->AddHDT22(int pin, char* topic);
//tempe y presion varometrica //tempe y presion varometrica
@ -34,13 +46,38 @@ class ActualDomoConfig: public DomoConfig
Sensor analogico Sensor analogico
sens->AddAnalogIn(int pin, char* topic, bool ValNegado);//nivel de luz, nivel de lluvia ... sens->AddAnalogIn(int pin, char* topic, bool ValNegado);//nivel de luz, nivel de lluvia ...
*/ */
sens->AddHDT22(D4, "casa/cocina"); sens->AddHDT22(D4, "casa/desp");
sens->AddDinAccion(D5, "casa/cocina/mov"); sens->AddAnalogIn(0, "casa/desp/luz",true);
sens->AddAnalogIn(0, "casa/cocina/luz",true); //variables----------------------------------------------------
/*
int ivar= vars->AddVar(byte flags, char*topic);//variable con flags a elegir
int ivar= vars->AddInternalVarFloat( char*topic);//variable privada
int ivar= vars->AddInternalVarInt( char*topic);//variable privada
*/
int temCoci= vars->AddInternalVarFloat( "casa/cocina/t");//variable privada
int temDesp= vars->AddInternalVarFloat( "casa/cocina/h");//variable privada
//lcd---------------------------------------------------------
lcd->add(0,"T des: %s",0,0);
lcd->add(1,"H des: %s",1,0);
lcd->add(temCoci,"T coci: %s",0,1);
lcd->add(temDesp,"H coci: %s",1,1);
/*
lcd->add(-1,"Hola",0,0);
lcd->add(-1,"como va",1,0);
lcd->add(-1,"Mi ritmo",0,1);
lcd->add(-1,"bueno pa goza",1,1);*/
} }
}; };
/*
Lcd.add("casa/Ext/dht/t", "TempEx: %s", 0, 0);
Lcd.add("casa/Ext/dht/h", "HumExt: %s", 1, 0);
Lcd.add("casa/Desp/dht/t", "TempIn: %s", 0, 1);
Lcd.add("casa/Desp/dht/h", "HumIn: %s", 1, 1);
*/
class CocinaDomoConfig: public DomoConfig class CocinaDomoConfig: public DomoConfig
{ {
public: public:
@ -56,7 +93,7 @@ class CocinaDomoConfig: public DomoConfig
refresTimeSens=15;//tiempo de refresco en segundos de los sensores refresTimeSens=15;//tiempo de refresco en segundos de los sensores
} }
//configuracion de sensores--------------------------------- //configuracion de sensores---------------------------------
virtual void ConfigSens(MqttSensManager* sens) virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd)
{ {
sens->AddHDT22(D4, "casa/cocina"); sens->AddHDT22(D4, "casa/cocina");
sens->AddDinAccion(D5, "casa/cocina/mov"); sens->AddDinAccion(D5, "casa/cocina/mov");