Ver mensajes en display

master
Gerardo 2022-01-24 22:39:02 +01:00
parent e1dde4e137
commit c07b299e21
5 changed files with 54 additions and 8 deletions

View File

@ -7,11 +7,11 @@ DomoEspManager::DomoEspManager()
//vars.AddListenner(&des); //vars.AddListenner(&des);
sens.Config(&vars); sens.Config(&vars);
suscrito=false; suscrito=false;
} }
void DomoEspManager::inicia( LiquidCrystal *lcd, PubSubClient *mqttClient, WiFiClient* espClient, DomoConfig* conf) void DomoEspManager::inicia( LiquidCrystal *lcd, PubSubClient *mqttClient, WiFiClient* espClient, DomoConfig* conf)
{ {
mqttclient=mqttClient;
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("Inicia Wifi"); Serial.println("Inicia Wifi");
#endif #endif
@ -68,6 +68,9 @@ void DomoEspManager::loop()
if(!suscrito) if(!suscrito)
{ {
vars.Suscribe(); vars.Suscribe();
#if CON_LCD
lcdm.suscribe(mqttclient);
#endif
suscrito=true; suscrito=true;
} }
@ -83,6 +86,10 @@ void DomoEspManager::OnMqtt(char* topic, char* payload)
{ {
vars.OnMqtt(topic, payload); vars.OnMqtt(topic, payload);
des.OnMqtt(topic, payload); des.OnMqtt(topic, payload);
#if CON_LCD
lcdm.OnMqtt(topic, payload);
#endif
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("OnMqtt fin"); Serial.println("OnMqtt fin");
#endif #endif

View File

@ -77,6 +77,7 @@ class DomoEspManager: public MqttReceiver
PubSubClient *mqttclient;
//variables------------- //variables-------------
//MqttVarArray avar; //MqttVarArray avar;
//MqttTopicAttay topics; //MqttTopicAttay topics;

View File

@ -2,7 +2,7 @@
#include <SPI.h> #include <SPI.h>
#include <LiquidCrystal.h> #include <LiquidCrystal.h>
#include <PubSubClient.h>
#include "MqttDefines.h" #include "MqttDefines.h"
#include "MqttUtiles.h" #include "MqttUtiles.h"
#include "MqttVarManager.h" #include "MqttVarManager.h"
@ -21,6 +21,7 @@ void LcdMQTTViewer::envia(char* txt, int pos, int line)
} }
LcdMQTTViewer::LcdMQTTViewer() LcdMQTTViewer::LcdMQTTViewer()
{ {
topic[0]=0;
maxpan = 0; maxpan = 0;
tiempo = 0; tiempo = 0;
incre_t = 10 * 1000; incre_t = 10 * 1000;
@ -101,3 +102,38 @@ void LcdMQTTViewer::add(byte ivar, char* formatLCD, int line, int pan)
if (maxpan < pan) if (maxpan < pan)
maxpan = pan; maxpan = pan;
} }
int LcdMQTTViewer::OnMqtt(char* top, char* payload)
{
if(strcmp(top,topic))
return -1;
int i=0;
int lin=0;
int n=0;
char buf[64];
while(payload[i])
{
if(payload[i]=='\n')
{
i++;
buf[n]=0;
envia(buf,0,lin);
lin++;
n=0;
}
else
{
buf[n++]=payload[i++];
}
}
buf[n]=0;
envia(buf,0,lin);
tiempo=millis();
}
void LcdMQTTViewer::suscribe(PubSubClient *client_qqtt)
{
if(!topic[0])
return;
client_qqtt->subscribe(topic);
}

View File

@ -30,7 +30,7 @@ public:
int panActual = 0; int panActual = 0;
unsigned long tiempo; unsigned long tiempo;
unsigned long incre_t; unsigned long incre_t;
char topic[MAXSTR];//topic de mqtt Alarma
MqttVarManager* vars; MqttVarManager* vars;
@ -40,7 +40,8 @@ public:
void inicia(MqttVarManager *vars, LiquidCrystal* lcdEx, int digi, int lines); void inicia(MqttVarManager *vars, LiquidCrystal* lcdEx, int digi, int lines);
void loop();//publica datos variables void loop();//publica datos variables
int OnMqtt(char* topic, char* payload);
void suscribe(PubSubClient *client_qqtt);
//auxiliares---------------------------------------------------------- //auxiliares----------------------------------------------------------
void add(byte ivar, char* formatLCD, int line, int pan); void add(byte ivar, char* formatLCD, int line, int pan);
void setTimer(int seg); void setTimer(int seg);

View File

@ -255,6 +255,7 @@ class DespachoDomoConfig: public DomoConfig
lcd->add(hcocina,"H coci: %s",1,1); lcd->add(hcocina,"H coci: %s",1,1);
lcd->add(temExt,"T Ext: %s",0,2); lcd->add(temExt,"T Ext: %s",0,2);
lcd->add(hExt,"H Ext: %s",1,2); lcd->add(hExt,"H Ext: %s",1,2);
strcpy(lcd->topic,"casa/desp/msg");
} }
}; };
class CocinaDomoConfig: public DomoConfig class CocinaDomoConfig: public DomoConfig