Skip to content

Commit f3496a5

Browse files
Fix SMA serial comparison and ESP8266 builds (#95)
* Fix uint32 comparison for SMA serial numbers * serial bump * Final build fix ESP8266
1 parent 8dedf3a commit f3496a5

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

src/main.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Energy2Shelly_ESP v0.6.0
1+
// Energy2Shelly_ESP v0.6.1
22
#include <Arduino.h>
33

44
// Configuration & setup
@@ -53,21 +53,21 @@ void setup(void) {
5353

5454
// Set up web server and endpoints
5555

56-
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
56+
server.on("/", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
5757
request->send(200, "text/plain", "This is the Energy2Shelly for ESP converter!\r\nDevice and Energy status is available under /status\r\nTo reset configuration, goto /reset\r\n");
5858
});
5959

60-
server.on("/shelly", HTTP_GET, [](AsyncWebServerRequest *request) {
60+
server.on("/shelly", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
6161
shellyGetDeviceInfo();
6262
request->send(200, "application/json", serJsonResponse);
6363
});
6464

65-
server.on("/status", HTTP_GET, [](AsyncWebServerRequest *request) {
65+
server.on("/status", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
6666
shellyGetStatus();
6767
request->send(200, "application/json", serJsonResponse);
6868
});
6969

70-
server.on("/reset", HTTP_GET, [](AsyncWebServerRequest *request) {
70+
server.on("/reset", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
7171
String html = "<!DOCTYPE html><html><head><title>Reset Confirmation</title>";
7272
html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
7373
html += "<style>body{font-family:Arial,sans-serif;text-align:center;padding:20px;}";
@@ -84,59 +84,59 @@ void setup(void) {
8484
request->send(200, "text/html", html);
8585
});
8686

87-
server.on("/reset", HTTP_POST, [](AsyncWebServerRequest *request) {
87+
server.on("/reset", AsyncWebRequestMethod::HTTP_POST, [](AsyncWebServerRequest *request) {
8888
shouldResetConfig = true;
8989
request->send(200, "text/plain", "Resetting WiFi configuration, please log back into the hotspot to reconfigure...\r\n");
9090
});
9191

9292
// Shelly RPC endpoints called via HTTP GET method
93-
server.on("/rpc/EM.GetConfig", HTTP_GET, [](AsyncWebServerRequest *request) {
93+
server.on("/rpc/EM.GetConfig", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
9494
EMGetConfig();
9595
request->send(200, "application/json", serJsonResponse);
9696
});
97-
server.on("/rpc/EM.GetStatus", HTTP_GET, [](AsyncWebServerRequest *request) {
97+
server.on("/rpc/EM.GetStatus", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
9898
EMGetStatus();
9999
request->send(200, "application/json", serJsonResponse);
100100
});
101101

102-
server.on("/rpc/EMData.GetStatus", HTTP_GET, [](AsyncWebServerRequest *request) {
102+
server.on("/rpc/EMData.GetStatus", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
103103
EMDataGetStatus();
104104
request->send(200, "application/json", serJsonResponse);
105105
});
106106

107-
server.on("/rpc/Shelly.GetComponents", HTTP_GET, [](AsyncWebServerRequest *request) {
107+
server.on("/rpc/Shelly.GetComponents", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
108108
shellyGetComponents();
109109
request->send(200, "application/json", serJsonResponse);
110110
});
111-
server.on("/rpc/Shelly.GetConfig", HTTP_GET, [](AsyncWebServerRequest *request) {
111+
server.on("/rpc/Shelly.GetConfig", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
112112
shellyGetConfig();
113113
request->send(200, "application/json", serJsonResponse);
114114
});
115-
server.on("/rpc/Shelly.GetDeviceInfo", HTTP_GET, [](AsyncWebServerRequest *request) {
115+
server.on("/rpc/Shelly.GetDeviceInfo", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
116116
shellyGetDeviceInfo();
117117
request->send(200, "application/json", serJsonResponse);
118118
});
119-
server.on("/rpc/Shelly.GetStatus", HTTP_GET, [](AsyncWebServerRequest *request) {
119+
server.on("/rpc/Shelly.GetStatus", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
120120
shellyGetStatus();
121121
request->send(200, "application/json", serJsonResponse);
122122
});
123123

124-
server.on("/rpc/Sys.GetConfig", HTTP_GET, [](AsyncWebServerRequest *request) {
124+
server.on("/rpc/Sys.GetConfig", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
125125
sysGetConfig();
126126
request->send(200, "application/json", serJsonResponse);
127127
});
128-
server.on("/rpc/Sys.GetStatus", HTTP_GET, [](AsyncWebServerRequest *request) {
128+
server.on("/rpc/Sys.GetStatus", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
129129
sysGetStatus();
130130
request->send(200, "application/json", serJsonResponse);
131131
});
132132

133-
server.on("/rpc/WiFi.GetStatus", HTTP_GET, [](AsyncWebServerRequest *request) {
133+
server.on("/rpc/WiFi.GetStatus", AsyncWebRequestMethod::HTTP_GET, [](AsyncWebServerRequest *request) {
134134
wifiGetStatus();
135135
request->send(200, "application/json", serJsonResponse);
136136
});
137137

138138
// Shelly RPC endpoint called via HTTP POST method with JSON-RPC body
139-
server.on("/rpc", HTTP_POST, [](AsyncWebServerRequest *request) {}, nullptr,
139+
server.on("/rpc", AsyncWebRequestMethod::HTTP_POST, [](AsyncWebServerRequest *request) {}, nullptr,
140140
[](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) {
141141
String rpcRequestBuffer;
142142
if (index == 0) {

src/parsers/SmaParser.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ void parseSMA() {
3030
uint32_t serial = (offset[0] << 24) + (offset[1] << 16) + (offset[2] << 8) + offset[3];
3131
DEBUG_SERIAL.print("Received SMA multicast from ");
3232
DEBUG_SERIAL.println(serial);
33-
if ((strcmp(sma_id, "") != 0) && (String(sma_id).toInt() != serial)) {
33+
if (sma_id[0] != '\0' && strtoul(sma_id, nullptr, 10) != serial) {
3434
DEBUG_SERIAL.println("SMA serial not matching - ignoring packet");
3535
break;
3636
}

0 commit comments

Comments
 (0)