Skip to content

Commit 8d8e6cf

Browse files
authored
Merge pull request #297 from OpenEVSE/jeremypoulter/issue218
Retrieve the serial numbers of the WiFi module and EVSE module
2 parents 2198684 + 4699392 commit 8d8e6cf

File tree

10 files changed

+38
-12
lines changed

10 files changed

+38
-12
lines changed

gui

src/emonesp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@
160160

161161
extern String currentfirmware;
162162
extern String buildenv;
163+
extern String serial;
163164

164165
void restart_system();
165166

src/evse_man.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,9 @@ class EvseManager : public MicroTasks::Task
379379
const char *getFirmwareVersion() {
380380
return _monitor.getFirmwareVersion();
381381
}
382+
const char *getSerial() {
383+
return _monitor.getSerial();
384+
}
382385
long getMinCurrent() {
383386
return _monitor.getMinCurrent();
384387
}

src/evse_monitor.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,14 @@
6262
#define EVSE_MONITOR_FLAGS_BOOT_READY (1 << 1)
6363
#define EVSE_MONITOR_CURRENT_BOOT_READY (1 << 2)
6464
#define EVSE_MONITOR_ENERGY_BOOT_READY (1 << 3)
65+
#define EVSE_MONITOR_SERIAL_BOOT_READY (1 << 5)
6566

6667
#define EVSE_MONITOR_BOOT_READY ( \
6768
EVSE_MONITOR_FAULT_COUNT_BOOT_READY | \
6869
EVSE_MONITOR_FLAGS_BOOT_READY | \
6970
EVSE_MONITOR_CURRENT_BOOT_READY | \
70-
EVSE_MONITOR_ENERGY_BOOT_READY \
71+
EVSE_MONITOR_ENERGY_BOOT_READY | \
72+
EVSE_MONITOR_SERIAL_BOOT_READY \
7173
)
7274

7375
#define EVSE_MONITOR_SESSION_COMPLETE_MASK OPENEVSE_VFLAG_EV_CONNECTED
@@ -245,6 +247,16 @@ void EvseMonitor::evseBoot(const char *firmware)
245247
}
246248
});
247249

250+
_openevse.getSerial([this](int ret, const char *serial)
251+
{
252+
if(RAPI_RESPONSE_OK == ret)
253+
{
254+
DBUGF("serial = %s", serial);
255+
snprintf(_serial, sizeof(_serial), "%s", serial);
256+
_boot_ready.ready(EVSE_MONITOR_SERIAL_BOOT_READY);
257+
}
258+
});
259+
248260
_openevse.heartbeatEnable(EVSE_HEATBEAT_INTERVAL, EVSE_HEARTBEAT_CURRENT, [this](int ret, int interval, int current, int triggered) {
249261
_heartbeat = RAPI_RESPONSE_OK == ret;
250262
});

src/evse_monitor.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ class EvseMonitor : public MicroTasks::Task
146146
bool _heartbeat;
147147

148148
char _firmware_version[32];
149+
char _serial[16];
149150

150151
#ifdef ENABLE_MCP9808
151152
Adafruit_MCP9808 _mcp9808;
@@ -294,6 +295,9 @@ class EvseMonitor : public MicroTasks::Task
294295
const char *getFirmwareVersion() {
295296
return _firmware_version;
296297
}
298+
const char *getSerial() {
299+
return _serial;
300+
}
297301

298302
// Register for events
299303
void onStateChange(MicroTasks::EventListener *listner) {

src/main.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ static uint32_t last_mem = 0;
7878
#define ESCAPEQUOTE(A) TEXTIFY(A)
7979
String currentfirmware = ESCAPEQUOTE(BUILD_TAG);
8080
String buildenv = ESCAPEQUOTE(BUILD_ENV_NAME);
81+
String serial;
8182

8283
ArduinoOcppTask ocpp = ArduinoOcppTask();
8384

@@ -98,6 +99,9 @@ void setup()
9899
DEBUG.printf("IDF version: %s\n", ESP.getSdkVersion());
99100
DEBUG.printf("Free: %d\n", ESPAL.getFreeHeap());
100101

102+
serial = ESPAL.getLongId();
103+
serial.toUpperCase();
104+
101105
if(!LittleFS.begin(FORMAT_LITTLEFS_IF_FAILED)){
102106
DEBUG.println("LittleFS Mount Failed");
103107
return;

src/web_server_config.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ handleConfigGet(MongooseHttpServerRequest *request, MongooseHttpServerResponseSt
2929
doc["espinfo"] = ESPAL.getChipInfo();
3030
doc["buildenv"] = buildenv;
3131
doc["version"] = currentfirmware;
32+
doc["evse_serial"] = evse.getSerial();
33+
doc["wifi_serial"] = serial;
3234
doc["diodet"] = evse.isDiodeCheckDisabled() ? 1 : 0;
3335
doc["gfcit"] = evse.isGfiTestDisabled() ? 1 : 0;
3436
doc["groundt"] = evse.isGroundCheckDisabled() ? 1 : 0;

src/web_static/web_server.home.html.h

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

src/web_static/web_server.lib.js.h

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

src/web_static/web_server.zones.json.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ static const char CONTENT_ZONES_JSON[] PROGMEM =
2525
"\"Africa/Gaborone\":\"CAT-2\",\n"
2626
"\"Africa/Harare\":\"CAT-2\",\n"
2727
"\"Africa/Johannesburg\":\"SAST-2\",\n"
28-
"\"Africa/Juba\":\"EAT-3\",\n"
28+
"\"Africa/Juba\":\"CAT-2\",\n"
2929
"\"Africa/Kampala\":\"EAT-3\",\n"
3030
"\"Africa/Khartoum\":\"CAT-2\",\n"
3131
"\"Africa/Kigali\":\"CAT-2\",\n"
@@ -215,7 +215,7 @@ static const char CONTENT_ZONES_JSON[] PROGMEM =
215215
"\"Arctic/Longyearbyen\":\"CET-1CEST,M3.5.0,M10.5.0/3\",\n"
216216
"\"Asia/Aden\":\"<+03>-3\",\n"
217217
"\"Asia/Almaty\":\"<+06>-6\",\n"
218-
"\"Asia/Amman\":\"EET-2EEST,M3.5.4/24,M10.5.5/1\",\n"
218+
"\"Asia/Amman\":\"EET-2EEST,M2.5.4/24,M10.5.5/1\",\n"
219219
"\"Asia/Anadyr\":\"<+12>-12\",\n"
220220
"\"Asia/Aqtau\":\"<+05>-5\",\n"
221221
"\"Asia/Aqtobe\":\"<+05>-5\",\n"
@@ -238,8 +238,8 @@ static const char CONTENT_ZONES_JSON[] PROGMEM =
238238
"\"Asia/Dubai\":\"<+04>-4\",\n"
239239
"\"Asia/Dushanbe\":\"<+05>-5\",\n"
240240
"\"Asia/Famagusta\":\"EET-2EEST,M3.5.0/3,M10.5.0/4\",\n"
241-
"\"Asia/Gaza\":\"EET-2EEST,M3.4.4/48,M10.4.4/49\",\n"
242-
"\"Asia/Hebron\":\"EET-2EEST,M3.4.4/48,M10.4.4/49\",\n"
241+
"\"Asia/Gaza\":\"EET-2EEST,M3.4.4/48,M10.5.5/1\",\n"
242+
"\"Asia/Hebron\":\"EET-2EEST,M3.4.4/48,M10.5.5/1\",\n"
243243
"\"Asia/Ho_Chi_Minh\":\"<+07>-7\",\n"
244244
"\"Asia/Hong_Kong\":\"HKT-8\",\n"
245245
"\"Asia/Hovd\":\"<+07>-7\",\n"
@@ -423,7 +423,7 @@ static const char CONTENT_ZONES_JSON[] PROGMEM =
423423
"\"Indian/Mauritius\":\"<+04>-4\",\n"
424424
"\"Indian/Mayotte\":\"EAT-3\",\n"
425425
"\"Indian/Reunion\":\"<+04>-4\",\n"
426-
"\"Pacific/Apia\":\"<+13>-13<+14>,M9.5.0/3,M4.1.0/4\",\n"
426+
"\"Pacific/Apia\":\"<+13>-13\",\n"
427427
"\"Pacific/Auckland\":\"NZST-12NZDT,M9.5.0,M4.1.0/3\",\n"
428428
"\"Pacific/Bougainville\":\"<+11>-11\",\n"
429429
"\"Pacific/Chatham\":\"<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45\",\n"
@@ -462,4 +462,4 @@ static const char CONTENT_ZONES_JSON[] PROGMEM =
462462
"\"Pacific/Wake\":\"<+12>-12\",\n"
463463
"\"Pacific/Wallis\":\"<+12>-12\"\n"
464464
"}\n";
465-
static const char CONTENT_ZONES_JSON_ETAG[] PROGMEM = "7641cf7331c8ae6124b008c962061938c20f26ae538e30e0484afc06adb88af9";
465+
static const char CONTENT_ZONES_JSON_ETAG[] PROGMEM = "d11c22c036ed3ee40406009e0f69f2a96903bd4261eb4e16b07bea3f3cf4a65e";

0 commit comments

Comments
 (0)