-
-
Notifications
You must be signed in to change notification settings - Fork 6
Controller API
The Controller API, is used for network wide operations, but offers some utility methods also.
Its responsible for starting or stopping an Inclusion process for an example, as well as healing your network.
Update the Firmware for a ZWave Device
let Message = {
payload: {
mode: "ControllerAPI",
method: "beginFirmwareUpdate",
params: [<NodeID>, <TargetChipID>, <FileName>, <DataBuffer>]
}
}
return MessageAborts a firmware update
let Message = {
payload: {
mode: "ControllerAPI",
method: "abortFirmwareUpdate",
params: [<NodeID>]
}
}
return MessageObtains the RF Region of your USB Stick
let Message = {
payload: {
mode: "ControllerAPI",
method: "getRFRegion"
}
}
return MessageSets the RF Region of your USB Stick.
Go Here for a list of regions
let Message = {
payload: {
mode: "ControllerAPI",
method: "setRFRegion",
params: ["Europe"]
}
}
return MessageTurns on or off the usb Radio
let Message = {
payload: {
mode: "ControllerAPI",
method: "toggleRF",
params: [true]
}
}
return MessageFetches a list of all nodes
let Message = {
payload: {
mode: "ControllerAPI",
method: "getNodes"
}
}
return MessageKeeps a node awake, until it's been allowed to fall back to sleep.
Remember to switch back to false, else you could drain the battery of your device
let Message = {
payload: {
mode: "ControllerAPI",
method: "keepNodeAwake",
params: [<NodeID>, true | false]
}
}
return MessageReturns the reported Neighbors, for a node as reported by the controller
let Message = {
payload: {
mode: "ControllerAPI",
method: "getNodeNeighbors",
params: [<NodeID>]
}
}
return MessageSets the name of a node.
If the Node supports the Node Naming and Location CC, the value is also written to the device
let Message = {
payload: {
mode: "ControllerAPI",
method: "setNodeName",
params: [<NodeID>,'Some Name']
}
}
return MessageSets the location of the node
If the Node supports the Node Naming and Location CC, the value is also written to the device
let Message = {
payload: {
mode: "ControllerAPI",
method: "setNodeLocation",
params: [<NodeID>,'Some Location']
}
}
return MessageRe-interviews a z-wave device
let Message = {
payload: {
mode: "ControllerAPI",
method: "refreshInfo",
params: [<NodeID>]
}
}
return MessageResets your USB Z-Wave stick
let Message = {
payload: {
mode: "ControllerAPI",
method: "hardReset"
}
}
return MessageStart a network wide heal
let Message = {
payload: {
mode: "ControllerAPI",
method: "beginHealingNetwork"
}
}
return MessageStops a network heal that is in progress.
let Message = {
payload: {
mode: "ControllerAPI",
method: "stopHealingNetwork"
}
}
return MessageRemoves a no longer communicating node from the network
let Message = {
payload: {
mode: "ControllerAPI",
method: "removeFailedNode",
params: [<NodeID>]
}
}
return MessageReplaces a no longer communicating node from the network.
The 2nd parameter states if the inclusion process for the replacement node, will be non secure,
if not provided - inclusion will be attempted in secure mode.
let Message = {
payload: {
mode: "ControllerAPI",
method: "replaceFailedNode",
params: [<NodeID>, true]
}
}
return MessageBegins an inclusion process
The parameter states if the inclusion process for the new node, will be non secure,
if not provided - inclusion will be attempted in secure mode.
let Message = {
payload: {
mode: "ControllerAPI",
method: "beginInclusion",
params: [true]
}
}
return MessageStop an inclusion process
let Message = {
payload: {
mode: "ControllerAPI",
method: "stopInclusion"
}
}
return MessageBegins an exclusion process
let Message = {
payload: {
mode: "ControllerAPI",
method: "beginExclusion"
}
}
return MessageStop an exclusion process
let Message = {
payload: {
mode: "ControllerAPI",
method: "stopExclusion"
}
}
return MessageSome controllers have proprietary functions built in.
One example is to disable the LED on the Aeotec Gen5 Z Stick.
The first argument is the manufacture function ID, and the 2nd is the data portion for that request.
As an example, the byte array -> [0x01, 0x08, 0x00, 0xF2, 0x51, 0x01, 0x00, 0x05, 0x01, 0x51]
disables the LED on the GEN 5 Z-Stick, breaking it down we have the following Z-Wave serial API payload:
0x01 - SOF
0x08 - Total Length
0x00 - REQ
0xF2 - Aeotec Set Configuration Function
0x51 - LED Configuration
0x01 - Configuration Value Size
0x00 - Value
0x05 - ??
0x01 - ??
0x51 - Serial API Checksum
This means we do:
/*
┌──── Serial API Stuff
| 0x01 - SOF 0x08 - Total Length
| 0x00 - REQ
| 0xF2 - Aeotec Set Configuration Function
└────
┌──── User Request Data
| 0x51 - LED Configuration
| 0x01 - Configuration Value Size
| 0x00 - Value
| 0x05 - ??
| 0x01 - ??
└────
┌──── Serial API Stuff
| 0x51 - Serial API Checksum
└────
*/
let OffBufferData = Buffer.from([0x51, 0x01, 0x00, 0x05, 0x01]) /* User Request Data */
let Message = {
payload: {
mode: "ControllerAPI",
method: "proprietaryFunction",
params: [0xF2, OffBufferData]
}
}
return MessageSOF, Total Length, REQ & the Serial API Checksum will be provided for you.
- getPowerlevel
- getRFRegion
- toggleRF
- getNodes
- keepNodeAwake
- getNodeNeighbors
- setNodeName
- setNodeLocation
- refreshInfo
- healNode
- beginHealingNetwork
- stopHealingNetwork
- removeFailedNode
- proprietaryFunction