- README is the overview; web UI, pages, Home Assistant, how it works, wiring, Nano over WiFi and the recovery app have their own page in docs/. - docs/web-ui.md has a screenshot of every tab, made with headless Edge by tools/make_webui_screenshots.py. - The web UI opens a page in the editor with #pages/<name>. Version 2.7.2. - The reply wire is fitted (flashing the Nano over WiFi works). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.5 KiB
Home Assistant
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 Powerswitch: off clears the display and cuts power through the relay.FlipDot Display Modedropdown: 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 imagedropdown: 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 IPsensor: the ESP32's IP address.FlipDot Display Stopwatchswitch andFlipDot Display Stopwatch resetbutton: the stopwatch of the dynamic pages.FlipDot Display Shown pagesensor: what the display shows now (schedule, rule or chosen page).FlipDot Display Back to schedulebutton: ends a page chosen by hand.FlipDot Display Firmwaresensor: version and health, e.g.2.7.2, ok, 0 crashes, recovery ok.FlipDot Display Recoverybutton: restarts into the recovery app 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 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).
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 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.