ZWave API
Contents
Introduction
The ZWave API is not available for free. You have to get the Zensys SDK for command specifications and device class definitions. This page tries to collect all the freely available information about ZWave. The final goal is to provide a header file with all necessary definitions for basic operation with open source software.
IMPORTANT: all information added to this page _must_ have a reference to the source where it came from.
API
Frame specification
Karl Denning implemented basic ZWave support in his software "HomeDaemon". He advised that basic frame specification can be derived from his source code (http://www.intouchcontrolsforum.com/forums/showpost.php?s=e11a812b08256225ebb66a73d8f6d193&p=173&postcount=13).
Command and Device classes
From the Electronic Solutions, Inc. DBMZ Advanced User manual:
Command/Device Classes
Basic Slave Device
==== All
Multilevel Switch
- COMMAND_CLASS_SWITCH_MULTILEVEL
MULTILEVEL_SWITCH_GET MULTILEVEL_SWITCH_SET MULTILEVEL_SWITCH_START_LEVEL_CHANGE MULTILEVEL_SWITCH_STOP_LEVEL_CHANGE
Basic
- COMMAND_CLASS_BASIC
BASIC_GET BASIC_SET
Mandatory
Manufacturer Specific
- COMMAND_CLASS_MANUFACTURER_SPECIFIC
MANUFACTURER_SPECIFIC_GET
Version
All Switch
- COMMAND_CLASS_SWITCH_ALL
SWITCH_ALL_GET SWITCH_ALL_ON SWITCH_ALL_OFF
Configuration
- COMMAND_CLASS_CONFIGURATION
Each parameter is a single byte ("0" or "1")
CONFIGURATION_GET CONFIGURATION_SET
Power Level
- COMMAND_CLASS_POWERLEVEL
POWERLEVEL_TEST_NODE_SET POWERLEVEL_TEST_NODE_GET POWERLEVEL_TEST_NODE_REPORT
Device configuration data
Traces
Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <EOT> (004) � (239) <STX> (002) ' (039) Device --> <EOT> (004) 9 (057) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <EOT> (004) � (239) <STX> (002) ' (039) <EOT> (004) 9 (057) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <EOT> (004) � (239) <STX> (002) ' (039) <EOT> (004) Device --> 9 (057) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <EOT> (004) � (239) Device --> <STX> (002) ' (039) <EOT> (004) 9 (057) Device --> <SOH> (001) <BS> (008) <NUL> (000) Device --> <EOT> (004) <NUL> (000) � (239) <STX> (002) ' (039) <EOT> (004) = (061) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <NUL> (000) � (239) <STX> (002) ' (039) <EOT> (004) = (061) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <NUL> (000) � (239) <STX> (002) ' (039) <EOT> (004) = (061) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <NUL> (000) � (239) <STX> (002) ' (039) Device --> <EOT> (004) = (061) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <EOT> (004) � (239) Device --> <STX> (002) ' (039) <ENQ> (005) 8 (056) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <EOT> (004) Device --> � (239) <STX> (002) ' (039) <ENQ> (005) 8 (056) Device --> <SOH> (001) <BS> (008) <NUL> (000) Device --> <EOT> (004) <EOT> (004) � (239) <STX> (002) ' (039) <ENQ> (005) 8 (056) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <EOT> (004) � (239) <STX> (002) ' (039) <ENQ> (005) 8 (056) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <NUL> (000) � (239) <STX> (002) ' (039) Device --> <ENQ> (005) < (060) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <NUL> (000) � (239) Device --> <STX> (002) ' (039) <ENQ> (005) < (060) Device --> <SOH> (001) <BS> (008) Device --> <NUL> (000) <EOT> (004) <NUL> (000) � (239) <STX> (002) ' (039) <ENQ> (005) < (060) Device --> <SOH> (001) <BS> (008) <NUL> (000) <EOT> (004) <NUL> (000) � (239) <STX> (002) ' (039) <ENQ> (005) < (060) Device --> <ACK> (006) Device --> <SOH> (001) <EOT> (004) <SOH> (001) <DC3> (019) <SOH> (001) � (232) Device --> <SOH> (001) <EOT> (004) <SOH> (001) <DC3> (019) <SOH> (001) � (232) Device --> <SOH> (001) <EOT> (004) <SOH> (001) <DC3> (019) <SOH> (001) Device --> � (232) Device --> <SOH> (001) <EOT> (004) <SOH> (001) Device --> <DC3> (019) <SOH> (001) � (232) Device --> <SOH> (001) <ENQ> (005) <NUL> (000) <DC3> (019) <ENQ> (005) <NUL> (000) � (236) Device --> <SOH> (001) <ENQ> (005) <NUL> (000) <DC3> (019) <ENQ> (005) <NUL> (000) � (236) Device --> <SOH> (001) <ENQ> (005) <NUL> (000) <DC3> (019) <ENQ> (005) Device --> <NUL> (000) � (236) Device --> <SOH> (001) <ENQ> (005) <NUL> (000) Device --> <DC3> (019) <ENQ> (005) <NUL> (000) � (236)
References
Tools used
http://sourceforge.net/projects/slsnif/
Links
http://www.intouchcontrolsforum.com/forums/showthread.php?t=41&page=2
http://www.elec-solutions.com/docs/motor_controls/dbmz/DBMZ_v1+1_Advanced_User_Manual.pdf