diff --git a/frames/Kamstup-Encrypted.raw b/frames/Kamstup-Encrypted.raw index 92704f72..ea2c8b46 100644 --- a/frames/Kamstup-Encrypted.raw +++ b/frames/Kamstup-Encrypted.raw @@ -1,6 +1,7 @@ # After decode: -7E A1 E9 41 03 13 C6 37 E6 E7 00 DB 08 4B 41 4D 45 01 AC 4D 6E 82 01 D0 30 00 00 A3 2F 0F 00 00 00 00 -0C 07 E4 05 0C 02 0A 19 00 FF 80 00 80 +7E A1 E9 41 03 13 C6 37 +E6 E7 00 DB 08 4B 41 4D 45 01 AC 4D 6E 82 01 D0 30 00 00 A3 2F 0F 00 00 00 00 +0C 07 E4 05 0C 02 0A 19 00 FF 80 00 80 // Package timestamp 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 30 31 - List ID diff --git a/platformio.ini b/platformio.ini index d1d35c96..8d72eace 100755 --- a/platformio.ini +++ b/platformio.ini @@ -2,7 +2,7 @@ extra_configs = platformio-user.ini [common] -lib_deps = file://lib/Timezone, MQTT@2.5.0, OneWireNg@0.10.0, DallasTemperature@3.9.1, EspSoftwareSerial@6.14.1, https://github.com/gskjold/RemoteDebug.git@3.0.5, Time@1.6.0 +lib_deps = file://lib/Timezone, 256dpi/MQTT@2.5.0, OneWireNg@0.10.0, DallasTemperature@3.9.1, EspSoftwareSerial@6.14.1, https://github.com/gskjold/RemoteDebug.git, Time@1.6.0 lib_ignore = OneWire [env:esp8266] diff --git a/sdkconfig.defaults b/sdkconfig.defaults deleted file mode 100644 index ead57919..00000000 --- a/sdkconfig.defaults +++ /dev/null @@ -1,18 +0,0 @@ -CONFIG_ENABLE_ARDUINO_DEPENDS=y -CONFIG_AUTOSTART_ARDUINO=y -CONFIG_ARDUINO_RUN_CORE1=y -CONFIG_ARDUINO_RUNNING_CORE=1 -CONFIG_ARDUINO_EVENT_RUN_CORE1=y -CONFIG_ARDUINO_EVENT_RUNNING_CORE=1 -CONFIG_ARDUINO_UDP_RUN_CORE1=y -CONFIG_ARDUINO_UDP_RUNNING_CORE=1 -CONFIG_DISABLE_HAL_LOCKS=y -CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR=y -CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=1 -CONFIG_ARDUHAL_PARTITION_SCHEME_DEFAULT=y -CONFIG_ARDUHAL_PARTITION_SCHEME="default" -CONFIG_AUTOCONNECT_WIFI=y -CONFIG_ARDUINO_SELECTIVE_WiFi=y -CONFIG_MBEDTLS_PSK_MODES=y -CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y -CONFIG_FREERTOS_UNICORE=y diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index f8c14966..c3d0fe18 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -15,6 +15,9 @@ * The original developer for this project * https://github.com/roarfred/AmsToMqttBridge */ +#if defined(ESP8266) +ADC_MODE(ADC_VCC); +#endif #include "AmsToMqttBridge.h" #include "AmsStorage.h" @@ -426,10 +429,6 @@ void loop() { } if (mqttEnabled) { - if(mqtt != NULL) { - mqtt->loop(); - delay(10); // Needed to preserve power. After adding this, the voltage is super smooth on a HAN powered device - } if(mqtt == NULL || !mqtt->connected() || config.isMqttChanged()) { MQTT_connect(); } @@ -459,7 +458,12 @@ void loop() { } config.ackEntsoeChange(); } - + ws.loop(); + readHanPort(); // TODO: Move to bottom + } + if(mqtt != NULL) { // Run loop regardless, to let MQTT do its work. + mqtt->loop(); + delay(10); // Needed to preserve power. After adding this, the voltage is super smooth on a HAN powered device } } else { if(dnsServer != NULL) { @@ -471,6 +475,7 @@ void loop() { hw.ledBlink(LED_INTERNAL, 1); } } + ws.loop(); } if(config.isMeterChanged()) { @@ -478,9 +483,7 @@ void loop() { setupHanPort(gpioConfig.hanPin, meterConfig.baud, meterConfig.parity, meterConfig.invert); config.ackMeterChanged(); } - delay(1); - readHanPort(); - ws.loop(); + delay(1); // Needed for auto modem sleep } @@ -777,15 +780,16 @@ void readHanPort() { } } - if(ds.update(&data)) { + meterState.apply(data); + + if(ds.update(&meterState)) { debugI("Saving day plot"); ds.save(); } else if(data.getListType() == 3) { debugE("Unable to update day plot"); } - - meterState.apply(data); } + delay(1); } void debugPrint(byte *buffer, int start, int length) { @@ -819,7 +823,7 @@ void WiFi_connect() { ESP.restart(); return; } - if (Debug.isActive(RemoteDebug::INFO)) debugI("Disconnecting from WiFi"); + if (Debug.isActive(RemoteDebug::INFO)) debugI("Not connected to WiFi, closing resources"); if(mqtt != NULL) { mqtt->disconnect(); mqtt->loop(); @@ -843,10 +847,12 @@ void WiFi_connect() { #endif MDNS.end(); + WiFi.persistent(false); WiFi.disconnect(true); WiFi.softAPdisconnect(true); - WiFi.mode(WIFI_OFF); WiFi.enableAP(false); + WiFi.mode(WIFI_OFF); + wifi_fpm_close(); yield(); wifiTimeout = 5000; return; @@ -864,6 +870,7 @@ void WiFi_connect() { wifiReconnectCount++; WiFi.mode(WIFI_STA); + WiFi.setOutputPower(0); if(strlen(wifi.ip) > 0) { IPAddress ip, gw, sn(255,255,255,0), dns1, dns2; ip.fromString(wifi.ip); @@ -890,7 +897,7 @@ void WiFi_connect() { if(WiFi.begin(wifi.ssid, wifi.psk)) { yield(); } else { - if (Debug.isActive(RemoteDebug::ERROR)) debugI("Unable to enable WiFi"); + if (Debug.isActive(RemoteDebug::ERROR)) debugI("Unable to start WiFi"); } } } diff --git a/src/HwTools.cpp b/src/HwTools.cpp index 14f363d0..7cf0ef17 100644 --- a/src/HwTools.cpp +++ b/src/HwTools.cpp @@ -1,7 +1,4 @@ #include "HwTools.h" -#if defined(ESP8266) -ADC_MODE(ADC_VCC); -#endif void HwTools::setup(GpioConfig* config, AmsConfiguration* amsConf) { this->config = config;