Solucion errores en desencadenadores y configuraciones varias
parent
9dbe05dbad
commit
8fe41ffcac
|
|
@ -25,8 +25,10 @@ void DomoEspManager::inicia( LiquidCrystal *lcd, PubSubClient *mqttClient, WiFiC
|
||||||
#endif
|
#endif
|
||||||
//pasar funcion de configuracion de añadir sensores
|
//pasar funcion de configuracion de añadir sensores
|
||||||
|
|
||||||
des.inicia(&vars);
|
|
||||||
conf->ConfigGen(&sens, &vars, &lcdm, &des);
|
conf->ConfigGen(&sens, &vars, &lcdm, &des);
|
||||||
|
|
||||||
|
|
||||||
#ifdef DEBUG_PS
|
#ifdef DEBUG_PS
|
||||||
Serial.println("Inicia variables");
|
Serial.println("Inicia variables");
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -37,8 +39,9 @@ void DomoEspManager::inicia( LiquidCrystal *lcd, PubSubClient *mqttClient, WiFiC
|
||||||
#endif
|
#endif
|
||||||
sens.inicia();
|
sens.inicia();
|
||||||
#ifdef DEBUG_PS
|
#ifdef DEBUG_PS
|
||||||
Serial.println("Iniciado esp");
|
Serial.println("Iniciado Desencadenadores");
|
||||||
#endif
|
#endif
|
||||||
|
des.inicia(&vars);
|
||||||
#if CON_LCD
|
#if CON_LCD
|
||||||
|
|
||||||
lcdm.inicia(&vars, lcd, conf->lcd.colum, conf->lcd.lines);
|
lcdm.inicia(&vars, lcd, conf->lcd.colum, conf->lcd.lines);
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ void MqttDesencadenador::ExeEfecto(MqttVarManager *vars, char *oper, char*x, ch
|
||||||
{
|
{
|
||||||
MqttVar* v=GetVar(x, vars);
|
MqttVar* v=GetVar(x, vars);
|
||||||
MQTTvalor val=GetVarValue(x, vars);
|
MQTTvalor val=GetVarValue(x, vars);
|
||||||
if(v->flags | MqttVar::FLOAT_VAR)
|
if(v->flags & MqttVar::FLOAT_VAR)
|
||||||
val.f=atof(y);
|
val.f=atof(y);
|
||||||
else
|
else
|
||||||
val.i=atoi(y);
|
val.i=atoi(y);
|
||||||
|
|
@ -125,10 +125,10 @@ void MqttDesencadenador::procesaOper(MqttExeParam *p)
|
||||||
p->estado=0;
|
p->estado=0;
|
||||||
p->toper=true;
|
p->toper=true;
|
||||||
p->oper[p->noper]=0;
|
p->oper[p->noper]=0;
|
||||||
#ifdef DEBUG_PS
|
/* #ifdef DEBUG_PS
|
||||||
Serial.print("encontrado oper: ");
|
Serial.print("encontrado oper: ");
|
||||||
Serial.println( p->oper);
|
Serial.println( p->oper);
|
||||||
#endif
|
#endif*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -165,19 +165,19 @@ void MqttDesencadenador::procesaVar(MqttExeParam *p)
|
||||||
{
|
{
|
||||||
p->var2[p->nvar2]=0;
|
p->var2[p->nvar2]=0;
|
||||||
p->tvar2=true;
|
p->tvar2=true;
|
||||||
#ifdef DEBUG_PS
|
/* #ifdef DEBUG_PS
|
||||||
Serial.print("encontrado var2: ");
|
Serial.print("encontrado var2: ");
|
||||||
Serial.println( p->var2);
|
Serial.println( p->var2);
|
||||||
#endif
|
#endif*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
p->var1[p->nvar1]=0;
|
p->var1[p->nvar1]=0;
|
||||||
p->tvar1=true;
|
p->tvar1=true;
|
||||||
#ifdef DEBUG_PS
|
/* #ifdef DEBUG_PS
|
||||||
Serial.print("encontrado var1: ");
|
Serial.print("encontrado var1: ");
|
||||||
Serial.println( p->var1);
|
Serial.println( p->var1);
|
||||||
#endif
|
#endif*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -220,27 +220,28 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
|
||||||
if(!p.res || !activo)
|
if(!p.res || !activo)
|
||||||
{
|
{
|
||||||
activo=!p.res;
|
activo=!p.res;
|
||||||
#ifdef DEBUG_PS
|
/* #ifdef DEBUG_PS
|
||||||
|
|
||||||
Serial.println("Fin causa sale ");
|
Serial.println("Fin causa sale ");
|
||||||
#endif
|
#endif*/
|
||||||
p.sigue=false;
|
p.sigue=false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_PS
|
activo=false;
|
||||||
|
/*#ifdef DEBUG_PS
|
||||||
activo=false;
|
activo=false;
|
||||||
Serial.println("Fin causa sigue ");
|
Serial.println("Fin causa sigue ");
|
||||||
#endif
|
#endif*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(p.oper[0]=='&')
|
else if(p.oper[0]=='&')
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_PS
|
/* #ifdef DEBUG_PS
|
||||||
|
|
||||||
Serial.println("operador and ");
|
Serial.println("operador and ");
|
||||||
#endif
|
#endif*/
|
||||||
p.tcausa=true;
|
p.tcausa=true;
|
||||||
p.toper=false;
|
p.toper=false;
|
||||||
p.noper=0;
|
p.noper=0;
|
||||||
|
|
@ -249,10 +250,10 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
|
||||||
}
|
}
|
||||||
else if(p.oper[0]=='|')
|
else if(p.oper[0]=='|')
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_PS
|
/*#ifdef DEBUG_PS
|
||||||
|
|
||||||
Serial.println("operador or ");
|
Serial.println("operador or ");
|
||||||
#endif
|
#endif*/
|
||||||
p.tcausa=true;
|
p.tcausa=true;
|
||||||
p.toper=false;
|
p.toper=false;
|
||||||
p.noper=0;
|
p.noper=0;
|
||||||
|
|
@ -271,12 +272,12 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
|
||||||
else
|
else
|
||||||
p.res=p.res || Eval(vars, p.oper, p.var1, p.var2 );
|
p.res=p.res || Eval(vars, p.oper, p.var1, p.var2 );
|
||||||
|
|
||||||
#ifdef DEBUG_PS
|
/* #ifdef DEBUG_PS
|
||||||
Serial.print("validaCausa res: ");
|
Serial.print("validaCausa res: ");
|
||||||
Serial.print(p.res);
|
Serial.print(p.res);
|
||||||
Serial.print(" esAnd: ");
|
Serial.print(" esAnd: ");
|
||||||
Serial.println(p.esAnd);
|
Serial.println(p.esAnd);
|
||||||
#endif
|
#endif*/
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -284,10 +285,10 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
|
||||||
//ejecuta efecto
|
//ejecuta efecto
|
||||||
ExeEfecto( vars,p.oper, p.var1, p.var2 );
|
ExeEfecto( vars,p.oper, p.var1, p.var2 );
|
||||||
}
|
}
|
||||||
#ifdef DEBUG_PS
|
/*#ifdef DEBUG_PS
|
||||||
|
|
||||||
Serial.println("Fin oper ");
|
Serial.println("Fin oper ");
|
||||||
#endif
|
#endif*/
|
||||||
p.tvar1=p.tvar2=p.toper=false;
|
p.tvar1=p.tvar2=p.toper=false;
|
||||||
p.nvar1=p.nvar2=p.noper=0;
|
p.nvar1=p.nvar2=p.noper=0;
|
||||||
p.var1[0]=0;
|
p.var1[0]=0;
|
||||||
|
|
@ -333,7 +334,11 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef DEBUG_PS
|
||||||
|
|
||||||
Serial.println("MqttDesencadenador::Exe fin");
|
Serial.println("MqttDesencadenador::Exe fin");
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
//*******************************************************************
|
//*******************************************************************
|
||||||
MqttDesencadenadorArray::MqttDesencadenadorArray()
|
MqttDesencadenadorArray::MqttDesencadenadorArray()
|
||||||
|
|
@ -349,6 +354,7 @@ MqttDesencadenador* MqttDesencadenadorArray::Get(int i)
|
||||||
int MqttDesencadenadorArray::Add(MqttDesencadenador* var)
|
int MqttDesencadenadorArray::Add(MqttDesencadenador* var)
|
||||||
{
|
{
|
||||||
data[n]=*var;
|
data[n]=*var;
|
||||||
|
strcpy( data[n].expresion,var->expresion);
|
||||||
n++;
|
n++;
|
||||||
return n-1;
|
return n-1;
|
||||||
}
|
}
|
||||||
|
|
@ -368,7 +374,13 @@ void MqttDesencadenadorManager::inicia( MqttVarManager *v)
|
||||||
{
|
{
|
||||||
vars=v;
|
vars=v;
|
||||||
if(des.n>0)
|
if(des.n>0)
|
||||||
|
{
|
||||||
|
#ifdef DEBUG_PS
|
||||||
|
|
||||||
|
Serial.println("MqttDesencadenador::inicia como listenner");
|
||||||
|
#endif
|
||||||
vars->AddListenner(this);
|
vars->AddListenner(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MqttDesencadenadorManager::Suscribe()
|
void MqttDesencadenadorManager::Suscribe()
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ struct MqttExeParam
|
||||||
class MqttDesencadenador
|
class MqttDesencadenador
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
char expresion[24];//{1}=1->!{2}
|
char expresion[64];//{1}=1->!{2}
|
||||||
bool activo;//se desactivan automaticamente cuando se cumple la condicion y se vuelve activar cuando deja de cumplirse
|
bool activo;//se desactivan automaticamente cuando se cumple la condicion y se vuelve activar cuando deja de cumplirse
|
||||||
|
|
||||||
MqttDesencadenador();
|
MqttDesencadenador();
|
||||||
|
|
@ -85,7 +85,7 @@ class MqttDesencadenadorManager: public MqttOnVarChangeListenner
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MqttVarManager *vars;
|
MqttVarManager *vars;
|
||||||
byte ivars[24];
|
//byte ivars[24];
|
||||||
int nv;
|
int nv;
|
||||||
MqttDesencadenadorArray des;
|
MqttDesencadenadorArray des;
|
||||||
bool revisa;
|
bool revisa;
|
||||||
|
|
|
||||||
|
|
@ -243,7 +243,7 @@ void MqttSensManager::procesaSensor(int i)
|
||||||
}
|
}
|
||||||
case((int)MqttSensor::SENS_ANALOG_IN)://pilla temperatura y humedad
|
case((int)MqttSensor::SENS_ANALOG_IN)://pilla temperatura y humedad
|
||||||
{
|
{
|
||||||
if(s->flags | MqttSensor::FLAG_NEG)
|
if(s->flags & MqttSensor::FLAG_NEG)
|
||||||
v->val.f=100.*((float)(1024- analogRead(s->pin)))/1024;
|
v->val.f=100.*((float)(1024- analogRead(s->pin)))/1024;
|
||||||
else
|
else
|
||||||
v->val.f=100.*((float)(analogRead(s->pin)))/1024;
|
v->val.f=100.*((float)(analogRead(s->pin)))/1024;
|
||||||
|
|
@ -260,7 +260,7 @@ void MqttSensManager::procesaSensor(int i)
|
||||||
}
|
}
|
||||||
case((int)MqttSensor::SENS_DIGI_IN)://pilla temperatura y humedad
|
case((int)MqttSensor::SENS_DIGI_IN)://pilla temperatura y humedad
|
||||||
{
|
{
|
||||||
if(s->flags | MqttSensor::FLAG_NEG)
|
if(s->flags & MqttSensor::FLAG_NEG)
|
||||||
v->val.i=(byte)(1- digitalRead(s->pin));
|
v->val.i=(byte)(1- digitalRead(s->pin));
|
||||||
else
|
else
|
||||||
v->val.i=(byte)digitalRead(s->pin);
|
v->val.i=(byte)digitalRead(s->pin);
|
||||||
|
|
|
||||||
|
|
@ -354,7 +354,21 @@ void MqttVarManager::InvierteVar(int ivar)
|
||||||
}
|
}
|
||||||
void MqttVarManager::SetVal(int ivar,MQTTvalor val)
|
void MqttVarManager::SetVal(int ivar,MQTTvalor val)
|
||||||
{
|
{
|
||||||
|
#ifdef DEBUG_PS
|
||||||
|
|
||||||
|
Serial.print("MqttVarManager::SetVal int i: ");
|
||||||
|
Serial.print( val.i);
|
||||||
|
Serial.print(" f: ");
|
||||||
|
Serial.println( val.f);
|
||||||
|
#endif
|
||||||
MqttVar* v=vars->Get(ivar);
|
MqttVar* v=vars->Get(ivar);
|
||||||
v->val=val;
|
v->val=val;
|
||||||
|
#ifdef DEBUG_PS
|
||||||
|
|
||||||
|
Serial.print("MqttVarManager::SetVal out i: ");
|
||||||
|
Serial.print( v->val.i);
|
||||||
|
Serial.print(" f: ");
|
||||||
|
Serial.println( v->val.f);
|
||||||
|
#endif
|
||||||
OnChange(ivar);
|
OnChange(ivar);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,11 @@ class ActualDomoConfig: public DomoConfig
|
||||||
*/
|
*/
|
||||||
int lamb= vars->AddInternalVarInt( "casa/Salon/LAmb");
|
int lamb= vars->AddInternalVarInt( "casa/Salon/LAmb");
|
||||||
int lchim= vars->AddInternalVarInt( "casa/Salon/LChime");
|
int lchim= vars->AddInternalVarInt( "casa/Salon/LChime");
|
||||||
|
int lent= vars->AddInternalVarInt( "casa/Salon/LEnt");
|
||||||
int pul1= vars->AddInternalVarInt( "casa/Salon/pul1");
|
int pul1= vars->AddInternalVarInt( "casa/Salon/pul1");
|
||||||
|
int pul2= vars->AddInternalVarInt( "casa/Salon/pul2");
|
||||||
|
int pul3= vars->AddInternalVarInt( "casa/Salon/pul3");
|
||||||
|
int pul4= vars->AddInternalVarInt( "casa/Salon/pul4");
|
||||||
//lcd---------------------------------------------------------
|
//lcd---------------------------------------------------------
|
||||||
|
|
||||||
//lcd->add(0,"T des: %s",0,0);
|
//lcd->add(0,"T des: %s",0,0);
|
||||||
|
|
@ -72,11 +76,17 @@ class ActualDomoConfig: public DomoConfig
|
||||||
lcd->add(-1,"Mi ritmo",0,1);
|
lcd->add(-1,"Mi ritmo",0,1);
|
||||||
lcd->add(-1,"bueno pa goza",1,1);*/
|
lcd->add(-1,"bueno pa goza",1,1);*/
|
||||||
//desencadenaores----------
|
//desencadenaores----------
|
||||||
char st[32];
|
char st[64];
|
||||||
sprintf(st,"{%d}>0 -> !{%d} & !{%d} ",pul1,lamb,lchim);//terminar en espacios
|
sprintf(st,"{%d}>0 -> {%d}=1 & {%d}=1 & {%d}=1 ",pul1,lamb,lchim, lent);//terminar en espacios
|
||||||
|
des->AddDes(st);
|
||||||
|
sprintf(st,"{%d}<1 -> {%d}=0 & {%d}=0 & {%d}=0 ",pul1,lamb,lchim, lent);//terminar en espacios
|
||||||
|
des->AddDes(st);
|
||||||
|
sprintf(st,"{%d}>0 -> !{%d} ",pul2,lamb);//terminar en espacios
|
||||||
|
des->AddDes(st);
|
||||||
|
sprintf(st,"{%d}>0 -> !{%d} ",pul3,lchim);//terminar en espacios
|
||||||
|
des->AddDes(st);
|
||||||
|
sprintf(st,"{%d}>0 -> !{%d} ",pul4,lent);//terminar en espacios
|
||||||
des->AddDes(st);
|
des->AddDes(st);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -203,4 +213,4 @@ class CocinaDomoConfig: public DomoConfig
|
||||||
|
|
||||||
|
|
||||||
//configuracion que se usara--------------------------
|
//configuracion que se usara--------------------------
|
||||||
PulSalonConfig ConfiguracionActual;
|
ActualDomoConfig ConfiguracionActual;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue