537 lines
12 KiB
C++
537 lines
12 KiB
C++
|
|
#ifndef DomoConfActualDef
|
|
#define DomoConfActualDef 1
|
|
|
|
#include "automatismos.h"
|
|
|
|
|
|
|
|
//configuraciones-----------------------------------------------------
|
|
|
|
class PruebaConexiones: public DomoEspConfig
|
|
{
|
|
SensorDHT dht;
|
|
SensorDout led;
|
|
public:
|
|
PruebaConexiones()
|
|
{
|
|
strcpy(hostMQTT,"192.168.2.115");//servidor mqttBroker
|
|
strcpy(ssidWifi,"IdhunDesa");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_PCon");//idenitificador del esp (sera único)
|
|
dht.set(D1,"casa/PCon");
|
|
led.set(D4, "casa/PCon/led",0,0);
|
|
}
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&dht);
|
|
man->Add(&led);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
class ConfAutomatismos: public DomoEspConfig
|
|
{
|
|
SensorRF presencia;
|
|
SensorRF nivelLuz;
|
|
SensorRF out;
|
|
SensorVF bloqueo;
|
|
|
|
AutomatismoPulsador pulsador;
|
|
AutomatismoPresencia Apresen;
|
|
public:
|
|
ConfAutomatismos()
|
|
{
|
|
strcpy(ssidWifi,"IdhunAux");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_auto");//idenitificador del esp (sera único)
|
|
//pulsador sin activadores
|
|
presencia.set("casa/pruebas/inter",0);
|
|
nivelLuz.set("casa/pruebas/ana",0);
|
|
out.set("casa/pruebas/luz",0);
|
|
bloqueo.set("casa/pruebas/auto", true);
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&presencia);
|
|
man->Add(&nivelLuz);
|
|
man->Add(&out);
|
|
man->Add(&bloqueo);
|
|
Apresen.inicia(man, &presencia, &nivelLuz,&out, &bloqueo);
|
|
pulsador.inicia(man,"casa/pruebas/pul", "casa/pruebas/luz");
|
|
//pulsadorSalon.inicia(man,"casa/pruebas/pul", "casa/pruebas/luz");
|
|
}
|
|
|
|
};
|
|
class ConfSpliter: public DomoEspConfig
|
|
{
|
|
SensorBMP180 bmp;
|
|
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
|
|
{
|
|
|
|
SensorDout luz;
|
|
SensorDHT dht;
|
|
SensorPulsante pul;
|
|
SensorDin interup;
|
|
SensorAin analog;
|
|
SensorVF sv;
|
|
Actuador actTimer;
|
|
SensorTimer st;
|
|
SensorBuzzer buz;
|
|
public:
|
|
ConfActual()
|
|
{
|
|
strcpy(ssidWifi,"IdhunAux");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_pruebas");//idenitificador del esp (sera único)
|
|
|
|
luz.set(D1, "casa/pruebas/luz",0);
|
|
dht.set(D0, "casa/pruebas/dht");
|
|
pul.set(D2,"casa/pruebas/pul",1);
|
|
interup.set(D3,"casa/pruebas/inter");
|
|
analog.set(0,"casa/pruebas/ana",0, 1);
|
|
//analog.set(0,"casa/pruebas/ana",0, 0);*/
|
|
|
|
sv.set("casa/pruebas/vir",0);
|
|
|
|
st.set("casa/pruebas/timer", 0, 5);
|
|
actTimer.set("casa/pruebas/inter", "casa/pruebas/timer", "1");
|
|
actTimer.setId("aTimer");
|
|
actTimer.AddActivador(&interup, '<', 1);
|
|
buz.set("casa/pruebas/buz", D4);
|
|
buz.setMelodia(0, "m200#100d200#0");//titu
|
|
buz.setMelodia(1, "d200#100d200#100d200#100f200#100l300#0");//titu
|
|
|
|
}
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&luz);
|
|
man->Add(&dht);
|
|
man->Add(&pul);
|
|
man->Add(&interup);
|
|
man->Add(&analog);
|
|
man->Add(&sv);
|
|
man->Add(&st);
|
|
man->Add(&actTimer);
|
|
man->Add(&buz);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
class ConfCocina: public DomoEspConfig
|
|
{
|
|
SensorDHT dht;
|
|
SensorAin luz;
|
|
SensorDout lampara;
|
|
SensorPulsante presencia;
|
|
SensorTimer tpresencia;
|
|
|
|
SensorDin interruptor;
|
|
SensorVF enable;
|
|
|
|
AutomatismoPresencia actuador;
|
|
AutomatismoPulsador actuadorPul;
|
|
Actuador actp1;
|
|
public:
|
|
ConfCocina()
|
|
{
|
|
strcpy(ssidWifi,"Idhun");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_cocina");//idenitificador del esp (sera único)
|
|
|
|
|
|
/*
|
|
int cociMov= vars->AddInternalVarInt( "casa/cocina/mov");
|
|
int cociLuz= vars->AddInternalVarInt( "casa/cocina/luz");
|
|
int cociLam= vars->AddInternalVarInt( "casa/cocina/lam");
|
|
int cociAuto= vars->AddInternalVarInt("casa/cocina/luzAuto");
|
|
*/
|
|
dht.set(D4,"casa/cocina");
|
|
|
|
luz.set(0, "casa/cocina/luz",1,0);
|
|
lampara.set(D2, "casa/cocina/lam",0,0);
|
|
presencia.set(D5, "casa/cocina/movPul",0);
|
|
tpresencia.set("casa/cocina/mov",0, 60);
|
|
enable.set("casa/cocina/luzAuto", 1);
|
|
interruptor.set( D1, "casa/cocina/inter", false);
|
|
actp1.set("casa/cocina/movPul", "casa/cocina/mov","1");
|
|
|
|
|
|
}
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&dht);
|
|
|
|
man->Add(&luz);
|
|
man->Add(&lampara);
|
|
man->Add(&presencia);
|
|
man->Add(&tpresencia);
|
|
man->Add(&enable);
|
|
man->Add(&interruptor);
|
|
man->Add(&actp1);
|
|
|
|
actuadorPul.inicia(man, &interruptor, &lampara);
|
|
actuador.inicia(man, &tpresencia, &luz, &lampara, &enable);
|
|
|
|
}
|
|
|
|
};
|
|
class Confdespacho: public DomoEspConfig
|
|
{
|
|
SensorDHT dht;
|
|
SensorAin nivelLuz;
|
|
SensorLcd senlcd;
|
|
|
|
SensorRF tcocina;
|
|
SensorRF hcocina;
|
|
SensorRF tdesp;
|
|
SensorRF hdesp;
|
|
SensorRF tsal;
|
|
SensorRF hsal;
|
|
LiquidCrystal lcd{D5,D6,D3,D2,D1,D0};
|
|
|
|
public:
|
|
Confdespacho()
|
|
{
|
|
|
|
strcpy(ssidWifi,"IdhunAux");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_Despacho");//idenitificador del esp (sera único)
|
|
|
|
dht.set(D4, "casa/desp");
|
|
nivelLuz.set(0,"casa/desp/luz",1, 0);
|
|
|
|
senlcd.set("casa/desp/lcd", &lcd, 16,2, 7);
|
|
tcocina.set("casa/ext/t");
|
|
hcocina.set("casa/ext/h");
|
|
tsal.set("casa/Salon/t");
|
|
hsal.set("casa/Salon/h");
|
|
tdesp.set("casa/desp/t");
|
|
hdesp.set("casa/desp/h");
|
|
senlcd.AddPan("T ext: %s\nH ext: %s",&tcocina, &hcocina);
|
|
senlcd.AddPan("T desp: %s\nH desp: %s",&tdesp, &hdesp);
|
|
senlcd.AddPan("T salon: %s\nH salon: %s",&tsal, &hsal);
|
|
|
|
}
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&dht);
|
|
man->Add(&nivelLuz);
|
|
man->Add(&senlcd);
|
|
|
|
man->Add(&tcocina);
|
|
man->Add(&hcocina);
|
|
|
|
man->Add(&tdesp);
|
|
man->Add(&hdesp);
|
|
|
|
man->Add(&tsal);
|
|
man->Add(&hsal);
|
|
|
|
|
|
|
|
}
|
|
};
|
|
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",0, 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);
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
class ConfigAltavozCocina: public DomoEspConfig
|
|
{
|
|
|
|
SensorDout ampli;
|
|
SensorDout altavoz;
|
|
SensorDout radio;
|
|
|
|
SensorPotenI2c poten;
|
|
|
|
SensorTimer pulso;
|
|
AutomatismoPulsarBoton pulsador;
|
|
public:
|
|
ConfigAltavozCocina()
|
|
{
|
|
|
|
strcpy(ssidWifi,"IdhunAux");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_Av_cocina");//idenitificador del esp (sera único)
|
|
|
|
ampli.set(D4,"casa/cocina/alt",0,1);
|
|
altavoz.set(D3,"casa/cocina/blue",0,1);
|
|
radio.set(D5,"casa/cocina/arad",0);
|
|
poten.set("casa/cocina/volu",50, 0);
|
|
pulso.set("casa/cocina/rad",1,1);
|
|
}
|
|
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
|
|
poten.IniciaWire(D2, D1);
|
|
pulsador.inicia(man,&pulso, &radio);
|
|
man->Add(&pulso);
|
|
man->Add(&radio);
|
|
man->Add(&altavoz);
|
|
man->Add(&li);
|
|
man->Add(&poten);
|
|
|
|
}
|
|
};
|
|
|
|
class ConfLamSalon: public DomoEspConfig
|
|
{
|
|
|
|
SensorDout lambiente;
|
|
SensorDout lchimenea;
|
|
|
|
|
|
public:
|
|
ConfLamSalon()
|
|
{
|
|
strcpy(ssidWifi,"Idhun");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_lamSalon");//idenitificador del esp (sera único)
|
|
|
|
|
|
lchimenea.set(D1,"casa/Salon/LChime",1, 0);
|
|
lambiente.set(D2,"casa/Salon/LAmb",1, 0);
|
|
}
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&lambiente);
|
|
man->Add(&lchimenea);
|
|
}
|
|
|
|
};
|
|
class ConfHabitacionPrincipal: public DomoEspConfig
|
|
{
|
|
SensorDHT dht;
|
|
SensorDout radio;
|
|
public:
|
|
ConfHabitacionPrincipal()
|
|
{
|
|
strcpy(ssidWifi,"IdhunAux");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_HP");//idenitificador del esp (sera único)
|
|
dht.set(D4,"casa/habPrin");
|
|
radio.set(D0, "casa/habPrin/rad",0,0);
|
|
}
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&dht);
|
|
man->Add(&radio);
|
|
|
|
}
|
|
|
|
};
|
|
class ConfHabitacionNinas: public DomoEspConfig
|
|
{
|
|
SensorDHT dht;
|
|
SensorDout cartel;
|
|
SensorDin interruptor;
|
|
AutomatismoPulsador actuadorPul;
|
|
public:
|
|
ConfHabitacionNinas()
|
|
{
|
|
strcpy(ssidWifi,"IdhunAux");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_HN");//idenitificador del esp (sera único)
|
|
|
|
|
|
/*
|
|
int cociMov= vars->AddInternalVarInt( "casa/cocina/mov");
|
|
int cociLuz= vars->AddInternalVarInt( "casa/cocina/luz");
|
|
int cociLam= vars->AddInternalVarInt( "casa/cocina/lam");
|
|
int cociAuto= vars->AddInternalVarInt("casa/cocina/luzAuto");
|
|
*/
|
|
dht.set(D0,"casa/habNin");
|
|
cartel.set(D2, "casa/habNin/cartel",0,0);
|
|
interruptor.set( D1, "casa/habNin/inter", false);
|
|
}
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&dht);
|
|
man->Add(&cartel);
|
|
man->Add(&interruptor);
|
|
actuadorPul.inicia(man, &interruptor, &cartel);
|
|
|
|
}
|
|
|
|
};
|
|
class ConfPruebaDHT: public DomoEspConfig
|
|
{
|
|
SensorDHT dht;
|
|
|
|
public:
|
|
ConfPruebaDHT()
|
|
{
|
|
strcpy(ssidWifi,"IdhunAux");//nombre wifi
|
|
strcpy(ideEsp,"Esp8266_dht");//idenitificador del esp (sera único)
|
|
dht.set(D0, "casa/pruebas/dht");
|
|
}
|
|
virtual void inicia(ISensorManager* man)
|
|
{
|
|
man->Add(&dht);
|
|
}
|
|
|
|
};
|
|
|
|
PruebaConexiones ConfiguracionActual;
|
|
|
|
#endif |