diff --git a/lib/HwTools/src/HwTools.cpp b/lib/HwTools/src/HwTools.cpp index 1b0a3b01..fc185fab 100644 --- a/lib/HwTools/src/HwTools.cpp +++ b/lib/HwTools/src/HwTools.cpp @@ -371,10 +371,9 @@ bool HwTools::ledOff(uint8_t color) { bool HwTools::ledBlink(uint8_t color, uint8_t blink) { for(int i = 0; i < blink; i++) { if(!ledOn(color)) return false; - delay(150); + delay(50); ledOff(color); - if(i != blink-1) - delay(250); + delay(200); } return true; } diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index 5364a6d1..58b95d7d 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -991,34 +991,17 @@ void debugPrint(byte *buffer, int start, int length) { Debug.println(""); } +unsigned long wifiTimeout = WIFI_CONNECTION_TIMEOUT; unsigned long lastWifiRetry = -WIFI_CONNECTION_TIMEOUT; void WiFi_connect() { + if(millis() - lastWifiRetry < wifiTimeout) { + delay(50); + return; + } + lastWifiRetry = millis(); + if (WiFi.status() != WL_CONNECTED) { - if(WiFi.status() == WL_DISCONNECTED) { - if(millis() - lastWifiRetry < WIFI_CONNECTION_TIMEOUT) { - return; - } - } if(WiFi.getMode() != WIFI_OFF) { - switch(WiFi.status()) { - case WL_NO_SSID_AVAIL: - debugE("WiFi error, no SSID available"); - break; - case WL_CONNECT_FAILED: - debugE("WiFi error, connection failed"); - break; - case WL_CONNECTION_LOST: - debugE("WiFi error, connection lost"); - break; - #if defined(ESP8266) - case WL_WRONG_PASSWORD: - debugE("WiFi error, wrong password"); - break; - #endif - default: - debugE("WiFi error, %d", WiFi.status()); - break; - } if(wifiReconnectCount > 3) { ESP.restart(); return; @@ -1052,13 +1035,11 @@ void WiFi_connect() { WiFi.softAPdisconnect(true); WiFi.enableAP(false); WiFi.mode(WIFI_OFF); - #if defined(ESP8266) - WiFi.forceSleepBegin(); - #endif yield(); + wifiTimeout = 5000; return; } - lastWifiRetry = millis(); + wifiTimeout = WIFI_CONNECTION_TIMEOUT; WiFiConfig wifi; if(!config.getWiFiConfig(wifi) || strlen(wifi.ssid) == 0) { diff --git a/src/IEC6205675.cpp b/src/IEC6205675.cpp index 8a4ccab6..6b4dd3ba 100644 --- a/src/IEC6205675.cpp +++ b/src/IEC6205675.cpp @@ -371,13 +371,11 @@ IEC6205675::IEC6205675(const char* d, uint8_t useMeterType, MeterConfig* meterCo memcpy(str, mid->oct.data, mid->oct.length); str[mid->oct.length] = 0x00; meterId = String(str); - meterId[mid->str.length] = 0; break; case CosemTypeOctetString: memcpy(str, mid->str.data, mid->str.length); str[mid->str.length] = 0x00; meterId = String(str); - meterId[mid->str.length] = 0; break; } }