From 809b2e6d6496e8f2e733af84fb5c181b5523404a Mon Sep 17 00:00:00 2001 From: Gerardo Date: Tue, 1 Oct 2024 22:17:01 +0200 Subject: [PATCH] arreglos varios y configuraciones --- DomoEspSensor/Automatismos.h | 12 ++--- DomoEspSensor/DomoEspSensorManager.cpp | 5 +-- DomoEspSensor/DomoEspSensorManager.h | 3 +- DomoEspSensor/SensorDin.h | 11 +++-- DomoEspSensor/SensorPulsante.h | 2 +- DomoEspSensor/SensorVF.h | 2 +- DomoEspSensor/configuracionActual.h | 61 +++++++++++++++++++++++++- 7 files changed, 77 insertions(+), 19 deletions(-) diff --git a/DomoEspSensor/Automatismos.h b/DomoEspSensor/Automatismos.h index 9ae7fd0..bbfabd9 100644 --- a/DomoEspSensor/Automatismos.h +++ b/DomoEspSensor/Automatismos.h @@ -48,17 +48,17 @@ class AutomatismoPresencia//automatismo para encender luz con presencia Actuador presenciaOn; Actuador presenciaOff; - Actuador nivelLuzOff; + //Actuador nivelLuzOff; float fnivelLuz; public: AutomatismoPresencia() { - fnivelLuz=50; + fnivelLuz=40; strcpy(presenciaOn.id, "PresOn"); strcpy(presenciaOff.id, "PresOff"); - strcpy(nivelLuzOff.id, "luzOff"); + //strcpy(nivelLuzOff.id, "luzOff"); } @@ -81,7 +81,7 @@ class AutomatismoPresencia//automatismo para encender luz con presencia { presenciaOff.AddActivador(bloqueo,'>',0); } - + /* nivelLuzOff.set(nivelluz->topic, out->topic, "0"); nivelLuzOff.AddActivador(out,'>',0, 0);//out encendido nivelLuzOff.AddActivador(nivelluz,'>',fnivelLuz, 0);//no luz @@ -89,10 +89,10 @@ class AutomatismoPresencia//automatismo para encender luz con presencia { nivelLuzOff.AddActivador(bloqueo,'>',0); } - + */ man->Add(&presenciaOn); - man->Add(&nivelLuzOff); + //man->Add(&nivelLuzOff); man->Add(&presenciaOff); diff --git a/DomoEspSensor/DomoEspSensorManager.cpp b/DomoEspSensor/DomoEspSensorManager.cpp index 0f51bc1..d9bd913 100644 --- a/DomoEspSensor/DomoEspSensorManager.cpp +++ b/DomoEspSensor/DomoEspSensorManager.cpp @@ -9,12 +9,11 @@ DomoEspManager::DomoEspManager() n=0; tiempo=0; suscrito=false; - tiempo_sens=0; SetTimeRefres(15); } void DomoEspManager::SetTimeRefres(int seg) { - incre_tsens=seg*1000; + timer.set(seg); } void DomoEspManager::inicia(DomoEspConfig* cnf) { @@ -70,7 +69,7 @@ void DomoEspManager::loop() suscrito=true; } int tiempoAux=0; - if(MqttUtiles::pasa_incre(&tiempo_sens, incre_tsens)) + if(timer.onTimerReset()) { tiempo=(tiempo+1)%2; diff --git a/DomoEspSensor/DomoEspSensorManager.h b/DomoEspSensor/DomoEspSensorManager.h index f97a5f8..1d3f4e9 100644 --- a/DomoEspSensor/DomoEspSensorManager.h +++ b/DomoEspSensor/DomoEspSensorManager.h @@ -26,8 +26,7 @@ class DomoEspManager: public MqttReceiver, public IMqttManager, public ISensorMa int n; int tiempo; bool suscrito; - unsigned long tiempo_sens; - unsigned long incre_tsens; + Ctimer timer; public: diff --git a/DomoEspSensor/SensorDin.h b/DomoEspSensor/SensorDin.h index 4b98d6f..02fa45d 100644 --- a/DomoEspSensor/SensorDin.h +++ b/DomoEspSensor/SensorDin.h @@ -6,16 +6,19 @@ class SensorDin: public DomoEspSensorReceiver { bool val; uint8_t pin; - + bool logTiempo2; public: virtual float getVal() { return (float)val; } - SensorDin(){} - void set(uint8_t _pin, char* topic_id) + SensorDin(){ + logTiempo2=true; + } + void set(uint8_t _pin, char* topic_id, bool _logTiempo2=true) { + logTiempo2=_logTiempo2; pin=_pin; val=0; strcpy(topic, topic_id); @@ -25,7 +28,7 @@ class SensorDin: public DomoEspSensorReceiver //mirar para configurar por interrupcion int val_ac=digitalRead(pin); - if(tiempo==2 || val_ac!=val) + if((logTiempo2 && tiempo==2) || val_ac!=val) { val=val_ac; //loguea------------ diff --git a/DomoEspSensor/SensorPulsante.h b/DomoEspSensor/SensorPulsante.h index 6ae00a5..a78c39a 100644 --- a/DomoEspSensor/SensorPulsante.h +++ b/DomoEspSensor/SensorPulsante.h @@ -35,7 +35,7 @@ class SensorPulsante: public DomoEspSensorReceiver virtual void procesa(IMqttManager * man, int tiempo) { //mirar para configurar por interrupcion - int val_ac=valDef; + int val_ac=val; if(!espera || MqttUtiles::pasa_incre(&tiempo_sens, incre_tsens)) { val_ac=digitalRead(pin); diff --git a/DomoEspSensor/SensorVF.h b/DomoEspSensor/SensorVF.h index 9353797..fa5b2cd 100644 --- a/DomoEspSensor/SensorVF.h +++ b/DomoEspSensor/SensorVF.h @@ -12,7 +12,7 @@ class SensorVF: public DomoEspSensorReceiver val=0; topic[0]=0; } - void set(char* topic_id, float valdef) + void set(char* topic_id, float valdef=0) { val=valdef; strcpy(topic, topic_id); diff --git a/DomoEspSensor/configuracionActual.h b/DomoEspSensor/configuracionActual.h index 61713d0..4c61e12 100644 --- a/DomoEspSensor/configuracionActual.h +++ b/DomoEspSensor/configuracionActual.h @@ -130,6 +130,63 @@ class ConfActual: public DomoEspConfig + } + +}; +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"); + 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); + } }; @@ -203,7 +260,7 @@ class ConfigSalon: public DomoEspConfig strcpy(ideEsp,"Esp8266_Salon");//idenitificador del esp (sera Ășnico) dht.set(D4, "casa/Salon"); - nivelLuz.set(0,"casa/Salon/luz",1, 0); + 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"); @@ -321,6 +378,6 @@ class ConfPulSalon: public DomoEspConfig -ConfPulSalon ConfiguracionActual; +ConfigSalon ConfiguracionActual; #endif \ No newline at end of file