From 9c575cf091b61d288ddbca3f624b121b7b9ba225 Mon Sep 17 00:00:00 2001
From: jdeglavina
Date: Fri, 21 Feb 2020 14:19:22 -0500
Subject: [PATCH] MQTT Fixes & cleanup
- Add RSSI value to MQTT #22 - thanks @fredkehler!
- Fix for MQTT reconnect - was set to 50000ms (14 min) for reconnect instead of 5000ms (5 seconds). This was blocking everything else if MQTT disconnected, potentially causing freezing. Now it will try to reconnect continously for 5 seconds, then every 10 seconds.
- Moved some includes to .h files for consistency
- Fixed some typos in web interface
- Added default voltage calibration value for meter v1.4 rev3. (it is much lower because of lower value resistors for voltage divider (20k and 10k).
---
Software/EmonESP/src/data/home.html | 20 +++++++++++-------
Software/EmonESP/src/energy_meter.cpp | 2 +-
Software/EmonESP/src/energy_meter.h | 10 ++++-----
Software/EmonESP/src/http.cpp | 11 ----------
Software/EmonESP/src/http.h | 10 +++++++++
Software/EmonESP/src/mqtt.cpp | 17 +++++++++------
Software/EmonESP/src/mqtt.h | 2 ++
Software/EmonESP/src/ota.cpp | 9 --------
Software/EmonESP/src/ota.h | 2 ++
Software/EmonESP/src/src.ino.esp32.bin | Bin 1064880 -> 1065344 bytes
.../EmonESP/src/src.ino.esp32_metering.bin | Bin 0 -> 1065936 bytes
Software/EmonESP/src/src.spiffs.bin | Bin 1507328 -> 1507328 bytes
Software/EmonESP/src/web_server.cpp | 2 +-
Software/EmonESP/src_solar/data/home.html | 18 +++++++++-------
Software/EmonESP/src_solar/energy_meter.cpp | 4 ++--
Software/EmonESP/src_solar/energy_meter.h | 8 +++----
Software/EmonESP/src_solar/http.cpp | 12 -----------
Software/EmonESP/src_solar/http.h | 10 +++++++++
Software/EmonESP/src_solar/mqtt.cpp | 20 ++++++++++++------
Software/EmonESP/src_solar/mqtt.h | 2 ++
Software/EmonESP/src_solar/ota.cpp | 9 --------
Software/EmonESP/src_solar/ota.h | 2 ++
.../EmonESP/src_solar/src_solar.ino.esp32.bin | Bin 1067584 -> 1068000 bytes
.../EmonESP/src_solar/src_solar.spiffs.bin | Bin 0 -> 1507328 bytes
Software/EmonESP/src_solar/web_server.cpp | 2 +-
25 files changed, 89 insertions(+), 83 deletions(-)
create mode 100644 Software/EmonESP/src/src.ino.esp32_metering.bin
create mode 100644 Software/EmonESP/src_solar/src_solar.spiffs.bin
diff --git a/Software/EmonESP/src/data/home.html b/Software/EmonESP/src/data/home.html
index 255febb..7c04b1e 100644
--- a/Software/EmonESP/src/data/home.html
+++ b/Software/EmonESP/src/data/home.html
@@ -142,7 +142,7 @@ 3. MQTT
Username:
- Leave blank for authentication
+ Leave blank for no authentication
Password:
@@ -210,9 +210,13 @@
7. Calibration Settings
Voltage:
- 37106 - 9v AC Transformer - Jameco 157041 (default)
+ 37106 - 9v AC Transformer - Jameco 157041
38302 - 9v AC Transformer - Jameco 112336
-
29462 - 12v AC Transformer - Jameco 167151
+
29462 - 12v AC Transformer - Jameco 167151
+
For meter versions >= 1.4 rev3:
+
3920 - 9v AC Transformer - Jameco 157041 (default)
+
+
CT1:
@@ -231,15 +235,15 @@
7. Calibration Settings
Frequency:
- 4485 for 60 Hz (North America Default)
-
389 for 50 hz (rest of the world)
+ 60 Hz - North America: 4231 (Default)
+
50 Hz - Europe: 135
CT Gain (PGA):
- 0 for 0-99A (1x)
-
21 for 100A (2x) (default)
-
42 for 100-200A (4x)
+ 1x: 0
+
2x: 21 (default)
+
4x: 42
diff --git a/Software/EmonESP/src/energy_meter.cpp b/Software/EmonESP/src/energy_meter.cpp
index c42f5b7..10109a7 100644
--- a/Software/EmonESP/src/energy_meter.cpp
+++ b/Software/EmonESP/src/energy_meter.cpp
@@ -42,7 +42,7 @@
// Declaration for SSD1306 display connected using software SPI (default case):
#define OLED_DC 0
#define OLED_CS 16
-#define OLED_RESET 2 //17
+#define OLED_RESET 17
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &SPI, OLED_DC, OLED_RESET, OLED_CS);
#endif
diff --git a/Software/EmonESP/src/energy_meter.h b/Software/EmonESP/src/energy_meter.h
index 967620c..bc4059e 100644
--- a/Software/EmonESP/src/energy_meter.h
+++ b/Software/EmonESP/src/energy_meter.h
@@ -56,14 +56,14 @@
For meter <= v1.3:
42080 - 9v AC Transformer - Jameco 112336
32428 - 12v AC Transformer - Jameco 167151
- For meter > v1.4:
+ For meter = v1.4:
37106 - 9v AC Transformer - Jameco 157041
38302 - 9v AC Transformer - Jameco 112336
29462 - 12v AC Transformer - Jameco 167151
- For Meters > v1.4 purchased after 11/1/2019 and rev.3
- 7611 - 9v AC Transformer - Jameco 157041
+ For Meters >= v1.4 rev.3
+ 3920 - 9v AC Transformer - Jameco 157041
*/
-#define VOLTAGE_GAIN 37106
+#define VOLTAGE_GAIN 3920
/*
10170 - SCT-006 20A/25mA
@@ -75,7 +75,7 @@
#define CURRENT_GAIN_CT2 39473
#ifdef SOLAR_METER
-#define VOLTAGE_GAIN_SOLAR 37106
+#define VOLTAGE_GAIN_SOLAR 3920
#define SOLAR_GAIN_CT1 39473
#define SOLAR_GAIN_CT2 39473
#endif
diff --git a/Software/EmonESP/src/http.cpp b/Software/EmonESP/src/http.cpp
index c821581..b4be38f 100644
--- a/Software/EmonESP/src/http.cpp
+++ b/Software/EmonESP/src/http.cpp
@@ -28,17 +28,6 @@
#include "emonesp.h"
#include "http.h"
-#include
-#include // Secure https GET request
-
-#ifdef ESP32
-#include
-#elif defined(ESP8266)
-#include
-#else
-#error Platform not supported
-#endif
-
WiFiClientSecure client; // Create class for HTTPS TCP connections get_https()
HTTPClient http; // Create class for HTTP TCP connections get_http()
diff --git a/Software/EmonESP/src/http.h b/Software/EmonESP/src/http.h
index bbf3c1a..9f32bd6 100644
--- a/Software/EmonESP/src/http.h
+++ b/Software/EmonESP/src/http.h
@@ -34,6 +34,16 @@
// -------------------------------------------------------------------
#include
+#include
+#include // Secure https GET request
+
+#ifdef ESP32
+#include
+#elif defined(ESP8266)
+#include
+#else
+#error Platform not supported
+#endif
// -------------------------------------------------------------------
// HTTPS SECURE GET Request
diff --git a/Software/EmonESP/src/mqtt.cpp b/Software/EmonESP/src/mqtt.cpp
index 14cad96..e8509f6 100644
--- a/Software/EmonESP/src/mqtt.cpp
+++ b/Software/EmonESP/src/mqtt.cpp
@@ -29,10 +29,7 @@
#include "emonesp.h"
#include "mqtt.h"
#include "config.h"
-
-#include
-#include // MQTT https://github.com/knolleary/pubsubclient PlatformIO lib: 89
-#include
+#include "wifi.h"
WiFiClient espClient; // Create client for MQTT
PubSubClient mqttclient(espClient); // Create client for MQTT
@@ -44,6 +41,7 @@ int i = 0;
// -------------------------------------------------------------------
// MQTT Connect
+// Called only when MQTT server field is populated
// -------------------------------------------------------------------
boolean mqtt_connect()
{
@@ -57,8 +55,8 @@ boolean mqtt_connect()
String strID = String(ESP.getChipId());
#endif
-
if (mqtt_user.length() == 0) {
+ //allows for anonymous connection
if (mqttclient.connect(strID.c_str())) { // Attempt to connect
DBUGS.println("MQTT connected");
mqttclient.publish(mqtt_topic.c_str(), "connected"); // Once connected, publish an announcement..
@@ -122,9 +120,16 @@ void mqtt_publish(String data)
if (int(data[i]) == 0) break;
}
+ // send esp free ram
String ram_topic = mqtt_topic + "/" + mqtt_feed_prefix + "freeram";
String free_ram = String(ESP.getFreeHeap());
mqttclient.publish(ram_topic.c_str(), free_ram.c_str());
+
+ // send wifi signal strength
+ long rssi = WiFi.RSSI();
+ String rssi_S = String(rssi);
+ String rssi_topic = mqtt_topic + "/" + mqtt_feed_prefix + "rssi";
+ mqttclient.publish(rssi_topic.c_str(), rssi_S.c_str());
}
// -------------------------------------------------------------------
@@ -137,7 +142,7 @@ void mqtt_loop()
if (!mqttclient.connected()) {
long now = millis();
// try and reconnect continuously for first 5s then try again once every 10s
- if ( (now < 50000) || ((now - lastMqttReconnectAttempt) > 100000) ) {
+ if ( (now < 5000) || ((now - lastMqttReconnectAttempt) > 10000) ) {
lastMqttReconnectAttempt = now;
if (mqtt_connect()) { // Attempt to reconnect
lastMqttReconnectAttempt = 0;
diff --git a/Software/EmonESP/src/mqtt.h b/Software/EmonESP/src/mqtt.h
index b59012e..81ac9b0 100644
--- a/Software/EmonESP/src/mqtt.h
+++ b/Software/EmonESP/src/mqtt.h
@@ -33,6 +33,8 @@
// -------------------------------------------------------------------
#include
+#include // MQTT https://github.com/knolleary/pubsubclient PlatformIO lib: 89
+#include
// -------------------------------------------------------------------
// Perform the background MQTT operations. Must be called in the main
diff --git a/Software/EmonESP/src/ota.cpp b/Software/EmonESP/src/ota.cpp
index 214f604..f0be1e0 100644
--- a/Software/EmonESP/src/ota.cpp
+++ b/Software/EmonESP/src/ota.cpp
@@ -32,15 +32,6 @@
#include "wifi.h"
#include "http.h"
-#include
-
-#include // local OTA update from Arduino IDE
-#ifdef ESP32
-#include // remote OTA update from server
-#elif defined(ESP8266)
-#include // remote OTA update from server
-#endif
-
// -------------------------------------------------------------------
//OTA UPDATE SETTINGS
diff --git a/Software/EmonESP/src/ota.h b/Software/EmonESP/src/ota.h
index 6d617bd..9baca49 100644
--- a/Software/EmonESP/src/ota.h
+++ b/Software/EmonESP/src/ota.h
@@ -34,6 +34,8 @@
// -------------------------------------------------------------------
#include
+#include
+#include // local OTA update from Arduino IDE
#ifdef ESP32
#include // remote OTA update from server
#elif defined(ESP8266)
diff --git a/Software/EmonESP/src/src.ino.esp32.bin b/Software/EmonESP/src/src.ino.esp32.bin
index 970c7ee05440b35d1c445d33d85b1ebbd513882f..a6264c1509a4436134dd0ee59f7f29e42d2e737f 100644
GIT binary patch
delta 187202
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