Public Access
- 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>
1.5 KiB
1.5 KiB
How it works
- ESP32 boot. The ESP32 connects to WiFi and starts ArduinoOTA. After a crash it
runs only OTA for 15 seconds, and after repeated crashes it goes to safe mode. Bad OTA
firmware is rolled back automatically, see
Keeping OTA alive. It then switches the display relay on, waits for
the Nano's
READYmessage (at most 3 s), shows "Connecting...", starts NTP and connects to MQTT. - Clock. Once the time is synced, the ESP32 sends a new frame whenever the screen
changes, mostly once a minute:
- 08:00–22:00: the page: the chosen page (by default the built-in Clock page,
Pikachu with a thought bubble showing
HH:MM, yawning from 17:00), or what the schedule and rules pick. - 22:00–23:30: the clock is only shown during the minutes :00, :15, :30 and :45. 30 seconds after each of those minutes, the relay turns the display off.
- 23:31–08:00: the screen is cleared (or shows the off image chosen in the web UI) and power is cut after 30 seconds.
- 08:00–22:00: the page: the chosen page (by default the built-in Clock page,
Pikachu with a thought bubble showing
- Home Assistant: switches, dropdowns and sensors over MQTT, see Home Assistant.
- Nano. The Nano reads commands from the serial line and updates its frame buffer.
On
Dit flips only the dots that changed. Every 2 minutes it redraws the whole screen to fix dots that did not flip.
The serial protocol is described in src/nano/README.md.