Make daily traffic scale to dozens of screens: incremental sync, ping keepalive, one action per message (0.2.39)

App 0.2.39 / firmware 0.2.33, items 1, 2, 4, 5 and 6 of the 30-screen scaling check.

- Only the tiles (and top bar) of changed entities are rebuilt; the screen list is
  cached until the registry or a screen diagnostic changes; the SSE stream follows.
- Sensor history comes from one recorder/statistics_during_period call per window in
  a background task, with the REST history as fallback per sensor without statistics.
- Firmware 0.2.33 answers a keepalive ping with its layout revision; a mismatch or a
  restart asks for the layout again, everything is repeated hourly as a safety net.
- The screen_message API action takes one whole message; the text inbox chunks stay
  as fallback for older firmware. A repeated unchanged layout keeps the inbox state.
- Quiet diagnostics: Opgestart (uptime as timestamp) replaces Uptime, heap every
  5 min, setting numbers publish only on change.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-14 21:06:45 +02:00
parent 3f6889f750
commit f60eed3ff6
18 changed files with 990 additions and 147 deletions
+10
View File
@@ -232,6 +232,16 @@ schermvoorkeuren blijven op het apparaat opgeslagen. Updates vervangen deze
gebruikersgegevens niet. Maak wel normale Home Assistant-back-ups en bewaar je
apparaatprofielen; een app verwijderen of flashgeheugen wissen is geen update.
**Zuinig, ook met veel schermen (0.2.39 / firmware 0.2.33).** De app stuurt een
scherm alleen de tegel die veranderde, als één actie
(`esphome.<apparaatnaam>_screen_message`) in plaats van blokjes in een tekstveld.
Elke twee minuten volgt een kleine ping met de revisie van de indeling; meldt het
scherm dat die niet klopt (na een herstart bijvoorbeeld), dan komt alles opnieuw.
Grafieken van sensortegels komen uit de statistieken van Home Assistant, in één
vraag voor alle schermen. Oudere firmware blijft werken via het tekstveld en de
volledige herhaling per twee minuten. De diagnostische sensor `Uptime` is
vervangen door het tijdstempel `Opgestart`.
Zie [releasegeschiedenis](screen_manager/CHANGELOG.md) en
[releases en protocolcompatibiliteit](docs/RELEASING.md).