/// © MiroZ 2024 #include "App.h" #include #include "Settings.h" #include "errors.h" #include "OTA.h" #include "ProvisionSoftAP.h" #include #include "Mqtt.h" #include #define LED_PIN 26 static const char * TAG = "app"; App::App() { } void App::init() { m_led = new Led(LED_PIN); m_wifi = new Wifi(); bool needs_provision = true; if(SETTINGS.wifi.num > 0) { // try connecting m_led->setColor(0, 255, 0); m_wifi->start(); Wifi::WIFI_STATUS wifi_status = m_wifi->waitForConnection(); if(wifi_status == Wifi::WIFI_STATUS::CONNECTED) { ESP_LOGI(TAG, "Getting local time..."); struct tm timeinfo; configTime(0, 0, "pool.ntp.org"); if(getLocalTime(&timeinfo)) ESP_LOGI(TAG, "ok"); else ESP_LOGE(TAG, "Failed"); // m_led->setColor(0, 0, 0); MDNS.begin("esp32"); needs_provision = false; } } if(needs_provision) { m_led->setPulse(0, 0, 255); ProvisionSoftAP provision(80); provision.start(); } otaCheck(); m_led->setPulse(255, 0, 255); m_mqtt = new Mqtt(); m_mqtt->start(); } void App::otaCheck() { OTA ota(*this); ota.start(); } void App::start() { } void App::readSensors() { } void App::reportSensors() { }