From 4dea67f941df95fd167c80ad302f20b9f95674f7 Mon Sep 17 00:00:00 2001 From: ESPHome Device Builder Date: Sat, 25 Jul 2026 20:49:10 +1200 Subject: [PATCH] Edit esp-downstloungemain.yaml --- esphome/esp-downstloungemain.yaml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/esphome/esp-downstloungemain.yaml b/esphome/esp-downstloungemain.yaml index ec0260c..27c6da4 100644 --- a/esphome/esp-downstloungemain.yaml +++ b/esphome/esp-downstloungemain.yaml @@ -164,16 +164,33 @@ logger: # This adds device-specific MQTT command triggers to the common MQTT configuration. #:########################################################################################:# mqtt: + # Republish current relay states whenever MQTT reconnects so retained status stays accurate + # for subscribers that reconnect later. + on_connect: + - mqtt.publish: + topic: "${mqtt_local_status_topic}" + payload: !lambda |- + return id(relay_1).state ? "On" : "Off"; + retain: true + on_message: - # Main Lights control (Relay 1) + # Main Lights control (Relay 1) — state guard prevents ping-pong - topic: "${mqtt_local_command_topic}" payload: "On" then: - - switch.turn_on: relay_1 + - if: + condition: + lambda: "return !id(relay_1).state;" + then: + - switch.turn_on: relay_1 - topic: "${mqtt_local_command_topic}" payload: "Off" then: - - switch.turn_off: relay_1 + - if: + condition: + lambda: "return id(relay_1).state;" + then: + - switch.turn_off: relay_1 #:########################################################################################:# # STATUS LED