From 81dc2d70e7528611ec0d4ebe79665fb76f20f415 Mon Sep 17 00:00:00 2001 From: Eric Duminil Date: Mon, 14 Feb 2022 10:37:27 +0100 Subject: [PATCH] Configurable name --- ampel-firmware/ampel-firmware.ino | 6 ++++-- ampel-firmware/csv_writer.cpp | 4 ++-- ampel-firmware/web_config.cpp | 4 ++++ ampel-firmware/web_config.h | 1 + ampel-firmware/web_server.cpp | 8 ++++---- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ampel-firmware/ampel-firmware.ino b/ampel-firmware/ampel-firmware.ino index 8b4bb2a..01d2818 100644 --- a/ampel-firmware/ampel-firmware.ino +++ b/ampel-firmware/ampel-firmware.ino @@ -76,6 +76,8 @@ void setup() { Serial.println(); Serial.print(F("Sensor ID: ")); Serial.println(ampel.sensorId); + Serial.print(F("Name : ")); + Serial.println(config::ampel_name()); Serial.print(F("MAC : ")); Serial.println(ampel.macAddress); Serial.print(F("Board : ")); @@ -87,7 +89,7 @@ void setup() { sensor::initialize(); - csv_writer::initialize(ampel.sensorId); + csv_writer::initialize(config::ampel_name()); if (config::wifi_active) { wifi::defineCommands(); @@ -171,7 +173,7 @@ void wifiConnected() { } Serial.print(F("You can access this sensor via http://")); - Serial.print(ampel.sensorId); + Serial.print(config::ampel_name()); Serial.print(F(".local (might be unstable) or http://")); Serial.println(WiFi.localIP()); } diff --git a/ampel-firmware/csv_writer.cpp b/ampel-firmware/csv_writer.cpp index b40b0a4..ada784a 100644 --- a/ampel-firmware/csv_writer.cpp +++ b/ampel-firmware/csv_writer.cpp @@ -79,14 +79,14 @@ namespace csv_writer { } #endif - char filename[15]; // "/ESPxxxxxx.csv\0" + char filename[20]; // "/ESPxxxxxx.csv\0" int getAvailableSpace() { return getTotalSpace() - getUsedSpace(); } void initialize(const char *sensorId) { - snprintf(filename, sizeof(filename), "/%s.csv", sensorId); + snprintf(filename, sizeof(filename), "/%.15s.csv", sensorId); Serial.println(); Serial.print(F("Initializing FS...")); diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp index 955b3d5..0d86ea4 100644 --- a/ampel-firmware/web_config.cpp +++ b/ampel-firmware/web_config.cpp @@ -287,6 +287,10 @@ namespace web_config { */ namespace config { + char* ampel_name() { + return web_config::iotWebConf->getThingName(); + } + char* selected_ssid() { return web_config::iotWebConf->getWifiSsidParameter()->valueBuffer; } diff --git a/ampel-firmware/web_config.h b/ampel-firmware/web_config.h index 268a447..b0f3cf4 100644 --- a/ampel-firmware/web_config.h +++ b/ampel-firmware/web_config.h @@ -10,6 +10,7 @@ namespace config { void save(); // Save config to EEPROM + char* ampel_name(); // WiFi char* selected_ssid(); char* ap_password(); diff --git a/ampel-firmware/web_server.cpp b/ampel-firmware/web_server.cpp index e51b7c2..4c86876 100644 --- a/ampel-firmware/web_server.cpp +++ b/ampel-firmware/web_server.cpp @@ -191,7 +191,7 @@ namespace web_server { char content[2000]; // Update if needed // INFO - Header size : 1767 - Body size : 1991 - Script size : 1909 - snprintf_P(content, sizeof(content), header_template, sensor::co2, ampel.sensorId, wifi::local_ip, + snprintf_P(content, sizeof(content), header_template, sensor::co2, config::ampel_name(), wifi::local_ip, csv_writer::filename); Serial.print(F("INFO - Header size : ")); @@ -200,7 +200,7 @@ namespace web_server { web_config::http.send_P(200, PSTR("text/html"), content); // Body - snprintf_P(content, sizeof(content), body_template, ampel.sensorId, sensor::co2, sensor::temperature, + snprintf_P(content, sizeof(content), body_template, config::ampel_name(), sensor::co2, sensor::temperature, sensor::humidity, sensor::timestamp, config::measurement_timestep, csv_writer::last_successful_write, config::csv_interval, csv_writer::getAvailableSpace() / 1024, mqtt::connected ? "Yes" : "No", mqtt::last_successful_publish, config::mqtt_sending_interval, @@ -208,7 +208,7 @@ namespace web_server { lorawan::connected ? "Yes" : "No", config::lorawan_frequency_plan, lorawan::last_transmission, config::lorawan_sending_interval, #endif - config::temperature_offset, config::auto_calibrate_sensor ? "Yes" : "No", ampel.sensorId, ampel.sensorId, + config::temperature_offset, config::auto_calibrate_sensor ? "Yes" : "No", config::ampel_name(), config::ampel_name(), wifi::local_ip, wifi::local_ip, ampel.macAddress, ESP.getFreeHeap(), esp_get_max_free_block_size(), esp_get_heap_fragmentation(), ampel.max_loop_duration, ampel.board, ampel.version, dd, hh, mm, ss); @@ -217,7 +217,7 @@ namespace web_server { web_config::http.sendContent(content); // Script - snprintf_P(content, sizeof(content), script_template, csv_writer::filename, ampel.sensorId); + snprintf_P(content, sizeof(content), script_template, csv_writer::filename, config::ampel_name()); Serial.print(F(" - Script size : ")); Serial.println(strlen(content)); -- GitLab