#include #include #include "ConfigSettings.h" #include "Network.h" #include "Web.h" #include "Sockets.h" #include "Utils.h" #include "Somfy.h" #include "MQTT.h" #include "GitOTA.h" ConfigSettings settings; Web webServer; SocketEmitter sockEmit; Network net; rebootDelay_t rebootDelay; SomfyShadeController somfy; MQTTClass mqtt; GitUpdater git; uint32_t oldheap = 0; void setup() { Serial.begin(115200); Serial.println(); Serial.println("Startup/Boot...."); Serial.println("Mounting File System..."); if(LittleFS.begin()) Serial.println("File system mounted successfully"); else Serial.println("Error mounting file system"); settings.begin(); if(WiFi.status() == WL_CONNECTED) WiFi.disconnect(true); delay(10); Serial.println(); webServer.startup(); webServer.begin(); delay(1000); net.setup(); somfy.begin(); //git.checkForUpdate(); } void loop() { // put your main code here, to run repeatedly: //uint32_t heap = ESP.getFreeHeap(); if(rebootDelay.reboot && millis() > rebootDelay.rebootTime) { Serial.print("Rebooting after "); Serial.print(rebootDelay.rebootTime); Serial.println("ms"); ESP.restart(); } uint32_t timing = millis(); net.loop(); if(millis() - timing > 100) Serial.printf("Timing Net: %ldms\n", millis() - timing); timing = millis(); somfy.loop(); if(millis() - timing > 100) Serial.printf("Timing Somfy: %ldms\n", millis() - timing); timing = millis(); if(net.connected()) { if(!rebootDelay.reboot) git.loop(); webServer.loop(); if(millis() - timing > 200) Serial.printf("Timing WebServer: %ldms\n", millis() - timing); timing = millis(); sockEmit.loop(); if(millis() - timing > 100) Serial.printf("Timing Socket: %ldms\n", millis() - timing); timing = millis(); } if(rebootDelay.reboot && millis() > rebootDelay.rebootTime) { net.end(); ESP.restart(); } /* if(heap < oldheap) { Serial.print("Heap: "); Serial.print(oldheap); Serial.print(" -> "); Serial.println(heap); } oldheap = heap; */ }