Public Repository

Last pushed: a year ago
Short Description
OpenZwave Control Panel for RPI3
Full Description

The creation of this image was a little bit tricky. Without further configuration the ozwcp (open-zwave-control-panel) program is writing its saved files into the same directory where it is installed. But there is an options.xml file to configure zwavelib. ozwcp uses this library zwavelib to write the zwcfg_xxxx.xml and zwscene.xml files. These options.xml is included in the image and looks like this:

    <Options xmlns='http://code.google.com/p/open-zwave/'>
      <Option name="UserPath" value="/root/" />
      <Option name="logging" value="true" />
      <Option name="Associate" value="true" />
      <Option name="NotifyTransactions" value="false" />
      <Option name="DriverMaxAttempts" value="0" />
      <Option name="SaveConfiguration" value="true" />
    </Options>

Look at the option UserPath. Here you can see the directory where the resulting zwcfg_xxxx.xml and zwscene.xml files will be saved and therefor a docker VOLUME /root to mount to a host directory is created.

You can also secure your z-wave network. Therefore you have to generate a security key with the following command:


cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g'

Then you have to add a line in your options.xml like this where you but in the hex from the previous command without the last comma (as an example):


<Option name="NetworkKey" value="0xEC, 0x0C, 0xDB, 0x1A, 0x6A, 0x3C, 0xF6, 0x64, 0xD3, 0xF0, 0xE1, 0xB3, 0x3A, 0x25, 0xAD, 0x72" />

Please note - very important!
You have to put the "config"-directory from https://github.com/OpenZWave/open-zwave.git in that host directory.

Run:
docker run -d --name ozwcp --net=host --device=/dev/$(readlink /dev/zwave):/dev/zwave:rwm -v /etc/localtime:/etc/localtime:ro -v /{Our host directory with the config dir}:/root:rw fgabriel/rpi-open-zwave-control-panel:latest

The $(readlink /dev/zwave) is used to tell docker the true device name. If you use the symlink /dev/zwave, it won't work - docker can't handle symlinks for devices.

Docker Pull Command
Owner
fgabriel