From 8ebc01229e0e32a0b87bf0e9dc7a692a9558b96b Mon Sep 17 00:00:00 2001 From: Clayton Sims Date: Wed, 7 Jun 2023 16:38:35 -0500 Subject: [PATCH 1/9] Initial checkin for ESP-NOW remote feature --- wled00/cfg.cpp | 14 ++ wled00/data/settings_wifi.htm | 11 ++ wled00/fcn_declare.h | 4 + wled00/html_settings.h | 278 +++++++++++++++++----------------- wled00/ir.cpp | 9 -- wled00/presets.cpp | 9 ++ wled00/remote.cpp | 174 +++++++++++++++++++++ wled00/remote_codes.h | 17 +++ wled00/set.cpp | 8 + wled00/wled.cpp | 1 + wled00/wled.h | 9 ++ wled00/xml.cpp | 23 +++ 12 files changed, 413 insertions(+), 144 deletions(-) create mode 100644 wled00/remote.cpp create mode 100644 wled00/remote_codes.h diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index 16daac68d1..6e68581d54 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -441,6 +441,13 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { CJSON(retainMqttMsg, if_mqtt[F("rtn")]); #endif +#ifndef WLED_DISABLE_REMOTE + JsonObject remote = doc["remote"]; + CJSON(enable_espnow_remote, remote[F("remote_enabled")]); + getStringFromJson(linked_remote, remote[F("linked_remote")], 13); // "wled/test" +#endif + + #ifndef WLED_DISABLE_HUESYNC JsonObject if_hue = interfaces["hue"]; CJSON(huePollingEnabled, if_hue["en"]); @@ -893,6 +900,13 @@ void serializeConfig() { if_mqtt_topics[F("group")] = mqttGroupTopic; #endif +#ifndef WLED_DISABLE_REMOTE + JsonObject remote = doc.createNestedObject(F("remote")); + remote[F("remote_enabled")] = enable_espnow_remote; + remote[F("linked_remote")] = linked_remote; +#endif + + #ifndef WLED_DISABLE_HUESYNC JsonObject if_hue = interfaces.createNestedObject("hue"); if_hue["en"] = huePollingEnabled; diff --git a/wled00/data/settings_wifi.htm b/wled00/data/settings_wifi.htm index 96971feadb..a8d9d6b8a8 100644 --- a/wled00/data/settings_wifi.htm +++ b/wled00/data/settings_wifi.htm @@ -182,6 +182,17 @@

Experimental

Disable WiFi sleep:
Can help with connectivity issues.
Do not enable if WiFi is working correctly, increases power consumption.
+ +
+

Wireless Remote

+ Listen for events over ESP-NOW
+ Keep disabled if not using a remote, increases power consumption.
+ + Enable Remote:
+ Hardware MAC:
+ Last Seen: None
+
+

Ethernet Type