From 3968d608bc8b236730643fd53c900f420f7f8331 Mon Sep 17 00:00:00 2001 From: Brandon Harvey <8107750+bharvey88@users.noreply.github.com> Date: Wed, 26 Aug 2026 18:56:04 -0500 Subject: [PATCH] Add an All Lights entity for the whole chain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Home Assistant exposed only the five zone partitions, so there was no way to control all 37 LEDs at once. Adds a sixth partition spanning 0-36 alongside the zones, leaving the parent chain internal. all_lights_off and both on_shutdown blocks clear it so the entity state matches the LEDs, and each play_song_* turns it off first so a running All Lights effect does not fight the zone effects writing the same buffer. Version 26.8.26.2 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- Integrations/ESPHome/Core.yaml | 26 +++++++++++++++++++++++++- Integrations/ESPHome/H-3.yaml | 1 + Integrations/ESPHome/H-3D.yaml | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/Integrations/ESPHome/Core.yaml b/Integrations/ESPHome/Core.yaml index 412e5e2..4f6e167 100644 --- a/Integrations/ESPHome/Core.yaml +++ b/Integrations/ESPHome/Core.yaml @@ -1,5 +1,5 @@ substitutions: - version: "26.8.26.1" + version: "26.8.26.2" run_duration_default: "90s" run_duration_gpio: "90s" @@ -763,6 +763,15 @@ light: # Segment views; effects run per segment + # All 37 LEDs + - platform: partition + id: all_lights + name: "All Lights" + default_transition_length: 0s + segments: + - { id: led_chain, from: 0, to: 36 } + effects: *led_effects + # LEDs 0-23 - platform: partition id: body_light @@ -811,6 +820,7 @@ light: script: - id: all_lights_off then: + - light.turn_off: all_lights - light.turn_off: body_light - light.turn_off: mouth_light - light.turn_off: eyes_light @@ -968,6 +978,8 @@ script: then: # Must stop first because Rtttl::play() returns early while a song is running - rtttl.stop: + # Zone effects below would fight an All Lights effect writing the same buffer + - light.turn_off: all_lights - light.turn_on: brightness: 80% id: body_light @@ -1003,6 +1015,8 @@ script: then: # Must stop first because Rtttl::play() returns early while a song is running - rtttl.stop: + # Zone effects below would fight an All Lights effect writing the same buffer + - light.turn_off: all_lights - light.turn_on: brightness: 80% id: body_light @@ -1038,6 +1052,8 @@ script: then: # Must stop first because Rtttl::play() returns early while a song is running - rtttl.stop: + # Zone effects below would fight an All Lights effect writing the same buffer + - light.turn_off: all_lights - light.turn_on: brightness: 80% id: body_light @@ -1073,6 +1089,8 @@ script: then: # Must stop first because Rtttl::play() returns early while a song is running - rtttl.stop: + # Zone effects below would fight an All Lights effect writing the same buffer + - light.turn_off: all_lights - light.turn_on: brightness: 80% id: body_light @@ -1108,6 +1126,8 @@ script: then: # Must stop first because Rtttl::play() returns early while a song is running - rtttl.stop: + # Zone effects below would fight an All Lights effect writing the same buffer + - light.turn_off: all_lights - light.turn_on: brightness: 80% id: body_light @@ -1143,6 +1163,8 @@ script: then: # Must stop first because Rtttl::play() returns early while a song is running - rtttl.stop: + # Zone effects below would fight an All Lights effect writing the same buffer + - light.turn_off: all_lights - light.turn_on: brightness: 80% id: body_light @@ -1178,6 +1200,8 @@ script: then: # Must stop first because Rtttl::play() returns early while a song is running - rtttl.stop: + # Zone effects below would fight an All Lights effect writing the same buffer + - light.turn_off: all_lights - light.turn_on: brightness: 80% id: body_light diff --git a/Integrations/ESPHome/H-3.yaml b/Integrations/ESPHome/H-3.yaml index 8520cd9..46ed1a6 100644 --- a/Integrations/ESPHome/H-3.yaml +++ b/Integrations/ESPHome/H-3.yaml @@ -69,6 +69,7 @@ esphome: else: - esp32_ble_tracker.stop_scan: on_shutdown: + - light.turn_off: all_lights - light.turn_off: body_light - light.turn_off: mouth_light - light.turn_off: eyes_light diff --git a/Integrations/ESPHome/H-3D.yaml b/Integrations/ESPHome/H-3D.yaml index 8c72abf..a3f11d9 100644 --- a/Integrations/ESPHome/H-3D.yaml +++ b/Integrations/ESPHome/H-3D.yaml @@ -28,6 +28,7 @@ esphome: then: - script.execute: testScript on_shutdown: + - light.turn_off: all_lights - light.turn_off: body_light - light.turn_off: mouth_light - light.turn_off: eyes_light