diff --git a/bin/src.ino.bin b/bin/src.ino.bin index 2425dc9..c98e5cf 100644 Binary files a/bin/src.ino.bin and b/bin/src.ino.bin differ diff --git a/src/MainTask.h b/src/MainTask.h index d359176..2cafa75 100644 --- a/src/MainTask.h +++ b/src/MainTask.h @@ -1,23 +1,11 @@ -#include "lib/MiniTask.h" -#include "SensorsTask.h" -#include "RegulatorTask.h" - extern MqttTask* tMqtt; +extern SensorsTask* tSensors; -class MainTask : public CustomTask { +class MainTask : public Task { public: - MainTask(bool enabled = false, unsigned long interval = 0) : CustomTask(enabled, interval) {} + MainTask(bool _enabled = false, unsigned long _interval = 0) : Task(_enabled, _interval) {} protected: - //HttpServerTask* tHttpServer; - SensorsTask* tSensors; - RegulatorTask* tRegulator; - - void setup() { - //tHttpServer = new HttpServerTask(false); - tSensors = new SensorsTask(false, DS18B20_INTERVAL); - tRegulator = new RegulatorTask(true, 10000); - } void loop() { static unsigned long lastHeapInfo = 0; @@ -46,12 +34,6 @@ protected: tSensors->disable(); } - //tHttpServer->loopWrapper(); - //yield(); - tSensors->loopWrapper(); - yield(); - tRegulator->loopWrapper(); - #ifdef USE_TELNET yield(); @@ -76,8 +58,4 @@ protected: } } } - - /*char[] getUptime() { - uint64_t = esp_timer_get_time(); - }*/ }; \ No newline at end of file diff --git a/src/MqttTask.h b/src/MqttTask.h index a6910e0..3627ce6 100644 --- a/src/MqttTask.h +++ b/src/MqttTask.h @@ -8,9 +8,9 @@ PubSubClient client(espClient); HomeAssistantHelper haHelper; -class MqttTask : public CustomTask { +class MqttTask : public Task { public: - MqttTask(bool enabled = false, unsigned long interval = 0) : CustomTask(enabled, interval) {} + MqttTask(bool _enabled = false, unsigned long _interval = 0) : Task(_enabled, _interval) {} protected: unsigned long lastReconnectAttempt = 0; diff --git a/src/OpenThermTask.h b/src/OpenThermTask.h index 6ae8a8d..e5f3685 100644 --- a/src/OpenThermTask.h +++ b/src/OpenThermTask.h @@ -2,9 +2,9 @@ CustomOpenTherm ot(OPENTHERM_IN_PIN, OPENTHERM_OUT_PIN); -class OpenThermTask : public CustomTask { +class OpenThermTask : public Task { public: - OpenThermTask(bool enabled = false, unsigned long interval = 0) : CustomTask(enabled, interval) {} + OpenThermTask(bool _enabled = false, unsigned long _interval = 0) : Task(_enabled, _interval) {} protected: void setup() { diff --git a/src/RegulatorTask.h b/src/RegulatorTask.h index 91f23e0..41d1fc4 100644 --- a/src/RegulatorTask.h +++ b/src/RegulatorTask.h @@ -6,9 +6,9 @@ Equitherm etRegulator; GyverPID pidRegulator(0, 0, 0, 10000); PIDtuner pidTuner; -class RegulatorTask : public MiniTask { +class RegulatorTask : public LeanTask { public: - RegulatorTask(bool enabled = false, unsigned long interval = 0) : MiniTask(enabled, interval) {} + RegulatorTask(bool _enabled = false, unsigned long _interval = 0) : LeanTask(_enabled, _interval) {} protected: bool tunerInit = false; diff --git a/src/SensorsTask.h b/src/SensorsTask.h index c7951b7..405e6e2 100644 --- a/src/SensorsTask.h +++ b/src/SensorsTask.h @@ -2,9 +2,9 @@ MicroDS18B20 outdoorSensor; -class SensorsTask : public MiniTask { +class SensorsTask : public LeanTask { public: - SensorsTask(bool enabled = false, unsigned long interval = 0) : MiniTask(enabled, interval) {} + SensorsTask(bool _enabled = false, unsigned long _interval = 0) : LeanTask(_enabled, _interval) {} protected: void setup() {} diff --git a/src/WifiManagerTask.h b/src/WifiManagerTask.h index 2fce4e3..7b493d2 100644 --- a/src/WifiManagerTask.h +++ b/src/WifiManagerTask.h @@ -13,9 +13,9 @@ WiFiManagerParameter *wmMqttUser; WiFiManagerParameter *wmMqttPassword; WiFiManagerParameter *wmMqttPrefix; -class WifiManagerTask : public CustomTask { +class WifiManagerTask : public Task { public: - WifiManagerTask(bool enabled = false, unsigned long interval = 0) : CustomTask(enabled, interval) {} + WifiManagerTask(bool _enabled = false, unsigned long _interval = 0) : Task(_enabled, _interval) {} protected: void setup() { diff --git a/src/defines.h b/src/defines.h index 0f2918b..5f3140f 100644 --- a/src/defines.h +++ b/src/defines.h @@ -1,6 +1,6 @@ -#define OT_GATEWAY_VERSION "1.0.4" +#define OT_GATEWAY_VERSION "1.0.5" #define AP_SSID "OpenTherm Gateway" -//#define USE_TELNET +#define USE_TELNET #define EMERGENCY_TRESHOLD 10 #define MQTT_RECONNECT_INTERVAL 5000 diff --git a/src/lib/CustomTask.h b/src/lib/CustomTask.h deleted file mode 100644 index ff42cd3..0000000 --- a/src/lib/CustomTask.h +++ /dev/null @@ -1,45 +0,0 @@ -class CustomTask : public Task { -public: - CustomTask(bool enabled = false, unsigned long interval = 0) { - _enabled = enabled; - _interval = interval; - } - - bool isEnabled() { - return _enabled; - } - - void enable() { - _enabled = true; - } - - void disable() { - _enabled = false; - } - - void setInterval(unsigned long val) { - _interval = val; - } - - unsigned long getInterval() { - return _interval; - } - -protected: - bool _enabled = true; - unsigned long _lastRun = 0; - unsigned long _interval = 0; - - bool shouldRun() { - if (!_enabled || !Task::shouldRun()) { - return false; - } - - if (_interval > 0 && millis() - _lastRun < _interval) { - return false; - } - - _lastRun = millis(); - return true; - } -}; \ No newline at end of file diff --git a/src/lib/MiniTask.h b/src/lib/MiniTask.h deleted file mode 100644 index 81b1d9a..0000000 --- a/src/lib/MiniTask.h +++ /dev/null @@ -1,64 +0,0 @@ -class MiniTask { -public: - MiniTask(bool enabled = false, unsigned long interval = 0) { - _enabled = enabled; - _interval = interval; - } - - bool isEnabled() { - return _enabled; - } - - void enable() { - _enabled = true; - } - - void disable() { - _enabled = false; - } - - void setInterval(unsigned long val) { - _interval = val; - } - - unsigned long getInterval() { - return _interval; - } - - void loopWrapper() { - if (!shouldRun()) { - return; - } - - if (!_setupDone) { - setup(); - _setupDone = true; - } - - loop(); - yield(); - } - -protected: - virtual void setup() {} - virtual void loop() {} - - virtual bool shouldRun() { - if (!_enabled) { - return false; - } - - if (_interval > 0 && millis() - _lastRun < _interval) { - return false; - } - - _lastRun = millis(); - return true; - } - -private: - bool _enabled = false; - unsigned long _interval = 0; - unsigned long _lastRun = 0; - bool _setupDone = false; -}; diff --git a/src/src.ino b/src/src.ino index d6a2bea..7fc6d74 100644 --- a/src/src.ino +++ b/src/src.ino @@ -3,22 +3,28 @@ #include #include #include +#include +#include #include "Settings.h" EEManager eeSettings(settings, 30000); -#include "lib/CustomTask.h" #include "WifiManagerTask.h" #include "MqttTask.h" #include "OpenThermTask.h" +#include "SensorsTask.h" +#include "RegulatorTask.h" #include "MainTask.h" // Tasks WifiManagerTask* tWm; MqttTask* tMqtt; OpenThermTask* tOt; +SensorsTask* tSensors; +RegulatorTask* tRegulator; MainTask* tMain; + void setup() { #ifdef USE_TELNET TelnetStream.begin(); @@ -49,6 +55,12 @@ void setup() { tOt = new OpenThermTask(true); Scheduler.start(tOt); + tSensors = new SensorsTask(false, DS18B20_INTERVAL); + Scheduler.start(tSensors); + + tRegulator = new RegulatorTask(true, 10000); + Scheduler.start(tRegulator); + tMain = new MainTask(true); Scheduler.start(tMain);