Difference between revisions of "ZWave API"

From LinuxMCE
Jump to: navigation, search
m (Traces)
m (Command classes)
Line 13: Line 13:
 
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).
 
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 classes ==
+
== 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 ==
 
== Device configuration data ==

Revision as of 14:19, 24 January 2008


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

http://zwaveworld.com/forum/index.php?showtopic=227&st=20

http://www.denninger.net/homedaemon.htm