New Add-on: Open ZWave Control Panel (OZWCP)

Tags: #<Tag:0x00007f77ffd26f08> #<Tag:0x00007f77ffd264e0>

@jkeljo could you make option available, where user can choose to install the dev branch of openzwave. There is more zwave devices supported in dev branch than in the master. I know that I could clone your repo but I think that, this feature should be implemented in your addon. What you think?

@Jullimullins, I thought about doing that. Unfortunately, making it an option means building on first run instead of at install time, which is slow and introduces a bunch of potential failure modes that don’t otherwise exist.

Instead, I’ve created a different branch in my repo that uses the dev branch of OZW instead. You can add it as a repository using this URL: https://github.com/jkeljo/hassio-addons#ozw-dev

Let me know how that works out! Should you ever need a newer version of the dev branch, I’ll happily accept a pull request updating the build.json in that branch.

Excellent.

One more thing, will hass.io zwave use the openzwave-dev branch or do I still need to copy the openzwave-dev config folder to hass.io and use configuration.yaml to force hass to use the dev barch (see: Eurotronic Spirit temperature not changing)

@Jullimullins the version of OZW used by the add-on is separate from the one used by Hass.io. They do both honor the options.xml in your /config directory, so you could put a ConfigPath option in there that directs both of them to your own set of manufacturer XML files.

Thank for the advice.

Hi,

Great Add-On to give some more options! I have some issues however using the add-on. I got the add-on installed and try to start it up. After a minute I get access to the control panel but doesn’t recognize my controller (I use UZB from zwave.me). When I click in initialize with the usb box checked, nothing happens. When I refresh the screen it looks like the whole web interface crashed cause no connection is established anymore.

This is my output of the add-on:
[15:43:11+0000] INFO ----> Stopping hass.io to avoid network, config, and log conflicts…
[15:43:44+0000] INFO ----> Starting ozwcp…
2018-08-24 15:43:44.668 Always, OpenZwave Version 1.4.2992 Starting Up
webserver starting port 8090
Warning: MHD_USE_THREAD_PER_CONNECTION must be used only with MHD_USE_INTERNAL_POLLING_THREAD. Flag MHD_USE_INTERNAL_POLLING_THREAD was added. Consider setting MHD_USE_INTERNAL_POLLING_THREAD explicitly.
post: key=dev data= size=0
post: key=fn data=open size=4
post: key=usb data=true size=4
2018-08-24 15:43:54.529 Info, Setting Up Provided Network Key for Secure Communications
2018-08-24 15:43:54.530 Warning, Failed - Network Key Not Set
2018-08-24 15:43:54.530 Info, mgr, Added driver for controller HID Controller
post: key=usb data= size=0
2018-08-24 15:43:54.530 Info, Opening controller HID Controller
2018-08-24 15:43:54.530 Info, Open HID port HID Controller
2018-08-24 15:43:54.533 Error, Cannot find specified HID port with VID:1b5f and PID:0x0001.
2018-08-24 15:43:54.534 Error, Enumerating connected HIDs:
2018-08-24 15:43:54.534 Error, Failed to open HID port HID Controller
/root/ozwcp.sh: line 29: 23 Segmentation fault (core dumped) /root/open-zwave-control-panel/ozwcp

Could anyone support me in this?

Jeff

I’ve never been able to make the USB checkbox work myself, even though I also use a USB zwave controller… try leaving that unchecked and instead entering the same device path you have in the zwave section of your home assistant config. It’ll be something like /dev/ttyACM0.

Fresh install of hassos-rpi3-1.11 32-bit (0.79.3). The only modification was to put
zwave:
usb_path: /dev/ttyACM0

in configuration.yaml
Configured some zwave devices with no issue.

Tried installing both versions of ozwcp, 1.0.3, and ozwcp-dev 1.0.2. Both installs report this error in the log:

[09:16:31+0000] INFO ----> Stopping hass.io to avoid network, config, and log conflicts… parse error: Expected string key before ‘:’ at line 1, column 4 [09:16:31+0000] ERROR ----> Unknown HTTP error occured

Does anyon ehave any idea what could be causing this?

Could be very well related to the issue https://github.com/mr-bjerre/hassio-remote-backup/issues/9, which links to a change that has been made in hassio itself. See also https://github.com/home-assistant/hassio/issues/692

The issue with the remote backup addon has been fixed by adding the correct role.

I would open a ticket for this addon and link to the hassio issue.

Edit: a ticket is already open it seems

Hope it helps

Hi All,

I am having trouble installing the add-on

When I click on Install it looks like nothing is happening.

When I check my Log File I see this:

18-11-09 15:06:07 INFO (SyncWorker_13) [hassio.docker.addon] Start build 13861ffc/amd64-addon-ozwcp:1.0.4
18-11-09 15:06:07 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 390, in start
    resp = await self._request_handler(request)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py", line 366, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 106, in impl
    return await handler(request)
  File "/usr/local/lib/python3.7/site-packages/hassio/api/security.py", line 137, in token_validation
    return await handler(request)
  File "/usr/local/lib/python3.7/site-packages/hassio/api/utils.py", line 32, in wrap_api
    answer = await method(api, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/hassio/addons/addon.py", line 693, in install
    if not await self.instance.install(self.last_version):
  File "/usr/local/lib/python3.7/site-packages/hassio/utils/__init__.py", line 33, in wrap_api
    return await method(api, *args, **kwargs)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.7/site-packages/hassio/docker/addon.py", line 307, in _install
    return self._build(tag)
  File "/usr/local/lib/python3.7/site-packages/hassio/docker/addon.py", line 321, in _build
    **build_env.get_docker_args(tag))
  File "/usr/local/lib/python3.7/site-packages/docker/models/images.py", line 258, in build
    resp = self.client.api.build(**kwargs)
  File "/usr/local/lib/python3.7/site-packages/docker/api/build.py", line 154, in build
    path, exclude=exclude, dockerfile=dockerfile, gzip=gzip
  File "/usr/local/lib/python3.7/site-packages/docker/utils/build.py", line 31, in tar
    root=root, fileobj=fileobj, gzip=gzip, extra_files=extra_files
  File "/usr/local/lib/python3.7/site-packages/docker/utils/build.py", line 68, in create_archive
    fileobj = tempfile.NamedTemporaryFile()
  File "/usr/local/lib/python3.7/tempfile.py", line 538, in NamedTemporaryFile
    prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)
  File "/usr/local/lib/python3.7/tempfile.py", line 126, in _sanitize_params
    dir = gettempdir()
  File "/usr/local/lib/python3.7/tempfile.py", line 294, in gettempdir
    tempdir = _get_default_tempdir()
  File "/usr/local/lib/python3.7/tempfile.py", line 229, in _get_default_tempdir
    dirlist)
FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']

I’ve tried to install other Add-Ons to be certain it wasn’t happening to all Add-ons, but they were installing fine.

Hello, was wondering if you could help me with something. I installed and ran your add-in without any issues.

In the OZWCP i did add names to each device to make it easier. Then did a save and restared hassio and stopped your plugin. However in hassio, all my zwave devices, except for two are not named correctly.

|[zwave.2gig_technologies_ct101_thermostat_iris]
|[zwave.aeotec_dsb45_water_sensor]  
|[zwave.aeotec_zw090_zstick_gen5_us]
|[zwave.back_door_porch]   <--- name correct
|[zwave.front_door_porch]    <--- name correct
|[zwave.leviton_dz15s1bz_decora_smart_switch]
|[zwave.leviton_dz15s1bz_decora_smart_switch_2]
|[zwave.leviton_dz15s1bz_decora_smart_switch_3]
|[zwave.leviton_dz15s1bz_decora_smart_switch_4]
|[zwave.leviton_dz6hd1bz_decora_600w_smart_dimmer]
|[zwave.leviton_dz6hd1bz_decora_600w_smart_dimmer_2]
|[zwave.linear_lb60z1_dimmable_led_light_bulb]
|[zwave.linear_lb60z1_dimmable_led_light_bulb_2]

I re-ran your addon and the names are still listed correctly there. Not sure why they are not being imported inthe hassio.

I hope that you can find a way to keep the ozwcp log display update rate from slowing down the whole ozwcp experience.

I’ve got the ozwcp hassio add-on running on a rasbp3b+. When I initialize against the primary controller the log display walks through the devices (24 of them) to acquire their status’. One device is a secondary controller (Leviton RZC0P serial/zwave). This one has 128 associations it needs to address, so there is a lot of data to display.

It appears the ozwcp log’s “write” throughput cannot keep up with the source data stream. For example, at the moment, the displayed ozwcp log time stamps are more than an hour behind the actual clock time. This is at about half way through the controller’s 128 associations. The log display is updating very slowly.

I’m sure the device update finished long ago, but I can’t use the ozwcp interface until it thinks it has finished the update. More clearly, its now 16:32, and the time stamps on the log as it slowly updates the display are showing 15:17.

Sorry, I’m the wrong person (and this is the wrong community) to be talking to about improving OZWCP itself. :frowning: I wrote the add on to get it running from Hass.io, but I’m not involved in developing OZWCP.

Mea Culpa. I do really appreciate the add-in, particularly for reviewing entity configs, for renaming entities, and for casting configurations to secondary controllers, once they load :wink:.
Cheers!

Actually, I think the issue is that ozcp writes so much information when it initializes that it overwhelms the browser. Time stamps on the screen writes are currently showing 45 minutes before clock time.

Any chance you could add an option to redirect the ozwcp initialization/log output to a file? Or, to specify the logging level to dampen the deluge?

Does this man page help? https://github.com/OpenZWave/open-zwave-control-panel/pull/58/files#diff-0
Or this about Options, specifically for log level specification? https://github.com/OpenZWave/open-zwave/wiki/Config-Options. I notice that ozwcp is not writing both to the screen and to the OZW_log.txt file in /config, for what that’s worth.

It takes hours to get the ozwcp initialization finished for my 24 zwave devices that include a secondary controller that has a potential 128 groups that must be cycled through, seemingly recursively… The ozwcp interface is unusable until this process completes.

1 Like

As a followup, I changed the openzwave logging parameter in the “options.xml” file in the config directory from true to false and turned off consoleoutput. OZWCP initializes in about 25 seconds now, instead of hours!. (This completely turns off logging).
<Option name=“ConsoleOutput” value=“false”/>
<Option name=“logging” value=“false”/>

There are other less harsh options, see: https://github.com/OpenZWave/open-zwave/wiki/Config-Options

1 Like

Hmm. It seems like it can’t see my controller.
UZB1 on ubuntu server.

Paste or type your controller’s path into the “Device name” field, like /dev/xxxx, then select “Initialize.” (OZCP does not find the controller by itself for you). Do NOT select USB. Wait until the initialization process completes before beginning to make changes.

Be sure to select the Save button then the Close button in OZCP, and then Stop the Addin from HassIO, before you restart HA.

I installed this and now HASS will not start. How do I manually remove this plugin from command line? I am running HASS on Ubuntu server.

I doubt that the plug-in would be preventing Hass from starting… plugins each have their own Docker container, so they’re reasonably isolated from Hass itself. What does home-assistant.log have to say about why it isn’t starting?

Regarding how to uninstall plugins from the command line…that’s probably better asked as a top-level thread rather than buried here. There might be an incantation on the hassio command to do it. If not, and you can login to the host OS, you could use the Docker CLI to delete the plugin’s Docker container.