I’m developing a custom Venus OS driver that creates com.victronenergy.switch services via dbus (similar to how dbus-shelly works for switches without energy metering). Everything works perfectly on the local GUI v2 switch pane — toggle, dimmable, RGB lights, CCT, and RGBW types all show up and work bidirectionally.
However, I noticed that none of these switch devices appear anywhere in the VRM portal dashboard — no widget, no historical data, nothing. The only way to interact with them remotely is through VRM Remote Console (which just mirrors the local GUI).
What puzzles me is this: the Venus OS GUI itself offers a visibility setting for each switch with four options (see screenshot):
Off
Always
Only local
Only on VRM
If com.victronenergy.switch is not supported by VRM, why does the GUI offer “Only on VRM” as an option? This seems like either:
VRM switch support is planned/in progress but not yet implemented
It works for official devices (Shelly, GX relays) but not for third-party drivers
The GUI option is there but VRM simply ignores the data
Questions:
Is there any plan to add switch/light device support to the VRM dashboard?
Does vrmlogger intentionally exclude com.victronenergy.switch, or is it an oversight?
Is there a specific ProductId or dbus path that would make switches visible in VRM?
Do official Shelly switches (without energy metering) appear in VRM?
Thanks Nick, that’s really useful — but I can’t find my custom switches there, see attached screenshots. The VRM Controls panel only shows the GX internal relays, not my custom com.victronenergy.switch devices (which do appear correctly in the local GUI switch pane).
Interestingly, the devices do show up in the VRM Device List (as “Expansion IO”), so VRM is aware of them — it’s just not exposing them in the Controls panel or any dashboard widget.
Quick follow-up: do third-party com.victronenergy.switch services (created via dbus from a custom driver) also appear in that real-time switch pane? Or is it limited to officially supported hardware (GX relays, Shelly, etc.)?
I’ll test more later and report back — might be useful info for others building custom drivers.
Regarding Node-RED virtual switches: good to know they appear in VRM. My use case involves bidirectional MQTT sync with ESP32 devices (dimmable lights, RGB, CCT, RGBW), so I need the full LightControls dbus path support that com.victronenergy.switch provides. Node-RED could be a bridge, but I’d rather avoid adding it to the stack — the direct driver approach is simpler. I prefer not tu run Node red on my old Cerbo GX MK1 (also running signal k already with some speed issues if I mess too mucho)
If you create the switch device in nodered it will create all the relevant paths that you can still control externally.
Once created a new switch panel will appear in VRM, the switches do not appear in the inverter control panel, that is relays only.
Thanks for clarifying — good to know the switch panel is separate from the inverter controls.
The interesting part is that my driver already creates com.victronenergy.switch services with the same dbus paths that Node-RED would use. So either:
VRM shows the switch panel for any com.victronenergy.switch service regardless of origin (Node-RED, custom driver, etc.) — in which case mine should appear but doesn’t, or
Node-RED registers the switch differently (different ProductId, extra path, specific flag) that triggers VRM to show the panel
Do you know if it’s path/structure specific, or does VRM key off something like the ProductId? I’ll dig into what paths Node-RED’s virtual switch creates versus mine and compare.
Update: I just created a Node-RED Virtual Switch node (Toggle type, deployed successfully — showing “Toggle switch (100)” status in NR) and it still doesn’t appear in the VRM switch panel either. It shows on Venus OS. So the issue isn’t specific to my custom driver.
I compared the dbus paths between the Node-RED virtual switch and my driver — they’re nearly identical (same ProductId 0xC069, same ShowUIControl=1, same path structure). The only notable differences: Node-RED uses SwitchableOutput/output_1/ while mine uses SwitchableOutput/0/, and Mgmt/ProcessName is dbus-victron-virtual vs my script path.
Could the VRM switch panel require a specific Venus OS version, or perhaps a VRM account setting / installation flag to enable it? My Cerbo is on Venus OS 3.72. Is there something that needs to be enabled on the VRM side to make the panel appear?