Weather forecast page, 16 elements per page, attribute paths, examples from the display

- Home Assistant attributes can be paths into lists (forecast.1.condition).
- Date elements can show a day ahead (day offset 0-7).
- Pages hold 16 elements (page format 6; the old formats are frozen at 8).
  Pages are reset in place (clearPage), not through a 4 KB temporary.
- Verwachting page: today (icon, temperature, max/min) and the next 2
  days with 7 x 7 icons (weer7 <condition>), from a template sensor
  (docs/home-assistant.md).
- examples/home-pages.json is exported from the display with all pages
  and their icons, private entity id parts replaced by placeholders
  (tools/export_examples.py replaces tools/make_example_pages.py).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-10-16 22:36:29 +02:00
1 parent 839e86e8f1
commit a6b946e17c
33 files changed
+1918 -1050

No files matched your search

+35 -2
View File
@@ -50,12 +50,45 @@ state, e.g. the 3D printer page while `sensor.mainsailos_current_print_state` is
`printing`. Each rule is read at its own interval; when Home Assistant can't be reached it
is read once a minute at most, so the display keeps running.
## Weather forecast
Weather entities have no forecast attribute anymore (since Home Assistant 2024.3); the
forecast comes from the `weather.get_forecasts` action. The **Verwachting** page reads it
from a template sensor that keeps the next days as an attribute. Add to
`configuration.yaml` (and restart Home Assistant, or reload the template entities):
```yaml
template:
- trigger:
- trigger: time_pattern
minutes: /30
- trigger: homeassistant
event: start
action:
- action: weather.get_forecasts
data: { type: daily }
target: { entity_id: weather.knmi_home }
response_variable: f
sensor:
- name: Weer verwachting
unique_id: weer_verwachting
state: "{{ f['weather.knmi_home'].forecast[0].condition }}"
attributes:
forecast: "{{ f['weather.knmi_home'].forecast[:4] }}"
```
The page then reads `sensor.weer_verwachting` with attribute paths: `forecast.0` is today,
`forecast.1` tomorrow, `forecast.2` the day after, e.g. `forecast.1.condition` (chooses the icon `weer7 <condition>`,
7 x 7 dots), `forecast.1.temperature` (max) and `forecast.1.templow` (min). The weekdays
are Date elements with a day offset. Use another weather entity by replacing
`weather.knmi_home` in the YAML (and on the page, for today's icon and temperature).
## Plex and Tautulli
The **Plex** page (in [examples/home-pages.json](../examples/home-pages.json)) uses Home
Assistant's Plex and Tautulli integrations, no extra firmware:
- `sensor.mangavalkserver` (Plex): how many are watching.
- `sensor.plex_server` (Plex, named after your server): how many are watching.
- `sensor.{plex_user}_state` (Tautulli, per user): `playing`, `paused`, ... chooses the icon
(icons `plex playing`, `plex paused`, `plex buffering`).
- `sensor.{plex_user}_full_title` and `sensor.{plex_user}_progress` (Tautulli, per user):
@@ -64,4 +97,4 @@ Assistant's Plex and Tautulli integrations, no extra firmware:
`{plex_user}` is the Plex user set in the web UI (Home Assistant tab), written the way Home
Assistant puts it in entity ids (`MangaValk` -> `mangavalk`). A rule (Schedule tab) adds
the page to the rotation while `sensor.mangavalkserver` is above 0.
the page to the rotation while `sensor.plex_server` is above 0.