Repository navigation
Health and webhook
The AP keeps an eye on its labels and can tell you when something needs attention.
| Flag | Means |
|---|---|
silent |
No poll for 3 × the label's interval |
unseen |
Known from before, but not heard from since the AP started |
low_battery |
Below 2500 mV (a label that reports 0 cannot measure it) |
draw_failed |
The AP could not draw its screen |
content_error |
It has content it cannot show, such as old firmware that does not take images |
On an ESP32-S3 AP the labels' radio is an ESP32-C6, on a cable or over WiFi. When the S3 has had no contact with a C6 for 30 seconds (over WiFi up to 2 minutes, when the C6 just loses power), the report lists it under radio_problems as radio_lost, with how long it has been gone, and ok is false. Until it answers again the labels it serves hear nothing from the AP. A webhook gets the report both when the radio is lost and when it is back. The dashboard shows it in red at the top, and Home Assistant as a repair. Firmware from before this sends no radio_problems.
"radio_problems": [{"radio": 0, "id": "000098880E7177C8", "via": "uart", "problems": ["radio_lost"], "lost_s": 300}],
"radio_lost": 1python3 esl_client.py health # exits 1 when something needs attention
curl -H "Authorization: Bearer $TOKEN" "http://openesl.local/api/health?silent_s=600&battery_mv=2400"The thresholds can be changed per call. The dashboard shows the same report.
With a webhook set, the AP posts the same report to your URL whenever it changes, including when a radio is lost or back (checked every 30 seconds):
python3 esl_client.py config --webhook http://homeserver:8123/api/webhook/esl
python3 esl_client.py config --webhook "" # turn it offPlain HTTP, no retries: a failed post is logged and the change goes out with the next one. A Home Assistant webhook works well as the receiver (Home Assistant).
esl_client.py log week.csv writes a row per label per minute until you stop it, and esl_client.py report week.csv sums it up: outages, AP restarts, the longest time each label went without a poll, and the lowest battery.
OpenESL is released under the MIT licence. These pages are made from the wiki/ folder in the repository: to fix something, send a pull request there, or open an issue.
Getting started
Access point
Labels
Layouts
Sending content
- Overview
- HTTP API
- esl-client
- Price lists from CSV
- Scheduled prices
- Home Assistant
- Weather on a label
Running it
- Dashboard
- Health and webhook
- Updating the AP
- Updating labels
- Upgrading from older versions
- Backup and restore
- Moving to a new AP
Help
Developers