esp8266-remote-timer

ESP8266 based timer w/ remote control and NTP sync
Index Commits Files Refs README LICENSE
commit d1acf00ac7f4c73244bd48b31ee7acea3405f67a
parent a91143ea3cf6dc5b45ef76fe7c43becfc1b8ff25
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Mon, 31 Mar 2025 13:05:40 -0300

minor fix: update all clients checkboxes when toggle button pressed

Diffstat:
Msrc/main.cpp | 19+++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/src/main.cpp b/src/main.cpp
@@ -10,7 +10,6 @@
 #define REMOTE_LED_PIN LED_BUILTIN
 #define MAIN_OUTPUT_PIN 5
 #define MAIN_SWITCH_INPUT_PIN 4
-#define SETUP_COMPLETE_OUTPUT_PIN 14
 
 #define WIFI_SSID "hello-world"
 #define WIFI_PASSWD "12345678"
@@ -40,6 +39,7 @@ void setup_websocket();
 void setup_webserver();
 void setup_mdns();
 void setup_fs();
+void update_all_clients_checkbox();
 
 void show_time(bool from_sntp = false) {
     time(&system_time);              // read the current time
@@ -71,11 +71,9 @@ void setup() {
     pinMode(REMOTE_LED_PIN, OUTPUT);
     pinMode(MAIN_OUTPUT_PIN, OUTPUT);
     pinMode(MAIN_SWITCH_INPUT_PIN, INPUT);
-    pinMode(SETUP_COMPLETE_OUTPUT_PIN, OUTPUT);
 
     digitalWrite(REMOTE_LED_PIN, HIGH); // led builtin uses inverted logic
     digitalWrite(MAIN_OUTPUT_PIN, LOW);
-    digitalWrite(SETUP_COMPLETE_OUTPUT_PIN, LOW);
 
     Serial.begin(115200);
     Serial.setDebugOutput(false);
@@ -98,7 +96,6 @@ void setup() {
     configTime(MY_TZ, MY_NTP_SERVER); // Here is the IMPORTANT ONE LINER needed in your sketch!
     settimeofday_cb(show_time);       // ntp update callback
     show_time();
-    digitalWrite(SETUP_COMPLETE_OUTPUT_PIN, HIGH);
 }
 
 uint32_t t = 0, clock_dt = 0, main_output_dt = 0;
@@ -109,7 +106,7 @@ void loop() {
         if(digitalRead(MAIN_SWITCH_INPUT_PIN)) {
             main_output_dt = millis();
             main_output_toggle();
-            update_all_socket_clients();
+            update_all_clients_checkbox();
         }
     }
 
@@ -174,11 +171,12 @@ void timer_toggle() {
 void update_data() {
     data["main-output-enabled"] = String(main_output_enabled);
     data["system-local-domain"] = String(MDNS_DOMAIN);
-    data["system-ip-addr"] = WiFi.localIP().toString();
-    data["last-ntp-sync"] = (long)last_ntp_sync;
-    data["system-time"] = (long)system_time;
-    data["wifi-ssid"] = WIFI_SSID;
-    data["wifi-rssi"] = WiFi.RSSI();
+    data["system-ip-addr"]      = WiFi.localIP().toString();
+    data["last-ntp-sync"]       = (long)last_ntp_sync;
+    data["system-time"]         = (long)system_time;
+    data["wifi-ssid"]           = WIFI_SSID;
+    data["wifi-rssi"]           = WiFi.RSSI();
+    data["timer-enabled"]       = String(timer_enabled);
 }
 
 void update_all_socket_clients() {
@@ -235,6 +233,7 @@ void webp_socket_event(uint8_t num, WStype_t type, uint8_t *payload, size_t len)
             case MAIN_OUTPUT_STATUS:
             default:
                 update_data();
+                data["type"] = "all";
                 String data_as_json = JSON.stringify(data);
                 web_socket.sendTXT(num, data_as_json);
                 break;