Z-Wave API
The VAPIX® Z-Wave™ API provides the information that makes it possible to set up and use the wireless communications protocol found on your Axis device.
Overview
The API implements zwave.cgi
as its communications interface and supports the following methods:
Method | Description |
---|---|
setEnabled | Enables/disables the Z-Wave functionality. |
getEnabled | Retrieves the currently enabled state of Z-Wave. |
addNode | Adds a node to the network. Please note that this is an asynchronous operation, which means that you must use getOperation to find out when the operation is completed. |
removeNode | Removes a node from the network. Please note that this is an asynchronous operation, which means that you must use getOperation to find out when the operation is completed. |
getOperation | Retrieves the current network operation. |
abortOperation | Aborts the current network operation. Please note that this is an asynchronous operation, which means that you must use getOperation to find out when the operation is completed. |
resetNetwork | Resets the network operation back to its factory default settings. Please note that this is an asynchronous operation, which means that you must use getOperation to find out when the operation is completed. |
refreshNetwork | Refreshes the network operation (topology, routing table, etc.). Please note that this is an asynchronous operation, which means that you must use getOperation to find out when the operation is completed. |
getNodeList | Retrieves a list containing all, or a subset, of existing network nodes. |
getEndpointList | Lists the node endpoints. |
getEndpointInterfaceList | Lists and describes the endpoint interfaces. |
getSummaryList | Retrieves a subset of the information obtained with getNodeList , getEndpointList and getEndpointInterfaceList on all network nodes and endpoints. |
replaceFailedNode | Replaces a failed network node. Please note that this is an asynchronous operation, which means that you must use getOperation to find out when the operation is completed. |
removeFailedNode | Removes a failed network node. Please note that this is an asynchronous operation, which means that you must use getOperation to find out when the operation is completed. |
setEndpointInfo | Sets the name and/or location for an endpoint. |
getS2RequestedKeys | Queries for requested S2 keys. |
setS2GrantKeys | Grants keys to a new node while using the S2 mode. |
getS2DeviceSpecificKey | Retrieves the S2 device specific key. |
acceptS2 | Accepts or rejects a newly added node while using the S2 mode. |
refreshNode | Refreshes a single Z-Wave network node. Please note that this is an asynchronous operation, which means that you must use getOperation to find out when the operation is completed. |
addToProvisioningList | Adds an entry to the provisioning list. |
removeFromProvisioningList | Removes an entry from the provisioning list. |
getProvisioningList | Lists all provisioning entries. |
getBatteryState | Retrieves the current battery state from the end node or the last known state from the cache. |
getMultilevelSensorState | Retrieves the current state(s) of the multilevel sensor from the end node or the last known state(s) from the cache. |
getMultilevelSensorSupport | Retrieves the supported sensor types from the end node or the cached supported sensor types. |
getMultilevelSensorUnitSupport | Retrieves the supported sensor units from the end node or the cached supported sensor units. |
getConfiguration | Retrieves the configuration parameter value from the end node or the last known value from the cache. |
setConfiguration | Sets the value of a configuration parameter. |
getBinarySwitchState | Retrieves the current state of the binary switch from the end node or the last known state from the cache. |
setBinarySwitchState | Turns the binary switch ON or OFF. |
getBasicState | Retrieves the current interface value mapped to the basic interface from the node or the last known state from the cache. |
setBasicState | Sets the interface value mapped to the basic interface. |
addAssociation | Adds a device to a group communicating directly with each other. |
removeAssociation | Removes a device from a group communicating directly with each other. |
getAssociationData | Retrieves association data for a group of devices capable of communicating with each other from either the end node or the cache. |
getSupportedGroupings | Retrieves a list of group IDs supported by an end node from either the end node itself or the cache. |
getWakeUpInfo | Retrieves the wake-up information from the end node or the most recent wake-up information from the cache. |
setWakeUpInfo | Sets the wake-up interval and selects the node that should be notified. |
getMeterReading | Retrieves the meter readings from the end node or the most recent meter reading from the cache. |
getMeterCapabilities | Retrieves the meter capabilities information from the end node or the most recent meter capabilities from the cache. |
resetMeter | Resets all accumulated values stored in the meter device. |
getIndicatorValue | Retrieves the indicator values from the end node or the most recent indicator value from the cache. |
setIndicatorValue | Sets an indicator value. |
getIndicatorCapabilities | Retrieves all supported indicator information from the cache. |
getFirmwareInfo | Retrieves firmware information from the end node or the most recent information from the cache. |
requestFirmwareUpdate | Triggers a new firmware update request for an end node. |
getFirmwareUpdateStatus | Retrieves the firmware update status for an end node. |
requestFirmwareBackup | Triggers a new firmware backup request for an end node. |
getFirmwareBackupStatus | Retrieves the firmware backup status for an end node. |
requestFirmwareActivation | Triggers a new firmware activation request for an end node. |
getFirmwareActivationStatus | Retrieves the firmware activation status for an end node. |
getNotificationCapabilities | Retrieves the supported alarm/notification types from either the end node or the most recent types from the cache. |
getNotificationEventSupport | Retrieves the supported events of a specified alarm/notification type from either an end node or the cache. |
getNotificationState | Retrieves the state of the alarm/notification device or a pending notification from either the device or the cache. |
setNotificationState | Sets the state of the specified Z-Wave alarm type or clears out a persistent notification. |
getCentralSceneCapabilities | Retrieves capabilities like the maximum number of supported scenes along with their supported key attributes from either the end node or the cache. |
getCentralSceneConfiguration | Retrieves the value of the scene notification configuration from an end node. |
setCentralSceneConfiguration | Configures the scene notification settings. |
getCentralSceneState | Retrieves the cached central scene data. |
getAntiTheftUnlockState | Retrieves the Anti-Theft Unlock state from either the end node or the cache. |
setAntiTheftUnlockState | Unlocks a node. |
setTemperatureThreshold | Sets the temperature threshold for temperature events. |
getTemperatureThreshold | Retrieves the temperature threshold settings from a temperature event. |
setIoFunctionBinarySwitch | Sets I/O to Binary-switch. |
setIoFunctionOneShot | Sets I/O to One-shot. |
setIoFunctionSetReset | Sets I/O to Set/Reset. |
setIoFunctionToggle | Set I/O to Toggle. |
removeIoFunction | Removes the I/O functionality. |
getIoConfiguration | Retrieves the current I/O configuration from an end node. |
getAllNotificationEventSupport | Retrieves the supported events from a specified end node. |
getSupportedVersions | Retrieves the API versions supported by your product. |
General concepts
Nodes, endpoints and interfaces
A Z-Wave network consists of devices (nodes) that can be either controllers or be controlled. Every node has a unique Node ID and a Home ID that identifies the network. This means that nodes with different Home IDs are unable to communicate with each other. Every node in a Z-Wave network has at least one endpoint with an interface to represent the device and its functionality.
Operations
Management of the Z-Wave network and the nodes in a network are done through sequential operations. Examples of such operations are "Add node", "Remove node", "Reset network" and "Abort operation". The following tables contains the available operations and statuses.
Available operations
Operation | Operation code | Description |
---|---|---|
operationNone | 0 | No operation is in progress. |
operationInitialize | 1 | Initializes the operation. |
operationAddNode | 2 | Adds a node. |
operationRemoveNode | 3 | Removes a node. |
operationReplaceFailedNode | 4 | Replaces a failed node. |
operationRemoveFailedNode | 5 | Removes a failed node. |
operationRefreshNetwork | 7 | Refreshes the network. |
operationResetNetwork | 8 | Restores the network settings back to factory default. |
operationRefreshNode | 13 | Refreshes the node info. |
Available operation statuses
Operation status | Status code | Description |
---|---|---|
Generic | Generic status codes | |
operationStatusNone | 0 | Nothing to report. |
operationStatusError | -1 | Error. |
operationStatusNoNet | -4 | The network is not initialized. |
operationStatusAborted | -5 | The network operation is aborted. |
Add node | Status codes for add node | |
addNodeStatusProtocolDone | 1 | The protocol part is completed. |
addNodeStatusGetNodeInfo | 2 | Retrieve detailed node info. |
addNodeStatusProtocolStart | 3 | Starts the add SmartStart Z-Wave protocol operation. |
addNodeStatusRequestedKeyReady | 11 | (S2 only) Device Requested Key info is ready. |
addNodeStatusDSKReady | 12 | (S2 only) Device DSK info is ready. |
addNodeStatusOnBehalfRequestedKeyReady | 21 | (S2 only) Device Requested Key info is ready. |
addNodeStatusOnBehalfDSKReady | 22 | (S2 only) Device DSK info is ready. |
Remove node | Status codes for remove node | |
removeNodeStatusLearnReady | 1 | Ready to remove a node. |
removeNodeStatusFound | 2 | Found a node that can be removed. |
removeNodeStatusRemoving | 3 | Remove the node. |
Replace failed node | Status codes for replace a failed node | |
replaceNodeStatusReady | 1 | Ready to replace a failed node. |
replaceNodeStatusProtocolDone | 2 | Protocol part finished. |
replaceNodeStatusSecureInclusion | 3 | Add node securely. |
replaceNodeStatusGetNodeInfo | 4 | Retrieve detailed node information. |
Network refresh | Status codes for network refresh | |
networkRefreshStatusTopology | 1 | Network topology refresh started. |
networkRefreshStatusNeighbor | 2 | Node neighbor refresh started. |
networkRefreshStatusGetNodeInfo | 3 | Node information refresh started. |
S0 and S2
S0 and S2 are layers of security that encrypts the data sent between devices on a Z-Wave network. It has been mandatory to use S2 on new devices since 2017. S2 can be divided into unauthenticated and authenticated, the latter including a unique authentication code. A DSK, or Device Specific Key, is used for the authentication.
SmartStart
This feature allows the user to quickly include end devices when turning them on for the first time by adding devices to a provisioning list, thus allowing a manufacturer or service provider to prepare the installation in advance. The end node will announce itself as soon as it is turned on, which results in the automatic inclusion and "out of the box" experience for the end user.
Command Class
Every device function include groups of commands organized into Command Classes:
- A node can support a command class, which means that the node will implement all Command Class functions.
- A node can control a Command Class, which means that the node is able to interact with other nodes by using a subset of the commands available in a Command Class
The following table details some of the available Command Classes.
Controlled Command Classes
Command Class | Short Name | Note |
---|---|---|
Anti-Theft Unlock Command Class | antiTheftUnlock | |
Association Command Class | association | |
Basic Command Class | basic | |
Battery Command Class | battery | |
Binary Switch Command Class | binarySwitch | |
Central Scene Command Class | centralScene | |
Configuration Command Class | configuration | |
Firmware Update Meta Data Command Class | firmwareUpdate | |
Indicator Command Class | indicator | |
Meter Command Class | meter | |
Multilevel Sensor Command Class | multilevelSensor | |
Alarm/Notification Command Class | notification | Previously called Alarm Command Class before it was renamed/overloaded by Notification Command Class . |
Wake Up Command Class | wakeUp |
Device Classes
Z-Wave devices are organized into three layers of device classes, with a certain set of requirements that needs to be supported, including mandatory Command Classes. The top layer, also known as the Basic Device Class, defines a device as either a portable controller, a static controller, an end node or a routing end node. The second layer is the Generic Device Class, which defines the main functionality. Finally, to define different variants of a given Generic Device Class, there is the Specific Device Classes.
Role Type
A Z-Wave device can have a Role Type to indicate the expectations regarding battery and network functionality. See the table Z-Wave+ Role Type identifiers below for a complete list of Role Type identifiers.
Sensor types
Sensor Type | Short Name | Unit(s) Name | Unit(s) Notes |
---|---|---|---|
Temperature Sensor | tempSensor | celsius fahrenheit | |
General Purpose Sensor | gpSensor | percentage dimensionless | |
Luminance Sensor | luminSensor | percentage lux | |
Power Sensor | powerSensor | W btuPerHour | Btu/h |
Humidity Sensor | humidSensor | percentage gramPerCubicMeter | g/m3 |
Velocity Sensor | veloSensor | meterPerSecond milesPerHour | m/s, mph |
Direction Sensor | directionSensor | degrees | 0 to 360 degrees 0 = no wind 90 = east 180 = south 270 = west 360 = north |
Atmospheric Pressure Sensor | atmSensor | kPa inHg | |
Barometric Pressure Sensor | baroSensor | kPa inHg | |
Solar Radiation Sensor | solarSensor | wattPerSquareMeter | W/m2 |
Dew Point Sensor | dewSensor | celsius fahrenheit | |
Rain Rate Sensor | rainSensor | millimeterPerHour inchesPerHour | mm/h in/h |
Tide Level Sensor | tideSensor | m feet | |
Weight Sensor | weightSensor | kg pound | |
Voltage Sensor | voltageSensor | V mV | |
Current Sensor | currentSensor | A mA | |
CO2–level Sensor | co2Sensor | ppm | |
Air Flow Sensor | airSensor | cubicMeterPerHour cfm | m3/h cubic feet per minute |
Tank Capacity Sensor | tankSensor | l cbm usGallons | US Gallons |
Distance Sensor | distSensor | m cm feet | |
Angle Position Sensor | angleSensor | percentage degreeNorth degreeSouth | degrees relative to north/south pole of standing eye view |
Rotation Sensor | rotationSensor | rpm Hz | |
Water Temperature Sensor | waterTempSensor | celsius fahrenheit | |
Soil Temperature Sensor | soilTempSensor | celsius fahrenheit | |
Seismic Intensity Sensor | seismicIntSensor | mercalli europeanMacroseismic liedu shindo | |
Seismic Magnitude Sensor | seismicMagSensor | ML MW MS MB | |
Ultraviolet Sensor | uvSensor | uvIndex | UV index |
Electrical Resistivity Sensor | elecResistivitySensor | ohmMeter | |
Electrical Conductivity Sensor | elecCondSensor | siemensPerMeter | S/m |
Loudness Sensor | loudnessSensor | dB dBA | |
Moisture Sensor | moistSensor | percentage volumeWaterContent ohm waterActivity | m3/m3 aw |
Frequency Sensor | frequencySensor | Hz kHz | |
Time Sensor | timeSensor | s | |
Target Temperature Sensor | targetTempSensor | celsius fahrenheit | |
Particulate Matter 2.5 Sensor | pm2_5Sensor | molePerCubicMeter microgramPerCubicMeter | mol/m3 ug/m3 |
Formaldehyde CH20–level Sensor | ch2oSensor | molePerCubicMeter | mol/m3 |
Radon Concentration Sensor | radonSensor | becquerelPerCubicMeter picocuriesPerLiter | bq/m3 pCi/L |
Methane Density CH4 Sensor | ch4Sensor | molePerCubicMeter | mol/m3 |
Volatile Organic Compound Sensor | vocSensor | molePerCubicMeter ppm | mol/m3 |
Carbon Monoxide CO-level sensor | coLvlSensor | molePerCubicMeter ppm | mol/m3 |
Soil Humidity Sensor | soilHumidSensor | percentage | |
Soil Reactivity Sensor | soilReactivitySensor | pH | |
Soil Salinity Sensor | soilSalinitySensor | molePerCubicMeter | mol/m3 |
Heart Rate Sensor | heartRateSensor | bpm | |
Blood Pressure Sensor | bloodPressureSensor | systolicMmHg diastolicMmHg | |
Muscle Mass Sensor | muscleMassSensor | kg | |
Fat Mass Sensor | fatMassSensor | kg | |
Bone Mass Sensor | boneMassSensor | kg | |
Total Body Water Sensor | tbwSensor | kg | |
Basal Metabolic Rate Sensor | bmrSensor | J | |
Body Mass Index Sensor | bmiSensor | bmiIndex | |
Acceleration, X-axis Sensor | xAccSensor | meterPerSecondSquare | m/s2 |
Acceleration, Y-axis Sensor | yAccSensor | meterPerSecondSquare | m/s2 |
Acceleration, Z-axis Sensor | zAccSensor | meterPerSecondSquare | m/s2 |
Smoke Density Sensor | smokeDensitySensor | percentage | |
Water Flow Sensor | waterFlowSensor | literPerHour | l/h |
Water Pressure Sensor | waterPressureSensor | kPa | |
RF Signal Strength Sensor | rfSignalSensor | RSSI dBm | |
Particulate Matter 10 Sensor | pm10Sensor | molePerCubicMeter microgramPerCubicMeter | mol/m3 ug/m3 |
Respiratory Rate Sensor | respiratoryRateSensor | bpm | |
Relative Modulation Level Sensor | relativeModSensor | percentage | |
Boiler Water Temperature Sensor | boilerTempSensor | celsius fahrenheit | |
Domestic Hot Water Temperature Sensor | dhwTempSensor | celsius fahrenheit | |
Outside Temperature Sensor | outsideTempSensor | celsius fahrenheit | |
Exhaust Temperature Sensor | exhaustTempSensor | celsius fahrenheit | |
Water Chlorine Level Sensor | chlorineLvlSensor | milligramPerLiter | mg/l |
Water Acidity Sensor | waterAcidSensor | pH | |
Water Oxidation Reduction Potential Sensor | waterOxiRedSensor | mV | |
Heart Rate LF/HF Sensor | lfhfRatioSensor | unitless | |
Motion Direction Sensor | motionSensor | degrees | 0 to 360 degrees 0 = no motion 90 = east 180 = south 270 = west 360 = north |
Applied Force On The Sensor | appliedForceSensor | N | |
Return Air Temperature Sensor | returnAirTempSensor | celsius fahrenheit | |
Supply Air Temperature Sensor | supplyAirTempSensor | celsius fahrenheit | |
Condenser Coil Temperature Sensor | condenserCoilTempSensor | celsius fahrenheit | |
Evaporator Coil Temperature Sensor | evaporatorCoilTempSensor | celsius fahrenheit | |
Liquid Line Temperature Sensor | liquidLineTemp | celsius fahrenheit | |
Discharge Line Temperature Sensor | dischargeLineTempSensor | celsius fahrenheit | |
Suction Pressure Sensor | suctionPressureSensor | kPa psi | |
Discharge Pressure Sensor | dischargePressureSensor | kPa psi | |
Defrost Temperature Sensor | defrostTempSensor | celsius fahrenheit | |
Ozone (O3) Sensor | ozoneSensor | microgramPerCubicMeter | ug/m3 |
Sulfur Dioxide (SO2) Sensor | so2Sensor | microgramPerCubicMeter | ug/m3 |
Nitrogen Dioxide (NO2) Sensor | no2Sensor | microgramPerCubicMeter | ug/m3 |
Ammonia (NH3) Sensor | nh3Sensor | microgramPerCubicMeter | ug/m3 |
Lead (Pb) Sensor | pbSensor | microgramPerCubicMeter | ug/m3 |
Particulate Matter 1 Sensor | pm1Sensor | microgramPerCubicMeter | ug/m3 |
Person Counter (entering) | personEnteringCounter | unitless | |
Person Counter (exiting) | personExitingCounter | unitless | |
Unknown([^1]) | unknown | N.A |
[1]: Can be a valid unit for all sensor types.
Basic Device Class identifiers
Basic Device Class | Code | Description |
---|---|---|
controller | 1 | The node is a portable controller. |
staticController | 2 | The node is a static controller. |
endNode | 3 | The node is an end node. |
routingEndNode | 4 | The node is an end node with routing capabilities. |
Generic Device Class identifiers
Generic Device Class | Code | Description |
---|---|---|
remoteController | 1 | Remote Controller |
staticController | 2 | Static Controller |
avControlPoint | 3 | AV Control Point |
display | 4 | Display |
networkExtender | 5 | Network extender |
appliance | 6 | Appliance |
sensorNotification | 7 | Notification sensor |
thermostat | 8 | Thermostat |
windowCovering | 9 | Window covering |
repeaterEndNode | 15 | Repeater end node |
switchBinary | 16 | Binary switch |
switchMultilevel | 17 | Multilevel switch |
switchRemote | 18 | Remote switch |
switchToggle | 19 | Toggle switch |
zipNode | 21 | Zip node |
ventilation | 22 | Ventilation |
securityPanel | 23 | Security panel |
wallController | 24 | Wall controller |
sensorBinary | 32 | Binary sensor |
sensorMultilevel | 33 | Multilevel sensor |
pulseMeter | 48 | Pulse meter |
meter | 49 | Meter |
entryControl | 64 | Entry Control |
semiInteroperable | 80 | Semi interoperable |
sensorAlarm | 161 | Alarm sensor |
nonInteroperable | 255 | Non interoperable |
Specific Device Class identifiers
Specific Device Class | Code | Description |
---|---|---|
Generic | ||
notUsed | 0 | Specific Device Class not used |
Static Controller | ||
pcController | 1 | Central Controller Device Type |
sceneController | 2 | Scene Controller Device Type |
staticInstallerTool | 3 | Static Installer Tool Device Type |
setTopBox | 4 | Set Top Box Device Type |
subSystemController | 5 | Sub System Controller Device Type |
tv | 6 | TV Device Type |
gateway | 7 | Gateway Device Type |
Notification Sensor | ||
notificationSensor | 1 | Notification Sensor Device Type |
Binary Switch | ||
powerSwitch | 1 | ON/OFF Power Switch Device Type |
colorTunable | 2 | Binary Turnable Color Light Device Type |
sceneSwitch | 3 | Binary Scene Switch Device Type |
powerStrip | 4 | Power Strip Device Type |
siren | 5 | Siren Device Type |
valve | 6 | Valve (open/close) Device Type |
irrigationController | 7 | Irrigation Controller Device Type |
Binary Sensor | ||
routingSensor | 1 | Routing Binary Sensor Device Type |
Multilevel Sensor | ||
routingSensor | 1 | Routing Multilevel Sensor Device Type |
chimneyFan | 2 | Chimney Fan Device Type |
Meter | ||
simpleMeter | 1 | Sub Energy Meter Device Type |
advancedEnergyControl | 2 | Whole Home Energy Meter (Advanced) Device Type |
wholeHomeMeterSimple | 3 | Whole Home Meter (Simple) Device Type |
Z-Wave+ Role Type identifiers
Role Type | Code | Description |
---|---|---|
centralStaticController | 0 | Central Static Controller |
subStaticController | 1 | Sub Static Controller |
portableController | 2 | Portable Controller |
portableReportingController | 3 | Portable Reporting Controller |
portableEndNode | 4 | Portable End Node |
alwaysOnEndNode | 5 | Always On End Node |
sleepingReportingEndNode | 6 | Reporting Sleeping End Node |
sleepingListeningEndNode | 7 | Listening Sleeping End Node |
networkAwareEndNode | 8 | Network Aware End Node |
Node Type identifiers
Node Type | Code | Description |
---|---|---|
zwavePlusNode | 0 | Z-Wave Plus node |
zwavePlusForIPRouter | 1 | Z-Wave Plus for IP router |