Files
Flipdot-display/docs/home-assistant.md
T

49 lines
2.5 KiB
Markdown
Raw Normal View History

# Home Assistant
[← Back to the README](../README.md)
The ESP32 connects to Home Assistant in two ways:
- **MQTT** (with discovery): the display's own switches, dropdowns, sensors and buttons.
Broker, user and password are in the web UI, Home Assistant tab (an empty broker uses
`secrets.h`). Changing them restarts the ESP32.
- **REST API**: values of any entity for the dynamic pages and the trigger rules. Set the
URL (empty: `http://<broker>:8123`, plain http only, use the IP address) and a
long-lived access token (Home Assistant, your profile, Security tab) in the same tab.
## Entities
- `FlipDot Display Power` switch: off clears the display and cuts power through the relay.
- `FlipDot Display Mode` dropdown: what is shown during the day, a dynamic page ("Clock"
first) or one of the bitmaps (the same choice as in the web UI).
- `FlipDot Display Off image` dropdown: what is left on the dots when the display
switches off (at night or with the Power switch): blank or one of the bitmaps.
- `FlipDot Display IP` sensor: the ESP32's IP address.
- `FlipDot Display Stopwatch` switch and `FlipDot Display Stopwatch reset` button: the
stopwatch of the dynamic pages.
- `FlipDot Display Shown page` sensor: what the display shows now (schedule, rule or
chosen page). `FlipDot Display Back to schedule` button: ends a page chosen by hand.
- `FlipDot Display Firmware` sensor: version and health, e.g. `2.7.2, ok, 0 crashes, recovery ok`.
- `FlipDot Display Recovery` button: restarts into the [recovery app](recovery.md) for 10
minutes.
The unique ids of these entities never change, so automations and dashboards keep working
after firmware updates.
## Values on dynamic pages
A Home Assistant value element on a [page](pages.md) shows an entity's state or one of
its attributes, as a number (multiplier, decimals, auto unit, without minus sign), a
duration, a time from a timestamp, or with own texts per state (see the
[web UI](web-ui.md#pages)).
**Home Assistant values** on the shown page are read every minute (one entity per loop,
at most about 3 s). An unknown or unreachable value shows `--`. The display only changes
when the shown text changes, so round values with the decimals setting.
## Rules
The [schedule](web-ui.md#schedule) can bring a page to the front from a Home Assistant
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.