DomoEsp_v2.0/DomoEspSensor/configuracionActual.h

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(&ampli);
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