From 4c6286e7947dd518784f677362b08e8709d873f7 Mon Sep 17 00:00:00 2001 From: MangaValk Date: Mon, 19 Oct 2026 00:09:38 +0200 Subject: [PATCH] Include Still Alive in the shuffled page rotation The rotation already waits while the show plays, and the show returns to the page it came from when it ends. Co-Authored-By: Claude Opus 5.5 --- esphome/el512-panel.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/esphome/el512-panel.yaml b/esphome/el512-panel.yaml index 1230ead..94dd5c9 100644 --- a/esphome/el512-panel.yaml +++ b/esphome/el512-panel.yaml @@ -450,8 +450,8 @@ button: id(panel).play_still_alive(); id(panel).update(); -# Rotate pages in a random order, reshuffled every hour; Still Alive is left out -# (start it from HA) and Now playing is skipped when idle. +# Rotate pages in a random order, reshuffled every hour (Still Alive included: +# rotation waits while it plays); Now playing is skipped when idle. interval: - interval: 1s then: @@ -469,7 +469,8 @@ interval: order = {id(page_clock), id(page_forecast), id(page_agenda), id(page_dashboard), id(page_media), id(page_plex), id(page_solar), id(page_cyber_hud), id(page_cyber_breach), id(page_cyber_scan), id(page_cyber_split), id(page_ks_explosion), id(page_ks_guild), id(page_ks_card), - id(page_ks_battle), id(page_sg_meter), id(page_sg_dmail), id(page_sg_lab), id(page_sg_world)}; + id(page_ks_battle), id(page_sg_meter), id(page_sg_dmail), id(page_sg_lab), id(page_sg_world), + id(page_still_alive)}; for (size_t i = order.size() - 1; i > 0; i--) std::swap(order[i], order[random_uint32() % (i + 1)]); pos = order.size() - 1; // the next step starts at the front