Project Home‎ > ‎Documentation‎ > ‎Interfaces‎ > ‎


Supported devices.

Pretty much anything that OpenZwave supports should work.  Tested devices are:

  •     Aeotec Z-Stick Series 2
  •     Aeotec Z-Stick Gen5

Build openzwave and python-openzwave

Aeon Labs Z-Wave requires python-openzwave, which must be compiled from source. It's highly recommend you use the archived source code. Version 3.0+ no longer requires Cython, which was the source of most of the build/seg fault issues with python-openzwave. 3.0beta2 has been tested to work on both a 64bit Ubuntu 14.04 system and a Raspberry PI. Instructions are at

The config for OpenZwave will be located in the extracted archive, at openzwave/config. I recommend copying the config to your system /etc:

sudo cp -R openzwave/config /etc/openzwave
sudo chown -R pyto:root /etc/openzwave
sudo chmod 660 /etc/openzwave/options.xml

Also note that if you have any security devices in your Zwave network, you will need to set the NetworkKey option in options.xml. That network key is why it's recommend to change the file permissions on options.xml, so only root and the pyto user can read it.


Like with all other interfaces. Make sure the pyto user account owns or otherwise has permissions to use the device. You may want to give your own usr account access as well.

sudo chown youruseraccount:pyto /dev/yourzwavestick
sudo chmod 770 /dev/yourzwavestick


sudo chown pyto:pyto /dev/yourzwavestick
sudo chmod 770 /dev/yourzwavestick

Make Permissions Permanent

Add the following either /etc/udev/rules.d or /lib/udev/rules.d (Similar procedure can be used for other serial interfaces. lsusb -v can grab the necessary ATTRS info.)

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="0001", SYMLINK+="zwave", GROUP="pyto", OWNER="pyto"

ozwsh (OpenZWave Shell, for testing)

sudo pip install urwid louie
/ --device=/dev/yourzwavestick