Z-Way Manual
Contents
Introduction
Structure of the book
History of Z-Way
Status of the document
Z-Way enabled Hardware
RaZberry shield board for Raspberry Pi
Compatibility
Pinout and options on board
Boot-Up Self-Test
LEDs during Operation
Frequencies
Certifications
CE / Europe
FCC / North America
Z-Wave Plus
The USB Stick UZB
Boot-Up Self-Test
Frequencies
Certifications
CE / Europe
FCC / North America
Z-Wave Plus
Other hardware platforms
Preparation and Ways to Access the System
Installation on Raspberry Pi
Installation on other platforms using UZB
Unix-based Platforms
Windows
Local and Remote Access
Security and Privacy
The Web Browser User Interface
Z-W
AY
S
MART
H
OME
I
NTERFACE
Daily Usage
Standard Element View
Element Configuration
Room View
Event Timeline
News feed
The Configuration Menu
Apps
Devices
Inclusion
Z-Wave Device Management
Customize
My Settings
Management
News
Logout
The Management Interface
User Management
Remote Access Management
Time Zone
Backup & Restore
Factory default
Firmware Update
App Store Access
Report Problem
Info
Mobile Apps
Standard mobile web browsers
Native HTML based apps
Pure Native Apps
Third-Party Apps
Imperihome
Fibaro
openHAB
Shortcuts for Android and Integration into Third party software
The App System: making it intelligent
A simple Apps as starter -
'L
OCAL
W
EATHER'
Smart Home Logic
Scene
If -> Then
Logical Rule: If->Then on steroids
Tips and Tricks
The big apps
Leakage Protection
Fire Protection
Burglar Alarm System
Climate Control
Out-of-band notifications
Push Notifications
Notifications by E-mail
Other notifiers
Useful tools and utilities
Apple HomeKit
Intchart.com
Astronomy App
Alexa Integration
Philips Hue Integration
For Developers
The Z-Wave Expert User Interface
Home Screen
Control
Switch
Sensors
Meters
Thermostats
Locks
Notifications
Device
Status
Type Info
Battery
Active Associations
Configuration
Interview
Configuration
Association
Link Health
Expert Commands
Firmware Update
Network
Control
Device Management
Smart Start
Enter/Leave different Network
Backup and Restore
Controller Maintenance
Operating Frequency
Network Maintenance
SUC/SIS Management
Neighbors
Reorganization
Route Map
Timing Info
Link Status
Controller Info
Basic Set Handling
Security Considerations
Analytics
Setup
Job Queue
Troubleshoot the Z-Wave Network
Radio Layer
Network Layer - Devices
Network Layer - Weak or Wrong Routes
Application Layer Settings
Polling
Dead Associations
Wrong Wakeup Settings
Summary
Extending the systems beyond Z-Wave
IP-Cameras
How to find out if a camera is supported by Z-Way?
How to prepare for integration?
How to find the IP address of the camera?
How to integrate the camera into Z-Way?
How to support a camera not on the list yet?
EnOcean devices
Other IP/Internet-based services
Customize your system
Skins
Step 1 - Do you own Skin
Step 2 - Do your own Images
Step 3 - Test the new Skin
Step 4 - Change colors, fonts, shapes – almost
Step 5 - Going into the SASS world
Step 6 - Changing SASS
Step 7 - Create the final Skin for friends, family and the public
Create a preview image
Collect all files together
Pack the files
Step 8 - Distribute your Skin
Step 9 - Rewind in case something goes wrong
Icon Sets
Create Your own Icons
Create an Icon Pack
Upload your Icon Set
How to translate the Z-Way to your language
Smart-Home User Interface
Expert User Interface
Backend Code
Submission of your Language Pack
Develop Code for Z-Way
Z-Way software structure overview
Z-Way APIs Quick Reference
Z-Wave Device API
Sending Z-Wave Commands
JavaScript API (JS API)
Virtual Device API
Comparison
The Z-Wave Device (JSON) API in detail
The data model
The Data object
The Data and Method Tree
Timing behavior of Z-Wave data
Executing Commands
Function Class Commands
Device Command Class Commands
Accessing Data
/ZWaveAPI/Data/
<
timestamp
>
/ZWaveAPI/InspectQueue
Handling of updates coming from Z-Way
Handling S2 inclusion process
C-Library API and a general view on the Z-Way file structure
Files in the /zway folder
config.xml - the main config file
config: Various configuration xml files
translations: XMLs mapping Ids to text
ZDDX: Device Description Files
Htdocs: The web servers document folder
automation: The JavaScript sub system
The use of the C-Library
Sending commands
Receiving updates
Command Classes
Network management
Using Z-Way Library in C-Code
Handling secure inclusion
Sample project
The JavaScript Engine
JavaScript API
Z-Way extensions to the JavaScript Core
HTTP Access
XML parser
var x = new ZXmlDocument()
x = new ZXmlDocument("xml content")
x.root
x.isXML
x.toString()
x.findOne(XPathString)
x.findAll(XPathString)
x.document
XML elements
Cryptographic functions
var guid = crypto.guid()
var rnd = crypto.random(n)
var dgst = crypto.digest(hash, data, ...)
var hmac = crypto.hmac(cipher, key, data, ...)
Sockets functions
WebSockets functions
MQTT functions
Other JavaScript Extensions
fs.list(folder)
fs.stat(file)
fs.loadJSON(filename)
fs.loadText(filename)
fs.load(filename)
executeFile(filename) and executeJS(string)
system(command)
Timers
loadObject(object_name) and saveObject(object_name, object)
exit()
allowExternalAccess(handlerName) and listExternalAccess()
debugPrint(object, object, ...)
Debugging JavaScript code
The virtual device concept (vDev)
Names and Ids
Device Type
Using WebSocket API
Access to Virtual Devices
Virtual Device Usage / Commands
Virtual Device Usage / Values
How to create your own virtual devices
Step 1. Define a VirtualDevice subclass
Step 2. Override performCommand() method
Step 3. Instantiate your VDev by the module
Step 4. Register device
Step 5: Unregister device
Binding to metric changes
The event bus
Emitting events
Catching (binding to) events
Notification and Severity
Modules (for users called 'Apps')
Module.json
index.js
Available Core Modules
Cron, the timer module
Z-Wave
Special topics for Developers
Authentication
First login
Local authentication
Remote authentication
Remote authentication and access error handling
Token lifetime
OAuth2
Create app instances
Integration with third party systems
Node-RED
Home Assistant
How to write own Apps for Z-Way
module.js
Schema
Primitive data types like integer, float or string
Name Spaces - Enumerations with a choice
The file index.js
Write you own Device Description Files
Extending EnOcean
Z-Way Data Model Reference
Data
JS object zway
controller
Devices
Device
Instances
CommandClass
Command Class Reference
Command Class Basic (0x20/32)
Command Class Wakeup (0x84/132)
Command Class NoOperation (0x00/0)
Command Class Battery (0x80/128)
Command Class ManufacturerSpecific (0x72/114)
Command Class Proprietary (0x88/136)
Command Class Configuration (0x70/112)
Command Class SensorBinary (0x30/48)
Command Class Association (0x85/133)
Command Class Meter (0x32/50)
Command Class Meter Pulse (0x35/53)
Command Class SensorMultilevel (0x31/49)
Command Class Sensor Configuration (0x9E/158)
Command Class SwitchAll (0x27/39)
Command Class SwitchBinary (0x25/37)
Command Class SwitchMultilevel (0x26/38)
Command Class MultiChannelAssociation (0x8E/142)
Command Class MultiChannel (0x60/96)
Command Class Node Naming (0x77/119)
Command Class Thermostat SetPoint (0x43/67)
Command Class Thermostat Mode (0x40/64)
Command Class Thermostat Fan Mode (0x44/68)
Command Class Thermostat Fan State (0x45/69)
Command Class Thermostat Operating State (0x42/66)
Command Class Thermostat SetBack (0x47/71)
Command Class Alarm Sensor (0x9C/156)
Command Class Door Lock (0x62/98)
Command Class Door Lock Logging (0x4C/76)
Command Class User Code (0x63/99)
Command Class Time (0x8A/138)
Command Class Time Parameters (0x8B/139)
Command Class Clock (0x81/129)
Command Class Scene Activation (0x2B/43)
Command Class Scene Controller Conf (0x2D/45)
Command Class Scene Actuator Conf (0x2C/44)
Command Class Indicator (0x87/135)
Command Class Protection (0x75/117)
Command Class Schedule Entry Lock (0x4E/78)
Command Class Climate Control Schedule (0x46/70)
Command Class MeterTableMonitor (0x3D/61)
Command Class Alarm (0x71/113)
Command Class PowerLevel (0x73/115)
Command Class Z-Wave Plus Info (0x5E/94)
Command Class Firmware Update (0x7A/122)
Command Class Association Group Information (0x59/89)
Command Class SwitchColor (0x33/51)
Command Class SoundSwitch (0x79/121)
Command Class BarrierOperator (0x66/102)
Command Class SimpleAVControl (0x94/148)
Command Class Security (0x98/152)
Command Class SecurityS2 (0x9F/159)
Command Class EntryControl (0x6F/111)
Command Class UserCredential (0x83/131)
Command Class Hail (0x82/130)
Command Class CRC16 (0x56/86)
Command Class MultiCmd (0x8F/143)
Command Class Supervision (0x6C/108)
Command Class Application Status (0x22/34)
Command Class Version (0x86/134)
Command Class DeviceResetLocally (0x5A/90)
Command Class Central Scene (0x5B/91)
Function Class Reference
List of supported EnOcean devices
NodOn
Thermokon
Hubbel
AWAG
Hoppe
Schneider Elektrik
PEHA
Eltako
EnOcean GmbH
Clusters Reference
Cluster Class Node Descriptor Request (0x0002/2)
Cluster Class Active EndPoints Request (0x0005/5)
Cluster Class Simple Descriptor Request (0x0004/4)
Cluster Class End Device Announce (0x0013/19)
Cluster Class Bind Request (0x0021/33)
Cluster Class Power Descriptor Request (0x0003/3)
Cluster Class Network Address Request (0x0000/0)
Cluster Class OnOff (0x0006/6)
Cluster Class PollControl (0x0020/32)
Cluster Class Mgmt Permit Joining Request (0x0036/54)
Cluster Class Mgmt Leave Request (0x0034/52)
Cluster Class Basic (0x0000/0)
Cluster Class Power Configuration (0x0001/1)
Cluster Class Identify (0x0003/3)
Cluster Class Ias Zone (0x0500/1280)
Cluster Class Window Covering (0x0102/258)
Cluster Class Color Control (0x0300/768)
Cluster Class Thermostat (0x0201/513)
Cluster Class FanControl (0x0202/514)
Cluster Class Thermostat User Interface (0x0204/516)
Cluster Class Level Control (0x0008/8)
Cluster Class Door Lock (0x0101/257)
Cluster Class IlluminanceMeasurement (0x0400/1024)
Cluster Class TemperatureMeasurement (0x0402/1026)
Cluster Class PressureMeasurement (0x0403/1027)
Cluster Class RelativeHumidityMeasurement (0x0405/1029)
Cluster Class OccupancySensing (0x0406/1030)
Cluster Class Metering (0x0702/1794)
Cluster Class ElectricalMeasurement (0x0B04/2820)
Zigbee EZSP Functions Reference
Matter Clusters Reference
Cluster Class OnOff (0x0006/6)
List of Tables
List of Figures
Index
Contents
Introduction
Structure of the book
History of Z-Way
Status of the document
Z-Way enabled Hardware
RaZberry shield board for Raspberry Pi
Compatibility
Pinout and options on board
Boot-Up Self-Test
LEDs during Operation
Frequencies
Certifications
The USB Stick UZB
Boot-Up Self-Test
Frequencies
Certifications
Other hardware platforms
Preparation and Ways to Access the System
Installation on Raspberry Pi
Installation on other platforms using UZB
Unix-based Platforms
Windows
Local and Remote Access
Security and Privacy
The Web Browser User Interface
Z-WAY SMART HOME INTERFACE Daily Usage
Standard Element View
News feed
The Configuration Menu
Apps
Devices
Customize
My Settings
Management
The Management Interface
User Management
Remote Access Management
Time Zone
Backup & Restore
Factory default
Firmware Update
App Store Access
Report Problem
Info
Mobile Apps
Standard mobile web browsers
Native HTML based apps
Pure Native Apps
Third-Party Apps
Imperihome
Fibaro
openHAB
Shortcuts for Android and Integration into Third party software
The App System: making it intelligent
A simple Apps as starter - 'LOCAL WEATHER'
Smart Home Logic
Scene
If -> Then
Logical Rule: If->Then on steroids
Tips and Tricks
The big apps
Leakage Protection
Fire Protection
Burglar Alarm System
Climate Control
Out-of-band notifications
Push Notifications
Notifications by E-mail
Other notifiers
Useful tools and utilities
Apple HomeKit
Intchart.com
Astronomy App
Alexa Integration
Philips Hue Integration
For Developers
The Z-Wave Expert User Interface
Home Screen
Control
Switch
Sensors
Meters
Thermostats
Locks
Notifications
Device
Status
Type Info
Battery
Active Associations
Configuration
Interview
Configuration
Association
Link Health
Expert Commands
Firmware Update
Network
Control
Neighbors
Reorganization
Route Map
Timing Info
Link Status
Controller Info
Basic Set Handling
Security Considerations
Analytics
Setup
Job Queue
Troubleshoot the Z-Wave Network
Radio Layer
Network Layer - Devices
Network Layer - Weak or Wrong Routes
Application Layer Settings
Polling
Dead Associations
Wrong Wakeup Settings
Summary
Extending the systems beyond Z-Wave
IP-Cameras
How to find out if a camera is supported by Z-Way?
How to prepare for integration?
How to find the IP address of the camera?
How to integrate the camera into Z-Way?
How to support a camera not on the list yet?
EnOcean devices
Other IP/Internet-based services
Customize your system
Skins
Step 1 - Do you own Skin
Step 2 - Do your own Images
Step 3 - Test the new Skin
Step 4 - Change colors, fonts, shapes – almost
Step 5 - Going into the SASS world
Step 6 - Changing SASS
Step 7 - Create the final Skin for friends, family and the public
Step 8 - Distribute your Skin
Step 9 - Rewind in case something goes wrong
Icon Sets
Create Your own Icons
Create an Icon Pack
Upload your Icon Set
How to translate the Z-Way to your language
Smart-Home User Interface
Expert User Interface
Backend Code
Submission of your Language Pack
Develop Code for Z-Way
Z-Way software structure overview
Z-Way APIs Quick Reference
Z-Wave Device API
JavaScript API (JS API)
Virtual Device API
Comparison
The Z-Wave Device (JSON) API in detail
The data model
Timing behavior of Z-Wave data
Executing Commands
C-Library API and a general view on the Z-Way file structure
Files in the /zway folder
The use of the C-Library
The JavaScript Engine
JavaScript API
Z-Way extensions to the JavaScript Core
HTTP Access
XML parser
Cryptographic functions
Sockets functions
WebSockets functions
MQTT functions
Other JavaScript Extensions
Debugging JavaScript code
The virtual device concept (vDev)
Names and Ids
Device Type
Using WebSocket API
Access to Virtual Devices
Virtual Device Usage / Commands
Virtual Device Usage / Values
How to create your own virtual devices
Binding to metric changes
The event bus
Emitting events
Catching (binding to) events
Notification and Severity
Modules (for users called 'Apps')
Module.json
index.js
Available Core Modules
Special topics for Developers
Authentication
First login
Local authentication
Remote authentication
Remote authentication and access error handling
Token lifetime
OAuth2
Create app instances
Integration with third party systems
Node-RED
Home Assistant
How to write own Apps for Z-Way
module.js
Schema
The file index.js
Write you own Device Description Files
Extending EnOcean
Z-Way Data Model Reference
Data
JS object zway
controller
Devices
Device
Instances
CommandClass
Command Class Reference
Command Class Basic (0x20/32)
Command Class Wakeup (0x84/132)
Command Class NoOperation (0x00/0)
Command Class Battery (0x80/128)
Command Class ManufacturerSpecific (0x72/114)
Command Class Proprietary (0x88/136)
Command Class Configuration (0x70/112)
Command Class SensorBinary (0x30/48)
Command Class Association (0x85/133)
Command Class Meter (0x32/50)
Command Class Meter Pulse (0x35/53)
Command Class SensorMultilevel (0x31/49)
Command Class Sensor Configuration (0x9E/158)
Command Class SwitchAll (0x27/39)
Command Class SwitchBinary (0x25/37)
Command Class SwitchMultilevel (0x26/38)
Command Class MultiChannelAssociation (0x8E/142)
Command Class MultiChannel (0x60/96)
Command Class Node Naming (0x77/119)
Command Class Thermostat SetPoint (0x43/67)
Command Class Thermostat Mode (0x40/64)
Command Class Thermostat Fan Mode (0x44/68)
Command Class Thermostat Fan State (0x45/69)
Command Class Thermostat Operating State (0x42/66)
Command Class Thermostat SetBack (0x47/71)
Command Class Alarm Sensor (0x9C/156)
Command Class Door Lock (0x62/98)
Command Class Door Lock Logging (0x4C/76)
Command Class User Code (0x63/99)
Command Class Time (0x8A/138)
Command Class Time Parameters (0x8B/139)
Command Class Clock (0x81/129)
Command Class Scene Activation (0x2B/43)
Command Class Scene Controller Conf (0x2D/45)
Command Class Scene Actuator Conf (0x2C/44)
Command Class Indicator (0x87/135)
Command Class Protection (0x75/117)
Command Class Schedule Entry Lock (0x4E/78)
Command Class Climate Control Schedule (0x46/70)
Command Class MeterTableMonitor (0x3D/61)
Command Class Alarm (0x71/113)
Command Class PowerLevel (0x73/115)
Command Class Z-Wave Plus Info (0x5E/94)
Command Class Firmware Update (0x7A/122)
Command Class Association Group Information (0x59/89)
Command Class SwitchColor (0x33/51)
Command Class SoundSwitch (0x79/121)
Command Class BarrierOperator (0x66/102)
Command Class SimpleAVControl (0x94/148)
Command Class Security (0x98/152)
Command Class SecurityS2 (0x9F/159)
Command Class EntryControl (0x6F/111)
Command Class UserCredential (0x83/131)
Command Class Hail (0x82/130)
Command Class CRC16 (0x56/86)
Command Class MultiCmd (0x8F/143)
Command Class Supervision (0x6C/108)
Command Class Application Status (0x22/34)
Command Class Version (0x86/134)
Command Class DeviceResetLocally (0x5A/90)
Command Class Central Scene (0x5B/91)
Function Class Reference
List of supported EnOcean devices
NodOn
Thermokon
Hubbel
AWAG
Hoppe
Schneider Elektrik
PEHA
Eltako
EnOcean GmbH
Clusters Reference
Cluster Class Node Descriptor Request (0x0002/2)
Cluster Class Active EndPoints Request (0x0005/5)
Cluster Class Simple Descriptor Request (0x0004/4)
Cluster Class End Device Announce (0x0013/19)
Cluster Class Bind Request (0x0021/33)
Cluster Class Power Descriptor Request (0x0003/3)
Cluster Class Network Address Request (0x0000/0)
Cluster Class OnOff (0x0006/6)
Cluster Class PollControl (0x0020/32)
Cluster Class Mgmt Permit Joining Request (0x0036/54)
Cluster Class Mgmt Leave Request (0x0034/52)
Cluster Class Basic (0x0000/0)
Cluster Class Power Configuration (0x0001/1)
Cluster Class Identify (0x0003/3)
Cluster Class Ias Zone (0x0500/1280)
Cluster Class Window Covering (0x0102/258)
Cluster Class Color Control (0x0300/768)
Cluster Class Thermostat (0x0201/513)
Cluster Class FanControl (0x0202/514)
Cluster Class Thermostat User Interface (0x0204/516)
Cluster Class Level Control (0x0008/8)
Cluster Class Door Lock (0x0101/257)
Cluster Class IlluminanceMeasurement (0x0400/1024)
Cluster Class TemperatureMeasurement (0x0402/1026)
Cluster Class PressureMeasurement (0x0403/1027)
Cluster Class RelativeHumidityMeasurement (0x0405/1029)
Cluster Class OccupancySensing (0x0406/1030)
Cluster Class Metering (0x0702/1794)
Cluster Class ElectricalMeasurement (0x0B04/2820)
Zigbee EZSP Functions Reference
Matter Clusters Reference
Cluster Class OnOff (0x0006/6)
List of Tables
List of Figures
Index