feat(playlists): expose scene playlists as Home Assistant entities
One device per scene playlist (model "Scene Playlist"), each with: - a switch (start/stop; the server cycles one playlist at a time, so starting one stops any other) - a "Current Scene" sensor that resolves the active preset name from scene_presets while this playlist is cycling - an "Items" diagnostic sensor (configured scene count; no state_class) The coordinator reads scene_playlists plus the flat playlist_state from the /api/v1/snapshot payload and gains start_playlist()/stop_playlist(); __init__ registers and prunes per-playlist devices and reloads on playlist-id changes; the event listener also refreshes on the playlist_state_changed WS event. Shared device/lookup/running-state plumbing lives in a new LedGrabPlaylistEntity base (entity.py) used by both the switch and the sensors. Adds en/ru translation keys. Note: this also lands the in-progress coordinator migration from the per-request fan-out to the single /api/v1/snapshot poll that was already present in the working tree. Requires the led-grab server /api/v1/snapshot to emit scene_playlists + playlist_state (companion server change, tracked separately).
This commit is contained in:
@@ -45,6 +45,9 @@
|
||||
},
|
||||
"sync_clock_running": {
|
||||
"name": "Active"
|
||||
},
|
||||
"playlist_active": {
|
||||
"name": "Active"
|
||||
}
|
||||
},
|
||||
"sensor": {
|
||||
@@ -66,6 +69,12 @@
|
||||
"sync_clock_elapsed": {
|
||||
"name": "Elapsed Time"
|
||||
},
|
||||
"playlist_current_scene": {
|
||||
"name": "Current Scene"
|
||||
},
|
||||
"playlist_items": {
|
||||
"name": "Scenes"
|
||||
},
|
||||
"server_cpu_percent": {
|
||||
"name": "CPU Usage"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user