Fork me on GitHub

pimatic-zwave-usb by Tim van de Vathorst (timvdv) | github | npm

zwave-usb-plugin

Prerequisites

important notice

openzwave needs to be installed on your system before you can use this plugin!! Please read this first: node-openzwave-shared

It has lots of README files which guide you through the installation process.

Equipment

You will also need a ZWave USB stick.

  • Tested with the The Aeotec Z-Stick Gen5.
  • Tested with a Z-wave plus USB stick Model name: ZU1401EU. I think other zwave sticks will also work.

Tested Z-Wave devices

  • Danfoss LC13
  • a power plug
  • Door/Window sensor from Devolo. This device has a contact sensor, temperature sensor and lightness sensor included.

What can this plugin do?

  • Control Devices

    • Power switch (class id: 32)
    • Thermostat (class id: 67)
    • Door/Window Sensor (class id: 49) and (class id: 48)
      • contact and temperature support
  • Auto-discover ZWave devices

View all command classes

Plugin settings in Pimatic

Example USB port for Linux: '/dev/ttyUSB0' Example USB port for Windows '\\.\COM3'

    {
      "plugin": "zwave-usb",
      "usb": "/dev/ttyUSB0",
      "debug": false
    }

Device settings in Pimatic

I suggest using auto-discovery but if you want to add it manually:

For a thermostat or a window contact sensor its possible to configure a sync timeout. This means that in case the z-wave device didnt update his values in this timeframe (configured in minutes) then the device is not synced anymore with pimatic.

thermostat device

    {
      "id": "zwave-thermostat",
      "name": "ZWave Thermostat",
      "node": 4,
      "class": "ZwaveThermostat"
      "syncTimeout": 45
    }

PowerSwitch device

    {
      "id": "zwave-switch",
      "name": "ZWave PowerSwitch",
      "node": 5,
      "class": "ZwavePowerSwitch"
    }

door window contact sensor

    {
      "id": "zwave-window-sensor",
      "name": "ZWave WindowSensor",
      "node": 3,
      "class": "ZwaveWindowSensor"
      "syncTimeout": 45
    }

Note

I kept getting the error "libopenzwave.so.1.4" in the "/usr/local/lib64" Searched for this on Google and found the following solution (I use Ubuntu 14.04 so not sure if this will work for every system):

  sudo ldconfig /usr/local/lib64

I automated this by adding ldconfig /usr/local/lib64 to my Pimatic startup script.

To-do

Support more devices

In the future I definitely want to support more devices. I only have two ZWave devices at the moment, If you want me to implement more devices you can donate them. Just send me a message on the Pimatic forum. You can also extend the plugin yourself, just create a pull request!

Plugin Config Options

Options for pimatic zwave
OptionDescriptionDefault
usb
string
the zwave usb port: COM{1} for Windows and /dev/ttyS{0} or /dev/ttyUSB{0} for Linux
"/dev/cu.usbmodem1421"
debug
boolean
debug output on or off
false

Device Config Options

pimatic-zwave-usb device config schemas

ZwaveThermostat

ZWave thermostat options
OptionDescriptionDefault
node
integer
The zwave nodeid
0
guiShowTemperatureInput
boolean
Show the temperature input spinbox in the gui
true
guiShowValvePosition
boolean
Show the valve position in the gui
true
syncTimeout
integer
After this timeout the sync status is reset to false, in minutes
0

ZwavePowerSwitch

ZWave powerswitch options
OptionDescriptionDefault
node
integer
The zwave nodeid
0

ZwaveDimmer

ZWave dimmer options
OptionDescriptionDefault
node
integer
The zwave nodeid
0

ZwaveWindowSensor

ZWave window sensor options
OptionDescriptionDefault
node
integer
The zwave nodeid
0
syncTimeout
integer
After this timeout the sync status is reset to false, in minutes
0
pimatic-zwave-usb is written by Tim van de Vathorst (timvdv)