From e00da5a721f206f3abcfb12fa0797d5bebd4cf83 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 4 May 2022 14:14:17 +0200 Subject: [PATCH 1/2] add option to switch mDNS off/on --- CHANGELOG_LATEST.md | 1 + .../framework/network/NetworkSettingsForm.tsx | 8 ++++- interface/src/types/network.ts | 1 + lib/framework/NetworkSettingsService.h | 3 ++ src/web/WebStatusService.cpp | 32 ++++++++++++------- 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index b665af1e2..104ef1b19 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -38,6 +38,7 @@ - Added Shower Alert trigger time and cold shot time [#436](https://github.com/emsesp/EMS-ESP32/issues/436) - Improved Table layout in Web UI (searching, filtering, sorting, exporting to CSV) - API fetch individual attributes from an entity [#462](https://github.com/emsesp/EMS-ESP32/issues/462) +- Option to disable mDNS ### Fixed diff --git a/interface/src/framework/network/NetworkSettingsForm.tsx b/interface/src/framework/network/NetworkSettingsForm.tsx index b15eb66f5..c1221713d 100644 --- a/interface/src/framework/network/NetworkSettingsForm.tsx +++ b/interface/src/framework/network/NetworkSettingsForm.tsx @@ -56,7 +56,8 @@ const WiFiSettingsForm: FC = () => { enableIPv6: false, bandwidth20: false, tx_power: 20, - nosleep: false + nosleep: false, + enableMDNS: true }); } setInitialized(true); @@ -153,6 +154,11 @@ const WiFiSettingsForm: FC = () => { label="Use Lower WiFi Bandwidth" /> + } + label="Enable mDNS Service" + /> + General diff --git a/interface/src/types/network.ts b/interface/src/types/network.ts index 538020903..fb6b576ba 100644 --- a/interface/src/types/network.ts +++ b/interface/src/types/network.ts @@ -47,6 +47,7 @@ export interface NetworkSettings { subnet_mask?: string; dns_ip_1?: string; dns_ip_2?: string; + enableMDNS: boolean; } export interface WiFiNetworkList { diff --git a/lib/framework/NetworkSettingsService.h b/lib/framework/NetworkSettingsService.h index ce3b9b189..60843431f 100644 --- a/lib/framework/NetworkSettingsService.h +++ b/lib/framework/NetworkSettingsService.h @@ -38,6 +38,7 @@ class NetworkSettings { bool bandwidth20; int8_t tx_power; bool nosleep; + bool enableMDNS; // optional configuration for static IP address IPAddress localIP; @@ -56,6 +57,7 @@ class NetworkSettings { root["bandwidth20"] = settings.bandwidth20; root["tx_power"] = settings.tx_power; root["nosleep"] = settings.nosleep; + root["enableMDNS"] = settings.enableMDNS; // extended settings JsonUtils::writeIP(root, "local_ip", settings.localIP); @@ -74,6 +76,7 @@ class NetworkSettings { settings.bandwidth20 = root["bandwidth20"] | false; settings.tx_power = root["tx_power"] | 20; settings.nosleep = root["nosleep"] | false; + settings.enableMDNS = root["enableMDNS"] | true; // extended settings JsonUtils::readIP(root, "local_ip", settings.localIP); diff --git a/src/web/WebStatusService.cpp b/src/web/WebStatusService.cpp index f4122656b..76063f679 100644 --- a/src/web/WebStatusService.cpp +++ b/src/web/WebStatusService.cpp @@ -189,21 +189,31 @@ void WebStatusService::webStatusService(AsyncWebServerRequest * request) { void WebStatusService::mDNS_start() const { #ifndef EMSESP_STANDALONE MDNS.end(); - if (!MDNS.begin(EMSESP::system_.hostname().c_str())) { - EMSESP::logger().warning(F("Failed to start mDNS responder service")); - return; - } + EMSESP::esp8266React.getNetworkSettingsService()->read([&](NetworkSettings & networkSettings) { + if (networkSettings.enableMDNS) { + if (!MDNS.begin(EMSESP::system_.hostname().c_str())) { + EMSESP::logger().warning(F("Failed to start mDNS responder service")); + return; + } - std::string address_s = EMSESP::system_.hostname() + ".local"; + std::string address_s = EMSESP::system_.hostname() + ".local"; - MDNS.addService("http", "tcp", 80); // add our web server and rest API - MDNS.addService("telnet", "tcp", 23); // add our telnet console + MDNS.addService("http", "tcp", 80); // add our web server and rest API + MDNS.addService("telnet", "tcp", 23); // add our telnet console - MDNS.addServiceTxt("http", "tcp", "version", EMSESP_APP_VERSION); - MDNS.addServiceTxt("http", "tcp", "address", address_s.c_str()); + MDNS.addServiceTxt("http", "tcp", "version", EMSESP_APP_VERSION); + MDNS.addServiceTxt("http", "tcp", "address", address_s.c_str()); + + EMSESP::logger().info(F("mDNS responder service started")); + } + }); +#else + EMSESP::esp8266React.getNetworkSettingsService()->read([&](NetworkSettings & networkSettings) { + if (networkSettings.enableMDNS) { + EMSESP::logger().info(F("mDNS responder service started")); + } + }); #endif - - EMSESP::logger().info(F("mDNS responder service started")); } } // namespace emsesp \ No newline at end of file From 5d2f648d0381b291478f8a7eaac685ce074e5a66 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 4 May 2022 14:47:57 +0200 Subject: [PATCH 2/2] add option for rendering booleans on Dashboard #456 --- CHANGELOG_LATEST.md | 1 + interface/src/project/SettingsApplication.tsx | 25 ++++++++++++++++--- interface/src/project/types.ts | 1 + lib_standalone/ESP8266React.h | 1 + src/emsdevice.cpp | 20 +++++---------- src/helpers.cpp | 4 +-- src/helpers.h | 2 +- src/system.cpp | 10 +++++--- src/system.h | 9 +++++++ src/web/WebSettingsService.cpp | 4 +++ src/web/WebSettingsService.h | 1 + 11 files changed, 53 insertions(+), 25 deletions(-) diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 104ef1b19..b128f1fab 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -39,6 +39,7 @@ - Improved Table layout in Web UI (searching, filtering, sorting, exporting to CSV) - API fetch individual attributes from an entity [#462](https://github.com/emsesp/EMS-ESP32/issues/462) - Option to disable mDNS +- Option for rendering booleans on dashboard [#456](https://github.com/emsesp/EMS-ESP32/issues/456) ### Fixed diff --git a/interface/src/project/SettingsApplication.tsx b/interface/src/project/SettingsApplication.tsx index 353f1faf0..945dfa137 100644 --- a/interface/src/project/SettingsApplication.tsx +++ b/interface/src/project/SettingsApplication.tsx @@ -402,10 +402,27 @@ const SettingsApplication: FC = () => { Formatting Options - + + + on/off + ON/OFF + true/false + 1/0 + + + { 1/0 - +