From 8408d37763fcb0670439b881074501f3eaaa71b9 Mon Sep 17 00:00:00 2001
From: Aiden
Date: Wed, 2 Sep 2026 19:59:22 +0800
Subject: [PATCH] Add button debounce
---
athom-2ch-relay-board.yaml | 10 ++++++++--
athom-4ch-relay-board.yaml | 16 ++++++++++++++--
athom-8ch-relay-board.yaml | 28 ++++++++++++++++++++++++++--
athom-dual-smart-plug-v3.yaml | 8 ++++++--
athom-energy-monitor-x2.yaml | 7 +++++--
athom-energy-monitor-x6.yaml | 7 +++++--
athom-garage-door.yaml | 8 +++++---
athom-ld2450-sensor.yaml | 6 ++++--
athom-mini-relay-v2.yaml | 9 +++++++--
athom-presence-sensor-v3.yaml | 7 +++++--
athom-rf-ir-remote.yaml | 7 +++++--
athom-scd40-sensor.yaml | 9 ++++++---
athom-sht40-sensor.yaml | 9 ++++++---
athom-smart-plug-v5.yaml | 6 ++++--
athom-smart-plug.yaml | 8 +++++---
athom-wall-outlet-v3.yaml | 29 +++++++++++++++++++++++++----
16 files changed, 136 insertions(+), 38 deletions(-)
diff --git a/athom-2ch-relay-board.yaml b/athom-2ch-relay-board.yaml
index b795215..dc86125 100644
--- a/athom-2ch-relay-board.yaml
+++ b/athom-2ch-relay-board.yaml
@@ -4,7 +4,7 @@ substitutions:
room: ""
device_description: "athom esp32 2ch relay board"
project_name: "Athom Technology.ESP32 2CH Relay Board"
- project_version: "v2.0.7"
+ project_version: "v2.0.8"
update_interval: 60s
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
@@ -31,7 +31,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -156,6 +156,9 @@ binary_sensor:
inverted: true
name: "Power Button1"
disabled_by_default: true
+ id: power_button1
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -174,6 +177,9 @@ binary_sensor:
inverted: true
name: "Power Button2"
disabled_by_default: true
+ id: power_button2
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
diff --git a/athom-4ch-relay-board.yaml b/athom-4ch-relay-board.yaml
index 14892f5..e6f8959 100644
--- a/athom-4ch-relay-board.yaml
+++ b/athom-4ch-relay-board.yaml
@@ -4,7 +4,7 @@ substitutions:
room: ""
device_description: "athom esp32 4ch relay board"
project_name: "Athom Technology.ESP32 4CH Relay Board"
- project_version: "v2.0.7"
+ project_version: "v2.0.8"
update_interval: 60s
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
@@ -33,7 +33,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -157,6 +157,9 @@ binary_sensor:
inverted: true
name: "Power Button1"
disabled_by_default: true
+ id: power_button1
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -175,6 +178,9 @@ binary_sensor:
inverted: true
name: "Power Button2"
disabled_by_default: true
+ id: power_button2
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -193,6 +199,9 @@ binary_sensor:
inverted: true
name: "Power Button3"
disabled_by_default: true
+ id: power_button3
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -211,6 +220,9 @@ binary_sensor:
inverted: true
name: "Power Button4"
disabled_by_default: true
+ id: power_button4
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
diff --git a/athom-8ch-relay-board.yaml b/athom-8ch-relay-board.yaml
index 4f50ee1..cee3068 100644
--- a/athom-8ch-relay-board.yaml
+++ b/athom-8ch-relay-board.yaml
@@ -4,7 +4,7 @@ substitutions:
room: ""
device_description: "athom esp32 8ch relay board"
project_name: "Athom Technology.ESP32 8CH Relay Board"
- project_version: "v2.0.7"
+ project_version: "v2.0.8"
update_interval: 60s
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
@@ -37,7 +37,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -161,6 +161,9 @@ binary_sensor:
inverted: true
name: "Power Button1"
disabled_by_default: true
+ id: power_button1
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -179,6 +182,9 @@ binary_sensor:
inverted: true
name: "Power Button2"
disabled_by_default: true
+ id: power_button2
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -197,6 +203,9 @@ binary_sensor:
inverted: true
name: "Power Button3"
disabled_by_default: true
+ id: power_button3
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -215,6 +224,9 @@ binary_sensor:
inverted: true
name: "Power Button4"
disabled_by_default: true
+ id: power_button4
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -233,6 +245,9 @@ binary_sensor:
inverted: true
name: "Power Button5"
disabled_by_default: true
+ id: power_button5
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -251,6 +266,9 @@ binary_sensor:
inverted: true
name: "Power Button6"
disabled_by_default: true
+ id: power_button6
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -268,7 +286,10 @@ binary_sensor:
input: true
inverted: true
name: "Power Button7"
+ id: power_button7
disabled_by_default: true
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -287,6 +308,9 @@ binary_sensor:
inverted: true
name: "Power Button8"
disabled_by_default: true
+ id: power_button8
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
diff --git a/athom-dual-smart-plug-v3.yaml b/athom-dual-smart-plug-v3.yaml
index 081abb8..51e9d5f 100644
--- a/athom-dual-smart-plug-v3.yaml
+++ b/athom-dual-smart-plug-v3.yaml
@@ -10,7 +10,7 @@ substitutions:
# Project Name
project_name: China Athom Technology.Athom Dual Plug V3
# Projection version denotes the release version of the yaml file, allowing checking of deployed vs latest version
- project_version: v3.0.5
+ project_version: v3.0.6
# Restore the relay (GPO switch) upon reboot to state:
relay1_restore_mode: RESTORE_DEFAULT_ON
relay2_restore_mode: RESTORE_DEFAULT_ON
@@ -45,7 +45,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -239,6 +239,8 @@ binary_sensor:
name: "Power Button1"
id: power_button1
disabled_by_default: true
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -268,6 +270,8 @@ binary_sensor:
name: "Power Button2"
id: power_button2
disabled_by_default: true
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
diff --git a/athom-energy-monitor-x2.yaml b/athom-energy-monitor-x2.yaml
index c14a989..5677522 100644
--- a/athom-energy-monitor-x2.yaml
+++ b/athom-energy-monitor-x2.yaml
@@ -5,7 +5,7 @@ substitutions:
room: ""
device_description: "athom bl0906 energy meter (2 channels)"
project_name: "China Athom Technology.Athom Energy Meter(2 Channels)"
- project_version: "3.0.4"
+ project_version: "3.0.5"
update_interval: 5s
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
@@ -43,7 +43,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -202,6 +202,9 @@ binary_sensor:
inverted: true
name: "Power Button"
disabled_by_default: true
+ id: power_button
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at least 4s
diff --git a/athom-energy-monitor-x6.yaml b/athom-energy-monitor-x6.yaml
index aa08f0b..8600769 100644
--- a/athom-energy-monitor-x6.yaml
+++ b/athom-energy-monitor-x6.yaml
@@ -5,7 +5,7 @@ substitutions:
room: ""
device_description: "athom bl0906 energy meter (6 channels)"
project_name: "China Athom Technology.Athom Energy Meter(6 Channels)"
- project_version: "3.0.5"
+ project_version: "3.0.6"
update_interval: 5s
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
@@ -55,7 +55,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -258,6 +258,9 @@ binary_sensor:
inverted: true
name: "Power Button"
disabled_by_default: true
+ id: power_button
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at least 4s
diff --git a/athom-garage-door.yaml b/athom-garage-door.yaml
index 6cd1d58..ec7268f 100644
--- a/athom-garage-door.yaml
+++ b/athom-garage-door.yaml
@@ -10,7 +10,7 @@ substitutions:
# Project Name
project_name: "China Athom Technology.Garage Door Opener"
# Project version denotes the release version of the yaml file, allowing checking of deployed vs latest version
- project_version: "v3.1.4"
+ project_version: "v3.1.5"
# Status inverted
status_inverted: "true"
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
@@ -37,7 +37,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2025.8.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -187,6 +187,8 @@ binary_sensor:
inverted: true
name: "Button"
disabled_by_default: true
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -271,7 +273,7 @@ text_sensor:
id: device_last_restart
icon: mdi:clock
entity_category: diagnostic
- device_class: timestamp
+ # device_class: timestamp
time:
- platform: sntp
diff --git a/athom-ld2450-sensor.yaml b/athom-ld2450-sensor.yaml
index f6e43e8..fcb0865 100644
--- a/athom-ld2450-sensor.yaml
+++ b/athom-ld2450-sensor.yaml
@@ -4,7 +4,7 @@ substitutions:
room: ""
device_description: "athom esp32c3 ld2450 motion target tracking sensor"
project_name: "China Athom Technology.PS02C3MZ LD2450"
- project_version: "v2.0.6"
+ project_version: "v2.0.7"
update_interval: 60s
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ""
@@ -29,7 +29,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2025.7.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -327,6 +327,8 @@ binary_sensor:
inverted: true
name: "Button"
disabled_by_default: true
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at least 4s
diff --git a/athom-mini-relay-v2.yaml b/athom-mini-relay-v2.yaml
index 35102f9..40838e4 100644
--- a/athom-mini-relay-v2.yaml
+++ b/athom-mini-relay-v2.yaml
@@ -10,7 +10,7 @@ substitutions:
# Project Name
project_name: "China Athom Technology.Mini Relay V2"
# Projection version denotes the release version of the yaml file, allowing checking of deployed vs latest version
- project_version: "v3.1.2"
+ project_version: "v3.1.3"
# Restore the relay (GPO switch) upon reboot to state:
light_restore_mode: RESTORE_DEFAULT_OFF
# Set the update interval for sensors
@@ -42,7 +42,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2025.8.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -177,6 +177,9 @@ binary_sensor:
inverted: true
name: "Power Button"
disabled_by_default: true
+ id: power_button
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
@@ -197,6 +200,8 @@ binary_sensor:
mode: INPUT_PULLUP
on_state:
- light.toggle: mini_relay
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 0.5s
diff --git a/athom-presence-sensor-v3.yaml b/athom-presence-sensor-v3.yaml
index 8f19da4..adb3366 100644
--- a/athom-presence-sensor-v3.yaml
+++ b/athom-presence-sensor-v3.yaml
@@ -10,7 +10,7 @@ substitutions:
# Project Name
project_name: "Athom Technology.Athom PS01C3 Presence Sensor"
# Projection version denotes the release version of the yaml file, allowing checking of deployed vs latest version
- project_version: "v4.0.2"
+ project_version: "v4.0.3"
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
# Set timezone of the smart plug. Useful if the plug is in a location different to the HA server. Can be entered in unix Country/Area format (i.e. "Australia/Sydney")
@@ -34,7 +34,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -180,6 +180,9 @@ binary_sensor:
inverted: true
name: "Button"
disabled_by_default: true
+ id: button
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at least 4s
diff --git a/athom-rf-ir-remote.yaml b/athom-rf-ir-remote.yaml
index 0060abc..9de8a29 100644
--- a/athom-rf-ir-remote.yaml
+++ b/athom-rf-ir-remote.yaml
@@ -10,7 +10,7 @@ substitutions:
# Project Name
project_name: "China Athom Technology.Athom RF IR Remote"
# Projection version denotes the release version of the yaml file, allowing checking of deployed vs latest version
- project_version: "v3.0.7"
+ project_version: "v3.0.8"
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
# Set timezone of the smart plug. Useful if the plug is in a location different to the HA server. Can be entered in unix Country/Area format (i.e. "Australia/Sydney")
@@ -46,7 +46,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.5.1
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -305,6 +305,9 @@ binary_sensor:
inverted: true
name: "Button"
disabled_by_default: true
+ id: power_button
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at least 4s
diff --git a/athom-scd40-sensor.yaml b/athom-scd40-sensor.yaml
index 6a912eb..7ba343f 100644
--- a/athom-scd40-sensor.yaml
+++ b/athom-scd40-sensor.yaml
@@ -5,7 +5,7 @@ substitutions:
room: ""
device_description: "athom scd40 CO₂ sensor"
project_name: "China Athom Technology.CO₂ Sensor"
- project_version: "1.0.10"
+ project_version: "1.0.11"
update_interval: 5s
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
@@ -37,7 +37,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -214,6 +214,9 @@ binary_sensor:
inverted: true
name: "Power Button"
disabled_by_default: true
+ id: power_button
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at least 4s
@@ -276,7 +279,7 @@ text_sensor:
id: device_last_restart
icon: mdi:clock
entity_category: diagnostic
- device_class: timestamp
+ # device_class: timestamp
- platform: template
name: "Air Quality Index"
diff --git a/athom-sht40-sensor.yaml b/athom-sht40-sensor.yaml
index 5b0d3cd..b42106d 100644
--- a/athom-sht40-sensor.yaml
+++ b/athom-sht40-sensor.yaml
@@ -5,7 +5,7 @@ substitutions:
room: ""
device_description: "athom sht40 temperature and humidity sensor"
project_name: "China Athom Technology.Temperature Humidity Sensor"
- project_version: "1.0.9"
+ project_version: "1.0.10"
update_interval: 5s
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
dns_domain: ".local"
@@ -39,7 +39,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -253,6 +253,9 @@ binary_sensor:
inverted: true
name: "Power Button"
disabled_by_default: true
+ id: power_button
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at least 4s
@@ -303,7 +306,7 @@ text_sensor:
id: device_last_restart
icon: mdi:clock
entity_category: diagnostic
- device_class: timestamp
+ # device_class: timestamp
time:
- platform: sntp
diff --git a/athom-smart-plug-v5.yaml b/athom-smart-plug-v5.yaml
index 159717d..5d5680a 100644
--- a/athom-smart-plug-v5.yaml
+++ b/athom-smart-plug-v5.yaml
@@ -10,7 +10,7 @@ substitutions:
# Project Name
project_name: "China Athom Technology.Athom Plug V5"
# Projection version denotes the release version of the yaml file, allowing checking of deployed vs latest version
- project_version: "v5.0.4"
+ project_version: "v5.0.5"
# Restore the relay (GPO switch) upon reboot to state:
relay_restore_mode: RESTORE_DEFAULT_ON
# Set the update interval for sensors
@@ -44,7 +44,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -204,6 +204,8 @@ binary_sensor:
name: "Power Button"
id: power_button
disabled_by_default: true
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
diff --git a/athom-smart-plug.yaml b/athom-smart-plug.yaml
index 2282083..80853f4 100644
--- a/athom-smart-plug.yaml
+++ b/athom-smart-plug.yaml
@@ -10,7 +10,7 @@ substitutions:
# Project Name
project_name: "China Athom Technology.Athom Plug V3"
# Projection version denotes the release version of the yaml file, allowing checking of deployed vs latest version
- project_version: "v2.0.7"
+ project_version: "v2.0.8"
# Restore the relay (GPO switch) upon reboot to state:
relay_restore_mode: RESTORE_DEFAULT_ON
# Set the update interval for sensors
@@ -30,7 +30,7 @@ substitutions:
# Enables faster network connections, with last connected SSID being connected to and no full scan for SSID being undertaken
wifi_fast_connect: "false"
# Define logging level: NONE, ERROR, WARN, INFO, DEBUG (Default), VERBOSE, VERY_VERBOSE
- log_level: "INFO"
+ log_level: "DEBUG"
# Hide the ENERGY sensor that shows kWh consumed, but with no time period associated with it. Resets when device restarted and reflashed.
hide_energy_sensor: "true"
# Enable or disable the use of IPv6 networking on the device
@@ -46,7 +46,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -229,6 +229,8 @@ binary_sensor:
name: "Power Button"
id: power_button
disabled_by_default: true
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
diff --git a/athom-wall-outlet-v3.yaml b/athom-wall-outlet-v3.yaml
index 2d74af7..7abcc0e 100644
--- a/athom-wall-outlet-v3.yaml
+++ b/athom-wall-outlet-v3.yaml
@@ -10,7 +10,7 @@ substitutions:
# Project Name
project_name: "China Athom Technology.Athom Wall Outlet V3"
# Projection version denotes the release version of the yaml file, allowing checking of deployed vs latest version
- project_version: "v3.0.3"
+ project_version: "v3.0.4"
# Restore the relay (GPO switch) upon reboot to state:
relay_restore_mode: RESTORE_DEFAULT_OFF
# Set the update interval for sensors
@@ -46,7 +46,7 @@ esphome:
comment: "${device_description}"
area: "${room}"
name_add_mac_suffix: true
- min_version: 2026.6.0
+ min_version: 2026.8.0
project:
name: "${project_name}"
version: "${project_version}"
@@ -226,16 +226,28 @@ binary_sensor:
name: "Power Button"
id: power_button
disabled_by_default: true
+ filters:
+ - delayed_on_off: 20ms
on_multi_click:
- timing:
- ON for at most 1s
- OFF for at least 0.2s
then:
- - switch.toggle: relay
+ # Ignore short press when child lock is on, to stop kids toggling the socket
+ - if:
+ condition:
+ switch.is_off: child_lock
+ then:
+ - switch.toggle: relay
- timing:
- ON for at least 4s
then:
- - button.press: Reset
+ # Ignore long press when child lock is on, to prevent accidental factory reset
+ - if:
+ condition:
+ switch.is_off: child_lock
+ then:
+ - button.press: Reset
sensor:
- platform: uptime
@@ -372,6 +384,15 @@ switch:
on_turn_off:
- light.turn_off: red_led
+ # Child lock: when on, ignore physical button short/long press, but keep remote (HA/web) control working
+ - platform: template
+ name: "Child Lock"
+ id: child_lock
+ icon: mdi:lock
+ optimistic: true
+ restore_mode: RESTORE_DEFAULT_OFF # Keep last state after power loss/reboot, default off on first boot
+ entity_category: config
+
light:
- platform: status_led
name: "Status LED"