Version estable
parent
6bacb65e2c
commit
4a9023ba27
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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,17 +361,7 @@ 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;
|
||||
//MqttSensor* s=sens.Get(ind_interrup[i]);
|
||||
MqttChangeInterrup=true;
|
||||
}
|
||||
void MqttSensManager::ConfiguraInterrupcion(int isen)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue