Hi everyone,
I’m developing a lightweight Python driver (dbus-mqtt-switch) that exposes MQTT-controlled lights from an ESP32 (ESPHome) in the Venus OS GUI v2 switch pane. It runs on a Cerbo GX MK1 (v3.72) — no Node-RED, as the Cerbo is already running Signal K and we want to keep the CPU load minimal.
The driver registers as com.victronenergy.switch and currently supports 5 switch types: toggle (1), dimmable (2), RGB (11), CCT (12), and RGBW (13). The ESP32 publishes light state via MQTT, the driver bridges it to dbus, and Venus OS discovers it in the switch pane. Bidirectional control works — color wheel, dimming slider, on/off all functional from the Cerbo GUI.
The issue: “Module state: Running”
Every com.victronenergy.switch device shows a “Module state” row in Settings → Devices, reading from the root /State path. The only “healthy” value is 0x100, which the GUI renders as “Running”.
For industrial switches and breakers, “Running” makes sense. But for lights, it’s confusing — users think the light is ON when it might be OFF.
Meanwhile, GX internal relays show a much cleaner display: just Off | Toggle > without any “Module state” row. But those use a different code path (com.victronenergy.system), not com.victronenergy.switch.
My questions:
-
Is
com.victronenergy.switchthe correct service type for MQTT-controlled lights? Or does something likecom.victronenergy.lightexist that would render more appropriately? -
Would it be possible in a future Venus OS release to either:
-
Show “Connected” instead of “Running” — less confusing for non-industrial devices
-
Or allow the “Module state” row to hide when
/Stateis not registered (like “Module Voltage” already does withpreferredVisible)
-
-
Ideally, the device page could show the actual light state (Off/On, dimming %, color) instead of “Module state” — similar to how temperature sensors show
25°Cor batteries show100% | 13.3V. Is there a recommended path structure for this?
The driver is based on mr-manuel’s dbus-mqtt pattern and plans to be open-sourced on GitHub once stable.
Thanks for any guidance!