1.3 KiB
Send custom messages
It may be necessary to send messages or commands that aren't implemented yet. For these cases, zwave-js
provides means to send "raw" messages or commands.
The only downside is that you won't necessarily receive any responses that would normally be mapped to the call.
Send a custom message to the controller
Here's an example how to turn off the LED on a Aeotec Gen 5 stick.
const turnLEDOff = new Message({
type: MessageType.Request,
functionType: 0xf2,
payload: Buffer.from("5101000501", "hex"),
});
await driver.sendMessage(turnLEDOff, {
priority: MessagePriority.Controller,
supportCheck: false, // This line is necessary to send commands a device does not advertise support for
});
[!NOTE] This will send the raw buffer
0x010800F2510100050151
to the serialport. The protocol bytesSOF (0x01)
, length (0x08
) and the checksum (0x51
) are automatically added at the start and end of the serial message.
Send a custom command to a node
This example sends an Anti-theft Get
command (which is currently unsupported) to node 2:
const cc = new CommandClass({
nodeId: 2,
ccId: CommandClasses["Anti-theft"], // or 0x5d
ccCommand: 0x02,
});
await driver.sendCommand(cc);
[!NOTE] Sending unimplemented get-type commands does not actually make sense since the response will silently be dropped.