arreglos spliter y configuraciones pulsador salon. negacion de dout
parent
e963db4213
commit
7a256eb46f
|
|
@ -6,7 +6,7 @@ class SensorDout: public DomoEspSensorReceiver
|
||||||
{
|
{
|
||||||
bool val;
|
bool val;
|
||||||
uint8_t pin;
|
uint8_t pin;
|
||||||
|
bool negado;
|
||||||
public:
|
public:
|
||||||
virtual float getVal()
|
virtual float getVal()
|
||||||
{
|
{
|
||||||
|
|
@ -17,11 +17,13 @@ class SensorDout: public DomoEspSensorReceiver
|
||||||
pin=0;
|
pin=0;
|
||||||
val=0;
|
val=0;
|
||||||
topic[0]=0;
|
topic[0]=0;
|
||||||
|
negado=false;
|
||||||
}
|
}
|
||||||
void set(uint8_t _pin, char* topic_id, bool valdef)
|
void set(uint8_t _pin, char* topic_id, bool valdef,bool _negado=false)
|
||||||
{
|
{
|
||||||
pin=_pin;
|
pin=_pin;
|
||||||
val=valdef;
|
val=valdef;
|
||||||
|
negado=_negado;
|
||||||
strcpy(topic, topic_id);
|
strcpy(topic, topic_id);
|
||||||
}
|
}
|
||||||
virtual void procesa(IMqttManager * man, int tiempo)
|
virtual void procesa(IMqttManager * man, int tiempo)
|
||||||
|
|
@ -44,7 +46,10 @@ class SensorDout: public DomoEspSensorReceiver
|
||||||
virtual void inicia()
|
virtual void inicia()
|
||||||
{
|
{
|
||||||
pinMode(pin, OUTPUT);
|
pinMode(pin, OUTPUT);
|
||||||
digitalWrite(pin, val);
|
if(negado)
|
||||||
|
digitalWrite(pin, val==0);
|
||||||
|
else
|
||||||
|
digitalWrite(pin, val>0);
|
||||||
}
|
}
|
||||||
virtual void SubscribeMqtt(IMqttManager* man){
|
virtual void SubscribeMqtt(IMqttManager* man){
|
||||||
//char buffer_t[MAXTOPICVAR];
|
//char buffer_t[MAXTOPICVAR];
|
||||||
|
|
@ -62,8 +67,10 @@ class SensorDout: public DomoEspSensorReceiver
|
||||||
else
|
else
|
||||||
val=(atoi(payload)==1);
|
val=(atoi(payload)==1);
|
||||||
//cambia estado relle
|
//cambia estado relle
|
||||||
|
if(negado)
|
||||||
digitalWrite(pin, val);
|
digitalWrite(pin, val==0);
|
||||||
|
else
|
||||||
|
digitalWrite(pin, val>0);
|
||||||
//loguea------------
|
//loguea------------
|
||||||
//char buffer_t[MAXTOPICVAR];
|
//char buffer_t[MAXTOPICVAR];
|
||||||
//char buffer_p[MAXTOPICVAR];
|
//char buffer_p[MAXTOPICVAR];
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ class SensorSplitter: public DomoEspSensorReceiver
|
||||||
for(int i=0; i<MAX_ACTIVADORES; i++)
|
for(int i=0; i<MAX_ACTIVADORES; i++)
|
||||||
sensorSend[i].sen=0;
|
sensorSend[i].sen=0;
|
||||||
}
|
}
|
||||||
void set(char* topic_id, float valdef)
|
void set(char* topic_id, float =0)
|
||||||
{
|
{
|
||||||
val=valdef;
|
val=0;
|
||||||
strcpy(topic, topic_id);
|
strcpy(topic, topic_id);
|
||||||
}
|
}
|
||||||
void AddSens(DomoEspSensorReceiver* sen)
|
void AddSens(DomoEspSensorReceiver* sen)
|
||||||
|
|
@ -49,12 +49,13 @@ class SensorSplitter: public DomoEspSensorReceiver
|
||||||
virtual void SubscribeMqtt(IMqttManager* man){
|
virtual void SubscribeMqtt(IMqttManager* man){
|
||||||
//char buffer_t[MAXTOPICVAR];
|
//char buffer_t[MAXTOPICVAR];
|
||||||
sprintf(buffer_t, "%s/set",topic);
|
sprintf(buffer_t, "%s/set",topic);
|
||||||
|
man->MqttSubs(buffer_t);
|
||||||
sprintf(buffer_t, "%s/pul",topic);
|
sprintf(buffer_t, "%s/pul",topic);
|
||||||
man->MqttSubs(buffer_t);
|
man->MqttSubs(buffer_t);
|
||||||
}
|
}
|
||||||
virtual void OnMqtt(IMqttManager * man, char* _topic, char* payload, int tipo)
|
virtual void OnMqtt(IMqttManager * man, char* _topic, char* payload, int tipo)
|
||||||
{
|
{
|
||||||
if(tipo!=Topic::SET || tipo!=Topic::PUL)
|
if(tipo!=Topic::SET && tipo!=Topic::PUL)
|
||||||
return;
|
return;
|
||||||
if(strcmp(_topic, topic))
|
if(strcmp(_topic, topic))
|
||||||
return;
|
return;
|
||||||
|
|
@ -66,7 +67,8 @@ class SensorSplitter: public DomoEspSensorReceiver
|
||||||
if(val==0)
|
if(val==0)
|
||||||
val=1;
|
val=1;
|
||||||
else
|
else
|
||||||
val=0; }
|
val=0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
val=atof(payload);
|
val=atof(payload);
|
||||||
for(int i=0; i<MAX_ACTIVADORES; i++)
|
for(int i=0; i<MAX_ACTIVADORES; i++)
|
||||||
|
|
@ -77,6 +79,7 @@ class SensorSplitter: public DomoEspSensorReceiver
|
||||||
man->MqttSend(buffer_t, payload);
|
man->MqttSend(buffer_t, payload);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(tipo==Topic::PUL )
|
else if(tipo==Topic::PUL )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,42 @@ class ConfAutomatismos: public DomoEspConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
class ConfSpliter: public DomoEspConfig
|
||||||
|
{
|
||||||
|
|
||||||
|
SensorDout luz;
|
||||||
|
SensorDout luz2;
|
||||||
|
|
||||||
|
SensorSplitter sp;
|
||||||
|
public:
|
||||||
|
ConfSpliter()
|
||||||
|
{
|
||||||
|
strcpy(ssidWifi,"IdhunAux");//nombre wifi
|
||||||
|
strcpy(ideEsp,"Esp8266_pruebas");//idenitificador del esp (sera único)
|
||||||
|
|
||||||
|
luz.set(D1, "casa/pruebas/luz",0);
|
||||||
|
luz2.set(D5, "casa/pruebas/luz2",0);
|
||||||
|
|
||||||
|
sp.set("casa/pruebas/sp");
|
||||||
|
sp.AddSens(&luz2);
|
||||||
|
sp.AddSens(&luz);
|
||||||
|
|
||||||
|
}
|
||||||
|
virtual void inicia(ISensorManager* man)
|
||||||
|
{
|
||||||
|
man->Add(&luz);
|
||||||
|
man->Add(&luz2);
|
||||||
|
man->Add(&sp);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
class ConfActual: public DomoEspConfig
|
class ConfActual: public DomoEspConfig
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -120,7 +155,7 @@ class Confdespacho: public DomoEspConfig
|
||||||
strcpy(ideEsp,"Esp8266_Despacho");//idenitificador del esp (sera único)
|
strcpy(ideEsp,"Esp8266_Despacho");//idenitificador del esp (sera único)
|
||||||
|
|
||||||
dht.set(D4, "casa/desp");
|
dht.set(D4, "casa/desp");
|
||||||
nivelLuz.set(0,"casa/desp/luz",0, 0);
|
nivelLuz.set(0,"casa/desp/luz",1, 0);
|
||||||
|
|
||||||
senlcd.set("casa/desp/lcd", &lcd, 16,2, 7);
|
senlcd.set("casa/desp/lcd", &lcd, 16,2, 7);
|
||||||
tcocina.set("casa/cocina/t");
|
tcocina.set("casa/cocina/t");
|
||||||
|
|
@ -151,10 +186,141 @@ class Confdespacho: public DomoEspConfig
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
class ConfigSalon: public DomoEspConfig
|
||||||
|
{
|
||||||
|
SensorDHT dht;
|
||||||
|
SensorAin nivelLuz;
|
||||||
|
SensorDin presencia;
|
||||||
|
SensorTimer presenciaTimer;
|
||||||
|
Actuador actTimer;
|
||||||
|
public:
|
||||||
|
ConfigSalon()
|
||||||
|
{
|
||||||
|
|
||||||
|
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||||
|
strcpy(ideEsp,"Esp8266_Salon");//idenitificador del esp (sera único)
|
||||||
|
|
||||||
|
dht.set(D4, "casa/Salon");
|
||||||
|
nivelLuz.set(0,"casa/Salon/luz",1, 0);
|
||||||
|
presencia.set(D5, "casa/Salon/movEven");
|
||||||
|
presenciaTimer.set("casa/Salon/mov",0,60);
|
||||||
|
actTimer.set("casa/Salon/movEven", "casa/Salon/mov","1");
|
||||||
|
actTimer.AddActivador(&presencia, '>', 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void inicia(ISensorManager* man)
|
||||||
|
{
|
||||||
|
man->Add(&dht);
|
||||||
|
man->Add(&nivelLuz);
|
||||||
|
man->Add(&presencia);
|
||||||
|
man->Add(&presenciaTimer);
|
||||||
|
man->Add(&actTimer);
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class ConfPulSalon: public DomoEspConfig
|
||||||
|
{
|
||||||
|
SensorPulsante pul1;
|
||||||
|
SensorPulsante pul2;
|
||||||
|
SensorPulsante pul3;
|
||||||
|
SensorPulsante pul4;
|
||||||
|
|
||||||
|
SensorRF lchimenea;
|
||||||
|
SensorDout lentrada;
|
||||||
|
SensorRF lambiente;
|
||||||
|
|
||||||
|
Actuador actp1;
|
||||||
|
Actuador actp2on;
|
||||||
|
Actuador actp2off;
|
||||||
|
|
||||||
|
Actuador actp3on;
|
||||||
|
Actuador actp3off;
|
||||||
|
|
||||||
|
|
||||||
|
Actuador actAllOn;
|
||||||
|
Actuador actAllOff;
|
||||||
|
|
||||||
|
SensorSplitter sp;
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
ConfPulSalon()
|
||||||
|
{
|
||||||
|
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||||
|
strcpy(ideEsp,"Esp8266_PulSalon");//idenitificador del esp (sera único)
|
||||||
|
|
||||||
|
lchimenea.set("casa/Salon/LChime");
|
||||||
|
lambiente.set("casa/Salon/LAmb");
|
||||||
|
lentrada.set(D7,"casa/Salon/LEnt",1, 1);
|
||||||
|
|
||||||
|
pul1.set(D1,"casa/Salon/pul1",0);
|
||||||
|
pul2.set(D2,"casa/Salon/pul2",0);
|
||||||
|
|
||||||
|
pul3.set(D5,"casa/Salon/pul3",0);
|
||||||
|
pul4.set(D6,"casa/Salon/pulAll",0);
|
||||||
|
|
||||||
|
actp1.set("casa/Salon/pul1","casa/Salon/LEnt","X");
|
||||||
|
actp2on.set("casa/Salon/pul2","casa/Salon/LAmb","0");
|
||||||
|
actp2off.set("casa/Salon/pul2","casa/Salon/LAmb","1");
|
||||||
|
|
||||||
|
actp3on.set("casa/Salon/pul3","casa/Salon/LChime","0");
|
||||||
|
actp3off.set("casa/Salon/pul3","casa/Salon/LChime","1");
|
||||||
|
|
||||||
|
actp2on.AddActivador(&lambiente, '>', 0);
|
||||||
|
actp2off.AddActivador(&lambiente, '<', 1);
|
||||||
|
|
||||||
|
actp3on.AddActivador(&lchimenea, '>', 0);
|
||||||
|
actp3off.AddActivador(&lchimenea, '<', 1);
|
||||||
|
|
||||||
|
sp.set("casa/Salon/pulAllSP");
|
||||||
|
sp.AddSens(&lchimenea);
|
||||||
|
sp.AddSens(&lambiente);
|
||||||
|
sp.AddSens(&lentrada);
|
||||||
|
actAllOn.set("casa/Salon/pulAll", "casa/Salon/pulAllSP","0");
|
||||||
|
actAllOff.set("casa/Salon/pulAll", "casa/Salon/pulAllSP","1");
|
||||||
|
actAllOn.AddActivador(&lentrada, '>', 0);
|
||||||
|
actAllOff.AddActivador(&lentrada, '<', 1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
virtual void inicia(ISensorManager* man)
|
||||||
|
{
|
||||||
|
man->Add(&lambiente);
|
||||||
|
man->Add(&lentrada);
|
||||||
|
man->Add(&lchimenea);
|
||||||
|
|
||||||
|
man->Add(&pul1);
|
||||||
|
man->Add(&pul2);
|
||||||
|
man->Add(&pul3);
|
||||||
|
man->Add(&pul4);
|
||||||
|
|
||||||
|
man->Add(&actp1);
|
||||||
|
|
||||||
|
man->Add(&actp2on);
|
||||||
|
man->Add(&actp2off);
|
||||||
|
|
||||||
|
man->Add(&actp3on);
|
||||||
|
man->Add(&actp3off);
|
||||||
|
|
||||||
|
|
||||||
|
man->Add(&sp);
|
||||||
|
man->Add(&actAllOn);
|
||||||
|
man->Add(&actAllOff);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ConfActual ConfiguracionActual;
|
|
||||||
|
|
||||||
|
|
||||||
|
ConfPulSalon ConfiguracionActual;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
Loading…
Reference in New Issue