Public Access
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:
1 parent
839e86e8f1
commit
a6b946e17c
33 files changed
+1918
-1050
No files matched your search
+35
-2
@@ -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.
|
||||
+10
-4
@@ -3,22 +3,28 @@
|
||||
[← Back to the README](../README.md)
|
||||
|
||||
The dynamic pages on the display, drawn by the ESP32 itself (`python
|
||||
tools/make_page_screenshots.py` makes these pictures again). The Clock page is built in;
|
||||
tools/make_page_screenshots.py` makes these pictures again). The Clock page comes with the firmware (it can be changed, Reset brings back the original);
|
||||
the others are the example pages in [examples/home-pages.json](../examples/home-pages.json)
|
||||
(import them in the web UI, System tab; they use this home's Home Assistant entities).
|
||||
with their icons (import them in the web UI, System tab). They use this home's Home
|
||||
Assistant entities: change them to yours in the page editor (`climate.home`,
|
||||
`sensor.envoy_000000000000_...` and `sensor.plex_server` are placeholders).
|
||||
`python tools/export_examples.py` writes the file again from the pages on the display and
|
||||
replaces private parts of entity ids by these placeholders.
|
||||
|
||||
| Page | |
|
||||
|---|---|
|
||||
| **Clock** (built in), day and from 17:00 |   |
|
||||
| **Clock** (from the firmware), day and from 17:00 |   |
|
||||
| **Weer**: clock, weather icon by state, humidity, temperature |  |
|
||||
| **Verwachting**: today (icon, temperature now, max/min) and the next 2 days (weekday, small icon, max/min); needs the [forecast sensor](home-assistant.md#weather-forecast) |  |
|
||||
| **Dag en nacht**: sun from 07:00, moon and stars from 19:00, date |   |
|
||||
| **Energie**: net power now, solar today, clock |  |
|
||||
| **3D printer**: progress, time left, status message (scrolls), nozzle temperature |  |
|
||||
| **3D printer finished** (not in the examples): shown for 10 minutes after a print completes (rule), with the status message |  |
|
||||
| **3D printer finished**: shown for 10 minutes after a print completes (rule), with the status message |  |
|
||||
| **Binnen**: room and outside temperature, CO2, air quality |  |
|
||||
| **Verbruik**: water and energy used today, solar today |  |
|
||||
| **Grote klok**: big clock, inverted from 22:00 |   |
|
||||
| **Datum**: weekday and date |  |
|
||||
| **Aftellen**: countdown to Christmas |  |
|
||||
| **Stopwatch** |  |
|
||||
| **Bad**: how full the bath is (a progress bar from a Home Assistant number) and the clock; a rule shows it while the bath fills |  |
|
||||
| **Plex**: how many watch, play/pause, title (scrolls) and progress of the Plex user ([Tautulli](home-assistant.md#plex-and-tautulli)) |  |
|
||||
+3
-3
@@ -23,7 +23,7 @@ Bitmaps that pages or rules use are in their own subsection.
|
||||
## Pages
|
||||
|
||||
Dynamic pages: a background per time of day, a bitmap or an [icon](#icons) (e.g. Pikachu
|
||||
from 00:00, yawning Pikachu from 17:00) with up to 8 elements on top. The preview is drawn by the ESP32, so it
|
||||
from 00:00, yawning Pikachu from 17:00) with up to 16 elements on top. The preview is drawn by the ESP32, so it
|
||||
is exactly what the display shows; drag the elements on it, or select one and use the
|
||||
arrow keys. The Clock page (Pikachu, the default) is a normal page that can be changed;
|
||||
its Reset button brings back the original. See the [pictures of the pages](pages.md).
|
||||
@@ -31,8 +31,8 @@ its Reset button brings back the original. See the [pictures of the pages](pages
|
||||
| Element | Options |
|
||||
|---------|---------|
|
||||
| Clock | `08:05`, `8:05`, optionally with seconds |
|
||||
| Date | 7 formats, Dutch or English (`do 15 okt`, `15 oktober`, `donderdag`, ...) |
|
||||
| Home Assistant value | An entity or attribute, text before and after. Shown as a number (multiplier, decimals, auto unit `1257 W` → `1.3 kW`, without minus sign), a duration (`2h 21m`, `2:21:00`, `2:21`, `2 uur`), a time from an HA timestamp (`23:07`, `do 23:07`, `15-10 23:07`, `over 34 min`) or with own texts per state (`printing=Bezig, standby=Klaar`) |
|
||||
| Date | 7 formats, Dutch or English (`do 15 okt`, `15 oktober`, `donderdag`, ...), today or up to 7 days ahead (the weekdays of a forecast) |
|
||||
| Home Assistant value | An entity or attribute (also a path into lists, e.g. `forecast.1.temperature`), text before and after. Shown as a number (multiplier, decimals, auto unit `1257 W` → `1.3 kW`, without minus sign), a duration (`2h 21m`, `2:21:00`, `2:21`, `2 uur`), a time from an HA timestamp (`23:07`, `do 23:07`, `15-10 23:07`, `over 34 min`) or with own texts per state (`printing=Bezig, standby=Klaar`) |
|
||||
| Text | Up to 32 characters |
|
||||
| Countdown | To a date and time: smart (`12 dagen`, `5 uur`, `34 min`, `0:45`), days, `12d 04:05`, with seconds; a text when it has passed |
|
||||
| Stopwatch | `4:05`, `0:04`, `0:04:05`; started in the [Stopwatch](#stopwatch) tab or Home Assistant |
|
||||
|
||||
Reference in new issue
Block a user