From fa630b9e64b4cdb6e61ce372c0251b0a3c0b9794 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Tue, 5 Nov 2024 08:54:05 +0100 Subject: [PATCH] add system commands `showertimer`, ` showeralert` #2168 --- src/locale_common.h | 2 ++ src/locale_translations.h | 2 ++ src/system.cpp | 33 +++++++++++++++++++++++++++++++++ src/system.h | 2 ++ 4 files changed, 39 insertions(+) diff --git a/src/locale_common.h b/src/locale_common.h index 92330b9de..09ccde737 100644 --- a/src/locale_common.h +++ b/src/locale_common.h @@ -48,6 +48,8 @@ MAKE_WORD(send) MAKE_WORD(telegram) MAKE_WORD(bus_id) MAKE_WORD(tx_mode) +MAKE_WORD(showertimer) +MAKE_WORD(showeralert) MAKE_WORD(ems) MAKE_WORD(devices) MAKE_WORD(shower) diff --git a/src/locale_translations.h b/src/locale_translations.h index b78e4c60c..fc0133e37 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -79,6 +79,8 @@ MAKE_WORD_TRANSLATION(commands_response, "get response", "Hole Antwort", "Verzoe MAKE_WORD_TRANSLATION(coldshot_cmd, "send a cold shot of water", "Zugabe einer Menge kalten Wassers", "", "", "uruchom tryśnięcie zimnej wody", "", "", "soğuk su gönder", "", "pošlite studenú dávku vody", "poslat studenou vodu") // TODO translate MAKE_WORD_TRANSLATION(message_cmd, "send a message", "Eine Nachricht senden", "", "", "", "", "", "", "", "poslať správu", "odeslat zprávu") // TODO translate MAKE_WORD_TRANSLATION(values_cmd, "list all values", "Liste alle Werte auf", "", "", "", "", "", "", "", "vypísať všetky hodnoty", "vypsat všechny hodnoty") // TODO translate +MAKE_WORD_TRANSLATION(showertimer_cmd, "enable shower timer", "aktiviere Duschzeitmessung", "", "", "", "", "", "", "", "", "") // TODO translate +MAKE_WORD_TRANSLATION(showeralert_cmd, "enable shower alert", "aktiviere Duschzeitwarnung", "", "", "", "", "", "", "", "", "") // TODO translate // tags MAKE_WORD_TRANSLATION(tag_hc1, "hc1", "HK1", "hc1", "VK1", "OG1", "hc1", "hc1", "ID1", "hc1", "hc1", "hc1") diff --git a/src/system.cpp b/src/system.cpp index 7738caf43..e990e8a1e 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -196,6 +196,37 @@ bool System::command_syslog_level(const char * value, const int8_t id) { return false; } */ +// shower timer +bool System::command_showertimer(const char * value, const int8_t id) { + bool b; + if (Helpers::value2bool(value, b)) { + EMSESP::webSettingsService.update([&](WebSettings & settings) { + if (settings.shower_timer != b) { + settings.shower_timer = b; + return StateUpdateResult::CHANGED; + } + return StateUpdateResult::UNCHANGED; + }); + return true; + } + return false; +} + +// shower alert +bool System::command_showeralert(const char * value, const int8_t id) { + bool b; + if (Helpers::value2bool(value, b)) { + EMSESP::webSettingsService.update([&](WebSettings & settings) { + if (settings.shower_alert != b) { + settings.shower_alert = b; + return StateUpdateResult::CHANGED; + } + return StateUpdateResult::UNCHANGED; + }); + return true; + } + return false; +} // send message - to log and MQTT bool System::command_message(const char * value, const int8_t id) { @@ -860,6 +891,8 @@ void System::commands_init() { Command::add(EMSdevice::DeviceType::SYSTEM, F_(format), System::command_format, FL_(format_cmd), CommandFlag::ADMIN_ONLY); Command::add(EMSdevice::DeviceType::SYSTEM, F_(watch), System::command_watch, FL_(watch_cmd)); Command::add(EMSdevice::DeviceType::SYSTEM, F_(message), System::command_message, FL_(message_cmd)); + Command::add(EMSdevice::DeviceType::SYSTEM, F_(showertimer), System::command_showertimer, FL_(showertimer_cmd), CommandFlag::ADMIN_ONLY); + Command::add(EMSdevice::DeviceType::SYSTEM, F_(showeralert), System::command_showeralert, FL_(showeralert_cmd), CommandFlag::ADMIN_ONLY); #if defined(EMSESP_TEST) Command::add(EMSdevice::DeviceType::SYSTEM, ("test"), System::command_test, FL_(test_cmd)); #endif diff --git a/src/system.h b/src/system.h index ffc620a3f..36604732e 100644 --- a/src/system.h +++ b/src/system.h @@ -69,6 +69,8 @@ class System { static bool command_fetch(const char * value, const int8_t id); static bool command_restart(const char * value, const int8_t id); static bool command_format(const char * value, const int8_t id); + static bool command_showertimer(const char * value, const int8_t id); + static bool command_showeralert(const char * value, const int8_t id); static bool command_watch(const char * value, const int8_t id); static bool command_message(const char * value, const int8_t id); static bool command_info(const char * value, const int8_t id, JsonObject output);