From 3c08e6ef1e998a044bb40f534272c9f3be59707c Mon Sep 17 00:00:00 2001 From: Melvin Strobl Date: Wed, 14 Oct 2026 11:33:27 +0200 Subject: [PATCH] Docs: panels without a browser (openpanel), device-interpreted I/O ports Co-Authored-By: Claude Opus 5.5 --- docs/interface/dashboards.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/interface/dashboards.md b/docs/interface/dashboards.md index 35361a7..b2d6473 100644 --- a/docs/interface/dashboards.md +++ b/docs/interface/dashboards.md @@ -194,6 +194,23 @@ charts. On a locked dashboard only the query charts may still publish. dashboard assignments. Deleting the panel removes the assignment and its access. +### A screen without a browser + +The openpanel firmware, kept in its own repository, draws dashboards as native +widgets on an ESP32-P4 wall panel (Waveshare ESP32-P4-WIFI6-Touch-LCD-7B, +1024×600). Once its config page points it at this instance, it shows the +pairing code itself; enter it as in step 4. It reads the same published +dashboards and live values and draws every widget type with two exceptions, +both shown as a placeholder: a website tile that embeds a page (image tiles +work), and a chart of runs, which a panel credential may not read. Media tiles +play MJPEG streams, pushed frames, images, and H.264 Baseline or MJPEG clips up +to 640×360. Re-encode other clips with the [clip recipe](../code/nodes.md#making-clips-playable-on-an-lvgl-panel). + +The device decides what the panel's [I/O](#the-devices-own-io) port names +mean. openpanel serves `gpio.`, `backlight`, `touch`, `mic` and `speaker`, +lists each one's `config` in its README and ignores any other name. A browser +screen serves none of them. + ### The device's own I/O A panel can also act as a node. Under **I/O**, wire a port on the device to a @@ -201,7 +218,7 @@ message: | Field | Meaning | |---|---| -| `port` | The device's name for it, such as `gpio.4`, `backlight`, `screen`, `touch`, `mic` or `speaker`. Lowercase letters, digits, `_` and `.` | +| `port` | The device's name for it, such as `gpio.4`, `backlight`, `touch`, `mic` or `speaker`. Lowercase letters, digits, `_` and `.` | | `direction` | `in`: the device publishes to the message. `out`: the device follows it | | `message` | A qualified `flow.name`. A flow must declare it, as for a control | | `config` | A JSON object passed to the device unread, such as `{"pull": "up", "debounce_ms": 50}` |