DomoEsp_v1/DomoEsp_v02/config_rf.h

409 lines
15 KiB
C++

//parametros configurables*************************************************
#define DEBUG_PS 1//Descomentar para debug
#define CON_LCD 1
//va por 16
class ActDomoConfig: public DomoConfig
{
public:
ActDomoConfig()
{
velocidadPortSerie=115200;
strcpy(ssidWifi,"Idhun");//nombre wifi
strcpy(keyWifi,"Ardileorca1234.");//key wifi
strcpy(ideEsp,"Esp8266_016");//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
//config lcd--------------------
lcd.colum=16;//columnas lcd
lcd.lines=2;//lineas
//pines lcd
lcd.rs=D5;
lcd.en=D6;//eneable
lcd.d0=D3;
lcd.d1=D2;
lcd.d2=D1;
lcd.d3=D0;
}
//configuracion de sensores, variables, lcd---------------------------------
virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd, MqttDesencadenadorManager *des)
{
//sensores--------------------------------------------------------
/*
sens->AddHDT22(int pin, char* topic);
//tempe y presion varometrica
sens->AddBMP180(int sda,int scl, char* topic);
//entradas digitales
sens->AddDin(int pin, char* topic);//añade variable digital que se actualiza de manera instantanea (interruptores sensor presencia ..)
sens->AddDinAccion(int pin, char* topic);//añade variable que solo publica en el cambio (pulsadores, ...)
//salida digital
sens->AddDout(int pin, char* topic, bool defautlValor);//variable que solo publica en el cambio (pulsadores, ...)
Sensor analogico
sens->AddAnalogIn(int pin, char* topic, bool ValNegado);//nivel de luz, nivel de lluvia ...
sens->AddBuzz(int pin, char* topic);
*/
//sens->AddHDT22(D4, "casa/desp");
sens->AddBuzz(D0, "casa/p/buz");
sens->AddMelodia("m200#100d200#0");
//variables----------------------------------------------------
/*
int ivar= vars->AddVar(byte flags, char*topic);//variable con flags a elegir
int ivar= vars->AddInternalVarFloat( char*topic);//variable privada
int ivar= vars->AddInternalVarInt( char*topic);//variable privada
* /
int lamb= vars->AddInternalVarInt( "casa/Salon/LAmb");
int lchim= vars->AddInternalVarInt( "casa/Salon/LChime");
int lent= vars->AddInternalVarInt( "casa/Salon/LEnt");
int pul1= vars->AddInternalVarInt( "casa/Salon/pul1");
int pul2= vars->AddInternalVarInt( "casa/Salon/pul2");
int pul3= vars->AddInternalVarInt( "casa/Salon/pul3");
int pulIall= vars->AddInternalVarInt( "casa/Salon/intAll");
int pulAll= vars->AddInternalVarInt( "casa/Salon/pulAll");
//lcd---------------------------------------------------------
//lcd->add(0,"T des: %s",0,0);
//lcd->add(1,"H des: %s",1,0);
//lcd->add(temCoci,"T coci: %s",0,1);
//lcd->add(temDesp,"H coci: %s",1,1);
/*
//sin depender de variable
lcd->add(-1,"Hola",0,0);
lcd->add(-1,"como va",1,0);
lcd->add(-1,"Mi ritmo",0,1);
lcd->add(-1,"bueno pa goza",1,1);* /
//desencadenaores----------
char st[64];
//Efecto Interruptor-----
sprintf(st,"{%d}>0 -> {%d}=1 & {%d}=1 & {%d}=1 ",pulIall,lamb,lchim, lent);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}<1 -> {%d}=0 & {%d}=0 & {%d}=0 ",pulIall,lamb,lchim, lent);//terminar en espacios
des->AddDes(st);
//Efecto Pulsadores
sprintf(st,"{%d}>0 -> !{%d} ",pulAll,pulIall);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}>0 -> !{%d} ",pul1,lamb);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}>0 -> !{%d} ",pul2,lchim);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}>0 -> !{%d} ",pul3,lent);//terminar en espacios
des->AddDes(st);
/* */
}
};
class AutomatismosDomoConfig: public DomoConfig
{
public:
AutomatismosDomoConfig()
{
velocidadPortSerie=115200;
strcpy(ssidWifi,"Idhun");//nombre wifi
strcpy(keyWifi,"Ardileorca1234.");//key wifi
strcpy(ideEsp,"Esp8266_013");//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
//config lcd--------------------
lcd.colum=16;//columnas lcd
lcd.lines=2;//lineas
//pines lcd
lcd.rs=D5;
lcd.en=D6;//eneable
lcd.d0=D3;
lcd.d1=D2;
lcd.d2=D1;
lcd.d3=D0;
}
//configuracion de sensores, variables, lcd---------------------------------
virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd, MqttDesencadenadorManager *des)
{
//sensores--------------------------------------------------------
/*
sens->AddHDT22(int pin, char* topic);
//tempe y presion varometrica
sens->AddBMP180(int sda,int scl, char* topic);
//entradas digitales
sens->AddDin(int pin, char* topic);//añade variable digital que se actualiza de manera instantanea (interruptores sensor presencia ..)
sens->AddDinAccion(int pin, char* topic);//añade variable que solo publica en el cambio (pulsadores, ...)
//salida digital
sens->AddDout(int pin, char* topic, bool defautlValor);//variable que solo publica en el cambio (pulsadores, ...)
Sensor analogico
sens->AddAnalogIn(int pin, char* topic, bool ValNegado);//nivel de luz, nivel de lluvia ...
*/
//sens->AddHDT22(D4, "casa/desp");
//sens->AddAnalogIn(0, "casa/desp/luz",true);
//variables----------------------------------------------------
/*
int ivar= vars->AddVar(byte flags, char*topic);//variable con flags a elegir
int ivar= vars->AddInternalVarFloat( char*topic);//variable privada
int ivar= vars->AddInternalVarInt( char*topic);//variable privada
*/
int lamb= vars->AddInternalVarInt( "casa/Salon/LAmb");
int lchim= vars->AddInternalVarInt( "casa/Salon/LChime");
int lent= vars->AddInternalVarInt( "casa/Salon/LEnt");
int pul1= vars->AddInternalVarInt( "casa/Salon/pul1");
int pul2= vars->AddInternalVarInt( "casa/Salon/pul2");
int pul3= vars->AddInternalVarInt( "casa/Salon/pul3");
int pulIall= vars->AddInternalVarInt( "casa/Salon/intAll");
int pulAll= vars->AddInternalVarInt( "casa/Salon/pulAll");
//lcd---------------------------------------------------------
//lcd->add(0,"T des: %s",0,0);
//lcd->add(1,"H des: %s",1,0);
//lcd->add(temCoci,"T coci: %s",0,1);
//lcd->add(temDesp,"H coci: %s",1,1);
/*
//sin depender de variable
lcd->add(-1,"Hola",0,0);
lcd->add(-1,"como va",1,0);
lcd->add(-1,"Mi ritmo",0,1);
lcd->add(-1,"bueno pa goza",1,1);*/
//desencadenaores----------
char st[64];
//Efecto Interruptor-----
sprintf(st,"{%d}>0 -> {%d}=1 & {%d}=1 & {%d}=1 ",pulIall,lamb,lchim, lent);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}<1 -> {%d}=0 & {%d}=0 & {%d}=0 ",pulIall,lamb,lchim, lent);//terminar en espacios
des->AddDes(st);
//Efecto Pulsadores
sprintf(st,"{%d}>0 -> !{%d} ",pulAll,pulIall);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}>0 -> !{%d} ",pul1,lamb);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}>0 -> !{%d} ",pul2,lchim);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}>0 -> !{%d} ",pul3,lent);//terminar en espacios
des->AddDes(st);
}
};
class PulCocinaConfig: public DomoConfig
{
public:
PulCocinaConfig()
{
velocidadPortSerie=115200;
strcpy(ssidWifi,"Idhun");//nombre wifi
strcpy(keyWifi,"Ardileorca1234.");//key wifi
strcpy(ideEsp,"Esp8266_014");//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
//config lcd--------------------
lcd.colum=16;//columnas lcd
lcd.lines=2;//lineas
//pines lcd
lcd.rs=0;
lcd.en=0;//eneable
lcd.d0=0;
lcd.d1=0;
lcd.d2=0;
lcd.d3=0;
}
//configuracion de sensores, variables, lcd---------------------------------
virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd, MqttDesencadenadorManager *des)
{
//sensores--------------------------------------------------------
/*
sens->AddHDT22(int pin, char* topic);
//tempe y presion varometrica
sens->AddBMP180(int sda,int scl, char* topic);
//entradas digitales
sens->AddDin(int pin, char* topic);//añade variable digital que se actualiza de manera instantanea (interruptores sensor presencia ..)
sens->AddDinAccion(int pin, char* topic);//añade variable que solo publica en el cambio (pulsadores, ...)
//salida digital
sens->AddDout(int pin, char* topic, bool defautlValor);//variable que solo publica en el cambio (pulsadores, ...)
Sensor analogico
sens->AddAnalogIn(int pin, char* topic, bool ValNegado);//nivel de luz, nivel de lluvia ...
*/
sens->AddDout(D5, "casa/coci/lam", false);
sens->AddDinAccion( D1, "casa/coci/inter");
//sens->AddDinAccion( D2, "casa/Salon/pul2");
//sens->AddDinAccion( D5, "casa/Salon/pul3");
//sens->AddDinAccion( D6, "casa/Salon/pulAll");
char st[64];
//Efecto Pulsadores
sprintf(st,"{%d}>0 -> !{%d} ",1,0);//terminar en espacios
des->AddDes(st);
sprintf(st,"{%d}<1 -> !{%d} ",1,0);//terminar en espacios
des->AddDes(st);
}
};
class PulSalonConfig: public DomoConfig
{
public:
PulSalonConfig()
{
velocidadPortSerie=115200;
strcpy(ssidWifi,"Idhun");//nombre wifi
strcpy(keyWifi,"Ardileorca1234.");//key wifi
strcpy(ideEsp,"Esp8266_012");//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
//config lcd--------------------
lcd.colum=16;//columnas lcd
lcd.lines=2;//lineas
//pines lcd
lcd.rs=0;
lcd.en=0;//eneable
lcd.d0=0;
lcd.d1=0;
lcd.d2=0;
lcd.d3=0;
}
//configuracion de sensores, variables, lcd---------------------------------
virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd, MqttDesencadenadorManager *des)
{
//sensores--------------------------------------------------------
/*
sens->AddHDT22(int pin, char* topic);
//tempe y presion varometrica
sens->AddBMP180(int sda,int scl, char* topic);
//entradas digitales
sens->AddDin(int pin, char* topic);//añade variable digital que se actualiza de manera instantanea (interruptores sensor presencia ..)
sens->AddDinAccion(int pin, char* topic);//añade variable que solo publica en el cambio (pulsadores, ...)
//salida digital
sens->AddDout(int pin, char* topic, bool defautlValor);//variable que solo publica en el cambio (pulsadores, ...)
Sensor analogico
sens->AddAnalogIn(int pin, char* topic, bool ValNegado);//nivel de luz, nivel de lluvia ...
*/
//sens->AddHDT22(D4, "casa/desp");
// sens->AddDout(D1, "casa/Salon/LEnt", true);
sens->AddDout(D7, "casa/Salon/LEnt", false);
sens->AddDinAccion( D1, "casa/Salon/pul1");
sens->AddDinAccion( D2, "casa/Salon/pul2");
sens->AddDinAccion( D5, "casa/Salon/pul3");
sens->AddDinAccion( D6, "casa/Salon/pulAll");
}
};
class DespachoDomoConfig: public DomoConfig
{
public:
DespachoDomoConfig()
{
velocidadPortSerie=115200;
strcpy(ssidWifi,"Idhun");//nombre wifi
strcpy(keyWifi,"Ardileorca1234.");//key wifi
strcpy(ideEsp,"Esp8266_011");//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
//config lcd--------------------
lcd.colum=16;//columnas lcd
lcd.lines=2;//lineas
//pines lcd
lcd.rs=D5;
lcd.en=D6;//eneable
lcd.d0=D3;
lcd.d1=D2;
lcd.d2=D1;
lcd.d3=D0;
}
//configuracion de sensores, variables, lcd---------------------------------
virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd, MqttDesencadenadorManager *des)
{
//sensores--------------------------------------------------------
sens->AddHDT22(D4, "casa/desp");
sens->AddAnalogIn(0, "casa/desp/luz",true);
//variables----------------------------------------------------
int temCoci= vars->AddInternalVarFloat( "casa/cocina/t");//variable privada
int hcocina= vars->AddInternalVarFloat( "casa/cocina/h");//variable privada
int temExt= vars->AddInternalVarFloat( "casa/ext/t");//variable privada
int hExt= vars->AddInternalVarFloat( "casa/ext/h");//variable privada
//lcd---------------------------------------------------------
lcd->add(0,"T des: %s",0,0);
lcd->add(1,"H des: %s",1,0);
lcd->add(temCoci,"T coci: %s",0,1);
lcd->add(hcocina,"H coci: %s",1,1);
lcd->add(temExt,"T Ext: %s",0,2);
lcd->add(hExt,"H Ext: %s",1,2);
strcpy(lcd->topic,"casa/desp/msg");
}
};
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 ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd, MqttDesencadenadorManager *des)
{
sens->AddHDT22(D4, "casa/cocina");
sens->AddDinAccion(D5, "casa/cocina/mov");
sens->AddAnalogIn(0, "casa/cocina/luz",true);
}
};
class ExteriorDomoConfig: public DomoConfig
{
public:
ExteriorDomoConfig()
{
velocidadPortSerie=115200;
strcpy(ssidWifi,"Idhun");//nombre wifi
strcpy(keyWifi,"Ardileorca1234.");//key wifi
strcpy(ideEsp,"Esp8266_015");//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 ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd, MqttDesencadenadorManager *des)
{
sens->AddHDT22(D2, "casa/ext");
sens->AddAnalogIn(0, "casa/ext/lluvia",true);
}
};
//configuracion que se usara--------------------------
ActDomoConfig ConfiguracionActual;