wallpanel-control¶
MQTT bridge for controlling a wall-panel display and system via SSH and Wake-on-LAN.
wallpanel-control translates typed JSON MQTT commands into SSH-executed backlight writes and power actions on a dedicated wall-panel device. The app connects to an always-on device (e.g. a small x86 SBC running a kiosk browser) via SSH and exposes two command channels: one for display state and brightness, and one for system actions such as wake, suspend, and hibernate. Unavailable-device scenarios are surfaced through the availability field in state payloads rather than connection-level errors. Wake-on-LAN handles power-on for the suspend/hibernate use case.
Features¶
- Typed JSON MQTT command and state topics -- no raw strings or legacy topic aliases
- Display control: turn on/off and set backlight brightness (1-100%) in a single command
- System actions:
wake(WoL),suspend, andhibernatevia SSH - Availability reported per-state payload -- no separate availability topic required
- Error published to
{prefix}/error(QoS 1, not retained) on adapter failures - Configurable SSH host, user, key path, port, and timeout
- Configurable sysfs backlight path for different hardware
Hardware¶
| Component | Details |
|---|---|
| Wall panel device | Linux device with a GNOME desktop session (Intel NUC, x86 board, ...) |
| Display backlight | Intel backlight via sysfs (configurable path) |
| Screen on/off | GNOME Mutter via busctl --user set-property org.gnome.Mutter.DisplayConfig |
| Network | Ethernet or Wi-Fi with WoL support for power-on |
| SSH access | Public-key authentication required |
Quick Links¶
-
Getting Started
Install wallpanel-control and see your first MQTT messages.
-
Configuration
All settings — environment variables,
.envfiles, and CLI flags. -
MQTT Topics
Topic reference with payload schemas, directions, and retain flags.
-
ADRs
Architecture decision records documenting design choices.