Hello everyone
I have been talked into giving AI programming a go and thought I’d give it a meaty project to get started with.
As Gert sold his Velbus home some years ago, the NodeRed Velbus palette is in need of an overhaul.
So… Why not let some AI coder loose on that to see what it can do.
Do any of you fancy testing out what it’s created so far and give some feedback?
There are help files in place which should get you up and running quickly.
If you’re not comfortable side loading a palette into a NodeRed instance, please wait until I’ve made it a full public feature.
But… If you are happy and you know how to tar a palette into the right folder and restart NodeRed…
I’d love to get your feedback
directly within the NodeRed palette manager
Just search for velbus-2026
available on GitHub
available on NPMjs.com
https://www.npmjs.com/package/node-red-contrib-velbus-2026
npm install node-red-contrib-velbus-2026
or download the latest TarBall here
http://velbus.co.uk/dl/node-red/velbus/node-red-contrib-velbus-2026.tar.gz
Example help files
Each node has it’s own help file.
If you find it confusing or you need more information, please just ask.
velbus-relay
For V1 relays only
Interprets Velbus relay module packets and encodes commands.
Configuration
Bridge
Select or create a velbus-bridge config node.
Address
Module address in hex (e.g. 01, 0A). No 0x prefix needed.
(Drop down list of discovered and supported modules coming soon)
Start channel / Channel count
Filter which channels this node handles. Default: all 4 channels.
Module type
Leave blank — auto-detected from bus scan. Fill in only if module is offline at startup.
Output 1 — State / Events
Emitted on every relay state change (from 0xFB and 0x00 packets).
{
topic: "relay_status",
address: "0x01",
module: "VMB4RYLD-10",
channel: 1,
channelBit: "0x01",
state: "on", // off | on | timer_running | forced_on | forced_off | inhibited
mode: "on",
timerRemaining: 0,
ledState: "on", // off | on | slow_blink | fast_blink | very_fast_blink
timestamp: 1719100000000
}
Also emits module_online and relay_switched topics.
Output 2 — Warnings
Emitted when a channel is in forced_on, forced_off or inhibited state.
Input — Commands
{
channel: 1, // 1-based channel number
cmd: "on", // see command list below
duration: 30 // seconds (timer/forced/inhibit commands only; -1 = permanent)
}
Commands:
- on
- off
- toggle
- timer
- interval_timer
- forced_on
- forced_off
- cancel_forced_on
- cancel_forced_off
- inhibit
- cancel_inhibit
- status
velbus-relay-20
Interprets Velbus V2 (-20 series) relay module packets and encodes commands.
Supports:
- VMB4RYLD-20
- VMB4RYNO-20
- VMB1RYS-20
For original series relay modules (VMB4RYLD, VMB4RYNO-10, VMB1RYS etc.) use the velbus-relay node instead.
Configuration
Name override
Leave blank — the node retrieves the module name from VelbusLink automatically. Only fill in if you want to override it.
Bridge
Select or create a velbus-bridge config node.
Address
Module address in hex (e.g. 01). No 0x prefix needed.
(Drop down list if discovered and supported modules coming soon)
Start channel / Channel count
Filter which channels this node handles.
Output 1 — State / Events
Emitted on every relay state change. V2 modules send one packet covering all channels simultaneously.
{
topic: "relay_status",
address: "0x01",
module: "Living Room",
channel: 1,
state: "on", // off | on | timer_running | forced_on | forced_off | inhibited
on: true,
inhibited: false,
forcedOn: false,
forcedOff: false,
programDisabled: false,
timerRunning: false,
alarmProgram: { program:0, alarm1:false, ... },
timestamp: 1719100000000
}
Also emits module_online and relay_switched topics.
Output 2 — Warnings
Emitted when a channel is in forced_off or inhibited state, and on firmware incompatibility.
Input — Commands
{
channel: 1, // 1-8, or "all"/0/255 for all channels
cmd: "on", // see list below
duration: 30 // seconds (timer/forced/inhibit only; -1 = permanent)
}
Commands:
- on
- off
- toggle
- timer
- interval_timer
- forced_on
- forced_off
- cancel_forced_on
- cancel_forced_off
- inhibit
- cancel_inhibit
- status
Firmware check
On startup the node checks the module’s memory map version. If incompatible, the node turns red and blocks all commands.
Check the Node-RED log for details.







