DomotiGa - Z-Wave_OpenZWave

DomotiGa - Z-Wave_OpenZWave - # 89
Z-Wave - Open Z-Wave Support
DomotiGa supports Z-Wave using OpenZWave as described below and using RaZberry described on the
[[Z-Wave_RaZberry|RaZberry page]].
Introduction
Z-Wave is a wireless communications protocol designed for home automation, specifically to remotely control applications in
residential and light commercial environments. The technology uses a low-power RF radio embedded or retrofitted into home
electronics devices and systems, such as lighting, home access control, entertainment systems and household appliances.
OpenZWave is a free software library that interfaces with selected Z-Wave PC controllers, that you can use without requiring in-depth
knowledge of the Z-Wave protocol to interface to devices on a Z-Wave network,
DomotiGa uses a wrapper to interface to the OpenZWave library. This OpenZWave wrapper transforms the open-zwave library C++
calls to C calls so DomotiGa can use them, together with JSON-RPC methods to report status changes of the Z-Wave network back to
DomotiGa.
A very big thank you to Jaren, thanks for building and sharing the wrapper code!
Installation
open-zwave wrapper
openzwave.png
Getting DomotiGa's open-zwave support to work is a 2 step process.
1. Build the open-zwave project.
2. Build the DomoZWave wrapper.
1. Building open-zwave
Install needed development headers (for Ubuntu/Debian):
$ sudo apt-get install subversion libudev-dev libjson0 libjson0-dev libcurl4-gnutls-dev
Download latest open-zwave code like this:
$ mkdir ~/install
$ cd ~/install
$ svn co http://open-zwave.googlecode.com/svn/trunk/ open-zwave-read-only
$ cd open-zwave-read-only
01/21/2015
1/7
If you want a specific revision, use "-r <revisionnumber>" as svn parameter
Compile open-zwave code:
$ make
2. Building DomoZWave wrapper
$ cd ~/domotiga/wrappers/domozwave
$ ln -s ~/install/open-zwave-read-only ./open-zwave
$ make clean
$ make
$ sudo make install
Restart DomotiGa
Enable open-zwave option under Open Z-Wave settings.
During first run there is a logfile name 'OZW_Log.txt' and a open-zwave status file named 'zwcfg<homeid>.xml'_ created in the
directory '~/domotiga/wrappers/domozwave'. If debug is enabled, the wrapper will also write a logfile named
'~/domotiga/logs/domozwave-<year>-<month>.log'.
If you run into issues, please add all 3 files into the support ticket.
update/recompile open-zwave and/or wrapper
The open-zwave and/or wrapper are updated regularly. The following steps will guide you with updating your DomotiGa to the latest
one. If the open-zwave is updated, then the wrapper also needs to be updated.
1. Update the open-zwave:
$ cd ~/install/open-zwave-read-only
$ svn up
Compile open-zwave code:
$ make clean
$ make
2. Building DomoZWave wrapper:
$ cd ~/domotiga/wrappers/domozwave
$ make clean
$ make
$ sudo make install
3. Remove the zwcfg*xml, because sometimes the format is changed:
$ rm zwcfg*xml
4. Restart DomotiGa
Configuration
Open the configuration window under Interfaces -> Z-Wave -> Open Z-Wave
01/21/2015
2/7
Fields:
- Serial Port selects the port of the [[Z-Wave OpenZWave#Z-Wave Controllers|Z-Wave Controller]]
- Poll Listening Devices enables a poll of non-sleeping devices
- Poll Sleeping Devices enables a poll of sleeping devices
- Update Neighbor enables a neighbor update
- With every of these three options you find an "at" field that specifies when the poll or update is done using a "cron string"
- For a detailed description of the cron string see [[Events#Time-Now-triggers|Time-Now triggers]].
- "*/30 * * * *" means every half hour
- "30 3 * * *" means every night 03:30
- Debug enables debug output
Open Z-Wave Commander
domotiga-zwavecmdr-v2.png
The Open Z-Wave Commander works only in a Client-Server configuration if [[JSON-RPC]] is enabled.
Controller commands
Under the Controller tab you can find:
01/21/2015
3/7
The left set of buttons are for the Controller, the right set of buttons for the (selected) node.
Node
Button
DomeZWave
Basic Report
DomoZWave_RequestNodeSt
Dynamic Report
DomoZWave_RequestNodeDy
Version Report
Meter Report
Heal Node
RefreshNodeInfo
OpenZWave
ate
namic
DomoZWave_RequestNodeVe
rsion
DomoZWave_RequestNodeM
eter
DomoZWave_RequestNodeNe
ighborUpdate
DomoZWave_RefreshNodeInf
o
Tested Hardware
The following is the list of Z-Wave known to work with DomotiGa and the openzwave library. In principle all normal Z-Wave devices
should work, with the exception of security devices (e.g. door locks) and with some limitations thermostat devices.
Z-Wave Controllers
Manufacturer
Aeon Labs
Product Name
Z-Wave Stick S2
Sigma Designs
Vision
ACC-UZB-U
Z-Wave USB Stick
Z-Wave.Me
RaZberry
Link
[[Devices_ZWave_Aeon_Labs
_Stick_S2|Install/Config]]
message#4293
[[Devices_ZWave_Vision_USB
_Stick|Install/Config]]
[[Devices_ZWave_ZWaveMe_
RaZberry|Install/Config]]
Z-Wave Devices
Manufacturer
Aeon Labs
Aeon Labs
01/21/2015
Product Name
Link
Home Energy Meter (HEM), 2 [[Devices_ZWave_Aeon_Labs
or 3 clamps
_Clamp_Energy_Meter|Install/
Config]]
Micro Smart Energy Switch
[[Devices_ZWave_Aeon_Labs
_Micro_Smart_Energy_Switch
|Install/Config]]
4/7
Aeon Labs
Aeon Labs
BeNEXT
BeNEXT
Danfoss
Digital Home System
Everspring
Everspring
Fibaro
Fibaro
Fibaro
Fibaro
Fibaro
Fibaro
Fibaro
Fibaro
GreenWave
GreenWave
HomeSeer
Popp/Duewi
Popp/Duewi
Qubino
Z-Wave.Me
Multi Sensor
[[Devices_ZWave_Aeon_Labs
_Multi_Sensor|Install/Config]]
Minimote
[[Devices_ZWave_Aeon_Labs
_Minimote|Install/Config]]
Door Sensor
[[Devices_ZWave_BeNEXT_D
oor_Sensor|Install/Config]]
Tag Reader
[[Devices_ZWave_BeNEXT_T
ag_Reader|Install/Config]]
Thermostat
[[Devices_ZWave_Danfoss_R
adiator_Thermostat|Install/Con
fig]]
DHS-ZW-SNMT-01 Multi
[[Devices_ZWave_DHS_ZW-S
Sensor
NMT-01|Install/Config]]
AN158 Plug-in Meter
[[Devices_ZWave_Everspring_
Appliance Module
AN158|Install/Config]]
SP103 Motion Sensor
[[Devices_ZWave_Everspring_
SP103|Install/Config]]
FGBS001/321 Universal
[[Devices_ZWave_Fibaro_FGB
Module
S001|Install/Config]]
FGD211 - Dimmer
[[Devices_ZWave_Fibaro_FGD
211|Install/Config]]
FGR221 Roller Shutter
[[Devices_ZWave_Fibaro_FGR
Controller
221|Install/Config]]
FGS221 Double Relay Switch [[Devices_ZWave_Fibaro_FGS
2x1,5kW
221|Install/Config]]
FGK101 - 107 Door/Window
[[Devices_ZWave_Fibaro_FGK
Sensor
101|Install/Config]]
FGWPF/E 101 - Wall Plug
[[Devices_ZWave_Fibaro_FGW
Switch
P|Install/Config]]
FGSS001 - Smoke Sensor
[[Devices_ZWave_Fibaro_FGS
S001|Install/Config]]
FGMS001 - Motion Sensor
[[Z-Wave_Fibaro_FGMS-001|I
nstall/Config]]
PowerNode 1 port
[[Devices_ZWave_GreenWave
_PowerNode|Install/Config]]
PowerNode 6 port
[[Devices_ZWave_GreenWave
_PowerNode|Install/Config]]
HSM100 Wireless
[[Devices_ZWave_HomeSeer_
Multi-Sensor
HSM100|Install/Config]]
ZDAN 300 Dimmer
[[Devices_ZWave_Duewi_ZDA
N_300|Install/Config]]
ZS 3500 Switch
[[Devices_ZWave_Duewi_ZS_
3500|Install/Config]]
ZMNHCA2
[[Devices_ZWave_Qubino_ZM
NHCA2|Install/Config]]
ZME_06435 Motor Control
[[Devices_ZWave_zwaveme_Z
ME_06435|Install/Config]]
Questions and answers
Unknown device in Open Z-Wave Commander
If you notice that your just added device is shown as unknown device e.g. "Unknown: type=xxxx, id=xxxx" in Z-Wave Commander,
means that the device isn't known yet in the open-zwave library. Please report this to the open-zwave project (
http://code.google.com/p/open-zwave/) with all relevant information. They will include it in the next revision of the open-zwave and this
will extend the known device database /plugin_assets/redmine_wiki_extensions/images/smile.png
The procedure to report it properly is as follows:
1) Check ~/domotiga/wrappers/domozwave/zwcfg*xml file and find your unknown device, and notice the following lines (this is an
example):
01/21/2015
5/7
<Manufacturer id="0115" name="Z-Wave.Me">
<Product type="1000" id="0004" name="Unknown: type=1000, id=0004" />
</Manufacturer>
2) Check ~/domotiga/wrappers/domozwave/open-zwave/config/manufacturer_specific.xml file, and locate the manufacturer section:
<Manufacturer id="0115" name="Z-Wave.Me">
<Product type="1000" id="0002" name="ZME_06433 Wall Flush-Mountable Dimmer"
config="zwave.me/ZME_06433.xml"/>
<Product type="1000" id="0003" name="ZME_06435 Motor Control"/>
</Manufacturer>
3) As you can notice, the Product type="1000" id="0004" is missing here.
4) The file needs to be modified, and the result will be:
<Manufacturer id="0115" name="Z-Wave.Me">
<Product type="1000" id="0002" name="ZME_06433 Wall Flush-Mountable Dimmer"
config="zwave.me/ZME_06433.xml"/>
<Product type="1000" id="0003" name="ZME_06435 Motor Control"/>
<Product type="1000" id="0004" name="ZME_064435 Wall Controller"/>
</Manufacturer>
5) Report the information from step 2 and 4 with the open-zwave library, that they know what to add to the manufacturer file.
Remove a failed Z-Wave device
It is possible that a device is faulty (or incorrectly removed from the Z-Wave network), from r1054 it is possible to remove it with the
following steps:
- Go to Z-Wave Commander
- Click on the node to be removed
- Go to tab "Controller"
- Click on "Remove Failed Node"
- Restart DomotiGa
Replace a failed Z-Wave device
It is possible that a device is faulty, from r1054 it is possible to replace it (same device type !) with the following steps:
- Go to Z-Wave Commander
- Click on the node to be replaced
- Go to tab "Controller"
- Click on "Replace Failed Node"
- Go to tab "Node"
- Click on "Refresh NodeInfo"
Known issues with the open-zwave library
Slow start-up
If you use many Z-Wave devices it can take a few minutes before the open-zwave library is fully initialized. During initialization the
open-zwave library queries all devices for all known parameters. Only after the full initialization you can start controlling your devices.
Querying all listening devices takes long
If you unplug one of your listening devices, DomotiGa still will try to query (request state, Watt, kWh, etc). This will timeout in the
open-zwave library resulting in a "delay" of 10-20 seconds per device.
Some On/Off/Dim commands aren't directly executed
If you have many Z-Wave devices and you query them regularly (e.g. every 5 minutes) then during the start of the query and until the
01/21/2015
6/7
LAST response comes back from the open-zwave library no On/Off/Dim command will be directly processed. Those On/Off/Dim
commands will be executed AFTER the LAST response is received. Thus if you do an On/Off/On, then our light will turn visible on, off
and then on again. See also the "Querying all listening devices take long". We are looking into this "issue", but the timing is trivial if
devices are unplugged or none-existing values are retrieved.
DomotiGa uses 100% CPU after unplugging the Z-Wave USB stick
This is an issue in the open-zwave library and not a bug in DomotiGa of the DomoZWave wrapper. The workaround is to restart the
ZWave interface or restart DomotiGa. The issue is logged with the open-zwave project (
http://code.google.com/p/open-zwave/issues/detail?id=111).
DomotiGa isn't getting any Z-Wave status updates anymore
There is a known bug in the Aeon Z-Wave USB stick that it will stop responding after 6-9 months. Restart of DomotiGa of your system
will not work either. Unplug and replug to the Aeon USB stick to resolve this issue.
Domotica Shops
- ezHome
- ROBBshop
- Tane Domotica Advies
Related Resources
-
Wikipedia about Z-Wave
Z-Wave device library
Z-Wave manuals by Z-Wave Europe
open-zwave library
- LinuxMCE
- Z-Wave API Notes
- Thread about New Z-Wave driver
{{comments}}
{{comment_form}}
{{count}}
Updated by: {{lastupdated_by}}, {{lastupdated_at}}
Access count: {{show_count}} since 2011-08-25
Attached Files
Files
openzwave.png
6.08 KB
01/21/2012
rdnzl
aeon-Door-Window-Sensor.pdf
994 KB
04/24/2012
rdnzl
Everspring-sm103_manual.pdf
133 KB
11/03/2012
Alexie
zwave-logo.jpg
9.04 KB
11/04/2012
rdnzl
Z-Wave Technical Basics-small.pdf
2.66 MB
11/14/2013
Alexie
domotiga-zwavecmdr-v2.png
145 KB
07/16/2014
Alexie
OpenTherm_Settings.png
38.6 KB
09/13/2014
danfos
OpenZWave_Commander_Control.png
18.7 KB
01/18/2015
danfos
01/21/2015
7/7