diff --git a/src/Heating.cpp b/src/Heating.cpp index bd7d366..2769667 100644 --- a/src/Heating.cpp +++ b/src/Heating.cpp @@ -20,13 +20,13 @@ void Heating::init(Temperature *tempsensor, unsigned mode) { Serial.println("Turning on heating"); - mTurnOffTicker.once((int)((float)refreshperiod * (float)percentOn / 100.0), []() { + mTurnOffTicker.once((int) ((float) refreshperiod * (float) percentOn / 100.0), []() { digitalWrite(HeizungPin, LOW); Serial.println("Turned off heating!"); }); - mLuefterTicker.once((int)(((float)refreshperiod * (float)percentOn / 100.0) + 30.0), []() { + mLuefterTicker.once((int) (((float) refreshperiod * (float) percentOn / 100.0) + 30.0), []() { digitalWrite(LuefterPin, LOW); Serial.println("Turned off fan!"); @@ -38,7 +38,7 @@ void Heating::init(Temperature *tempsensor, unsigned mode) { break; } case HUMIDITY: - mFanWaiting = false; + mHeatingStatus = false; mHeizungTicker.attach(10, [&tempsensor, this]() { // shedule this function because tempread is blocking @@ -58,24 +58,21 @@ void Heating::init(Temperature *tempsensor, unsigned mode) { // turn on heating and fan digitalWrite(LuefterPin, HIGH); digitalWrite(HeizungPin, HIGH); - - // if fan waiting detach its ticker - if (mFanWaiting) { - mLuefterTicker.detach(); - mFanWaiting = false; - } + mHeatingStatus = true; } else if (hum < 60.0) { // if humidity too low turn off heating and fan after 60secs digitalWrite(HeizungPin, LOW); Serial.println("heating should NOT run now!"); - if (!mFanWaiting) { - mFanWaiting = true; + + // if heating status in on set ticker to turn of fan in 60sec + if (mHeatingStatus) { mLuefterTicker.once(60, []() { // turn off fan digitalWrite(LuefterPin, LOW); Serial.println("turning off fan"); }); } + mHeatingStatus = false; } }); }); diff --git a/src/Heating.h b/src/Heating.h index 42befbc..7a1baba 100644 --- a/src/Heating.h +++ b/src/Heating.h @@ -17,5 +17,5 @@ private: Ticker mLuefterTicker; Ticker mTurnOffTicker; - bool mFanWaiting; + bool mHeatingStatus; }; diff --git a/src/main.cpp b/src/main.cpp index 37f9b9a..d25d514 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,7 +8,7 @@ #include "Pins.h" #include "Temperature.h" -#define VERSION "v1.1" +#define VERSION "v1.1.1" bool allow; bool error = false; @@ -149,9 +149,6 @@ void setup() { digitalWrite(SchuetzPin, LOW); //pumpe anfangs sofort abschalten digitalWrite(LuefterPin, LOW); digitalWrite(HeizungPin, LOW); -// -// digitalWrite(HeizungPin, HIGH); -// delay(1000000); // initilize serial connection Serial.begin(9600); @@ -188,8 +185,9 @@ void setup() { Serial.println("Initializing wifi"); mang.init(&temp); + // initialize heating control Serial.println("initializing heating service"); - mHeat.init(&temp, Heating::TIME); + mHeat.init(&temp, Heating::HUMIDITY); Serial.println("startup sequence complete!\n"); digitalWrite(LED_BUILTIN, HIGH);