Version estable

master
Gerardo 2022-01-18 22:59:02 +01:00
parent 6bacb65e2c
commit 4a9023ba27
6 changed files with 89 additions and 17 deletions

View File

@ -13,6 +13,7 @@
#include "MqttVarManager.h"
#include "MqttUtiles.h"
#include "MqttSensManager.h"
#include "MqttDesencadenadorManager.h"
class PubSubClient;
class WiFiClient;
class MqttSensManager;
@ -54,6 +55,7 @@ class DomoEspManager: public MqttReceiver
WifiManager wifi;
MqttManager mqtt;
MqttDesencadenadorManager des;
bool suscrito;
//PubSubClient client_qqtt(WifiManager::espClient);

View File

@ -9,7 +9,40 @@ MqttOper::MqttOper()
}
bool MqttOper::Test(MqttVarManager* vars)
{
return false;
bool res=false;
switch(oper)
{
case(Igual_val_oper):
{
MqttVar* v=vars->Get(x);
if(v->flags & MqttVar::FLOAT_VAR )
res=val.f==v->val.f;
else
res=val.i==v->val.i;
break;
}
case(Menor_val_oper):
{
MqttVar* v=vars->Get(x);
if(v->flags & MqttVar::FLOAT_VAR )
res=val.f<v->val.f;
else
res=val.i<v->val.i;
break;
}
case(Mayor_val_oper):
{
MqttVar* v=vars->Get(x);
if(v->flags & MqttVar::FLOAT_VAR )
res=val.f>v->val.f;
else
res=val.i>v->val.i;
break;
}
default:
break;
}
return res;
}
//*******************************************************************
MqttOperArray::MqttOperArray()
@ -89,6 +122,23 @@ void MqttEfecto::Exe(MqttVarManager *vars)
}
}
//*******************************************************************
MqttEfectoArray::MqttEfectoArray()
{
n=0;
}
MqttEfecto* MqttEfectoArray:: Get(int i)
{
return &(data[i]);
}
int MqttEfectoArray::Add(MqttEfecto* var)
{
data[n]=*var;
n++;
return n-1;
}
//*******************************************************************
MqttDesencadenador::MqttDesencadenador()
{
tipo=0;

View File

@ -6,10 +6,18 @@
//clase de relacciones/operaciones************************************************
class MqttOper
{
//
public:
enum TipoOperacion
{
Igual_val_oper,
Menor_val_oper,
Mayor_val_oper,
};
byte x;//indice a variable 1
byte y;//indice a variable 2
byte oper;
MQTTvalor val;
byte oper;//tipo de operacion
MqttOper();

View File

@ -59,7 +59,6 @@ MqttSensManager::MqttSensManager()
SetTimeRefres(15);//por defecto 15 segundos
n_inter=0;
pMqttSensManager=this;
cambioInterrup=0;
}
void MqttSensManager::SetTimeRefres(int seg)
{
@ -362,18 +361,8 @@ void MqttSensManager::procesaInterrupciones()
void MqttSensManager::OnInterrupcion(int i)
{
MqttSensor* s=sens.Get(ind_interrup[i]);
#ifdef DEBUG_PS
Serial.print("OnInterrupcion: ");
Serial.print(i);
Serial.print(" Sensor en cambio:");
Serial.println(chg_interrup[i]);
#endif
chg_interrup[i]=true;
MqttChangeInterrup=true;
//MqttSensor* s=sens.Get(ind_interrup[i]);
MqttChangeInterrup=true;
}
void MqttSensManager::ConfiguraInterrupcion(int isen)
{

View File

@ -41,7 +41,7 @@ class MqttVar
OUT_VAR=0x01,//variable de salida (acepta set)
IN_VAR=0x02,//variable de entrada (publica get)
PRIV_VAR=0x04,//variable privada de entrada (acepta get como si fueran set)
FLOAT_VAR=0x08,
FLOAT_VAR=0x08,//variable en coma flotante
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)

View File

@ -9,7 +9,7 @@ class ActualDomoConfig: public DomoConfig
strcpy(ssidWifi,"Idhun");//nombre wifi
strcpy(keyWifi,"Ardileorca1234.");//key wifi
strcpy(ideEsp,"Esp8266_010");//idenitificador del esp (sera único)
strcpy(ideEsp,"Esp8266_011");//idenitificador del esp (sera único)
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
portMQTT=1883;//puerto del servidor mqtt Broker
@ -41,6 +41,29 @@ class ActualDomoConfig: public DomoConfig
}
};
class CocinaDomoConfig: public DomoConfig
{
public:
CocinaDomoConfig()
{
velocidadPortSerie=115200;
strcpy(ssidWifi,"Idhun");//nombre wifi
strcpy(keyWifi,"Ardileorca1234.");//key wifi
strcpy(ideEsp,"Esp8266_010");//idenitificador del esp (sera único)
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
portMQTT=1883;//puerto del servidor mqtt Broker
refresTimeVars=30;//tiempo de refresco en segundos de las variables
refresTimeSens=15;//tiempo de refresco en segundos de los sensores
}
//configuracion de sensores---------------------------------
virtual void ConfigSens(MqttSensManager* sens)
{
sens->AddHDT22(D4, "casa/cocina");
sens->AddDinAccion(D5, "casa/cocina/mov");
sens->AddAnalogIn(0, "casa/cocina/luz",true);
}
};
//configuracion que se usara--------------------------
ActualDomoConfig ConfiguracionActual;