diff --git a/include/display.h b/include/display.h index 6caeb41..9aac3b9 100644 --- a/include/display.h +++ b/include/display.h @@ -63,7 +63,7 @@ namespace Display { currentHour = hour(); Display::adjustBrightness(); hourChanged.signal(); - if (currentHour == 8) dayChanged.signal(); + if (currentHour == 8) Wifi::reconnect(); } if (currentMin != minute()) { currentMin = minute(); diff --git a/include/ir.h b/include/ir.h index df8ea5e..19fac88 100644 --- a/include/ir.h +++ b/include/ir.h @@ -51,6 +51,7 @@ namespace Ir { { case 0x9F: avrOn = false; + tCheckWifi.enable(); break; case 0xC4: case 0xD0: diff --git a/src/esp_clock.cpp b/src/esp_clock.cpp index 085f3d9..40bee75 100644 --- a/src/esp_clock.cpp +++ b/src/esp_clock.cpp @@ -1,14 +1,18 @@ #include +void checkWifiCallback(); +void onWifiConnected(); + #define _TASK_STATUS_REQUEST #include Scheduler ts; StatusRequest hourChanged; -StatusRequest dayChanged; StatusRequest wifiConnected; +Task tCheckWifi(5000, TASK_FOREVER, checkWifiCallback, &ts); +Task tWifiConnected(onWifiConnected, &ts); -#include "display.h" #include "wifi.h" +#include "display.h" #include "ntp_time.h" #include "mqtt.h" #include "ota.h" @@ -16,13 +20,6 @@ StatusRequest wifiConnected; #define STAY_CONNECTED_AFTER_BOOT 5*60 -void wifiConnectedCallback(); -void checkWifiCallback(); - -Task tCheckWifi(5000, TASK_FOREVER, checkWifiCallback, &ts); -Task tWifiReconnect(Wifi::reconnect, &ts); -Task tWifiConnected(wifiConnectedCallback, &ts); - void setup() { Serial.begin(9600); @@ -33,9 +30,7 @@ void setup() { Mqtt::setup(); hourChanged.setWaiting(); - dayChanged.setWaiting(); wifiConnected.setWaiting(); - tWifiReconnect.waitFor(&dayChanged); tWifiConnected.waitFor(&wifiConnected); Wifi::setup(); @@ -45,19 +40,19 @@ void loop() { ts.execute(); } -void wifiConnectedCallback() { +void onWifiConnected() { Wifi::printStatus(); if (time_t newTime = Ntp::updateTime()) { Serial.println(asctime(localtime(&newTime))); Ntp::lastConnectedTime = newTime; } Ota::tLoop.enable(); - tCheckWifi.enable(); + if (!Ir::avrOn) tCheckWifi.enable(); Mqtt::client.connect(); } void checkWifiCallback() { - if ((difftime(now(), Ntp::lastConnectedTime) > STAY_CONNECTED_AFTER_BOOT) && !Ir::avrOn) { + if (difftime(now(), Ntp::lastConnectedTime) > STAY_CONNECTED_AFTER_BOOT) { Wifi::disconnect(); Ota::tLoop.disable(); tCheckWifi.disable();