diff --git a/HCPBridge/extra_script.py b/HCPBridge/extra_script.py new file mode 100644 index 0000000..eda61ce --- /dev/null +++ b/HCPBridge/extra_script.py @@ -0,0 +1,3 @@ +from distutils import dir_util +Import("env") +dir_util.copy_tree("patch",".") diff --git a/HCPBridge/platformio.ini b/HCPBridge/platformio.ini index e4d26de..b04a0a5 100644 --- a/HCPBridge/platformio.ini +++ b/HCPBridge/platformio.ini @@ -15,3 +15,4 @@ framework = arduino lib_deps = ottowinter/ESPAsyncWebServer-esphome@^1.2.7 bblanchon/ArduinoJson@^6.17.2 +extra_scripts = pre:extra_script.py diff --git a/HCPBridge/src/main.cpp b/HCPBridge/src/main.cpp index 39055ed..fcfc4ba 100644 --- a/HCPBridge/src/main.cpp +++ b/HCPBridge/src/main.cpp @@ -34,6 +34,10 @@ HCIEmulator emulator(&RS485); // webserver on port 80 AsyncWebServer server(80); +// called by ESPAsyncTCP-esphome:SyncClient.cpp (see patch) instead of delay to avoid connection breaks +void DelayHandler(void){ + emulator.poll(); +} // switch GPIO4 und GPIO2 sync to the lamp void onStatusChanged(const SHCIState& state){ @@ -57,6 +61,8 @@ void switchLamp(bool on){ } } + + // setup mcu void setup(){ @@ -71,7 +77,7 @@ void setup(){ WiFi.begin(ssid, password); WiFi.setAutoReconnect(true); while (WiFi.status() != WL_CONNECTED) { - emulator.poll(); + emulator.poll(); } // setup http server @@ -158,6 +164,6 @@ void setup(){ } // mainloop -void loop(){ - emulator.poll(); +void loop(){ + emulator.poll(); } \ No newline at end of file