Linear NGDZ00-4 Garage Door

This tells me you are not in your venv, use the following command:

source /srv/homeassistant/homeassistant_venv/bin/activate

Then pip list should show a very large list of items similar to the following:

...
ha-ffmpeg (1.9)
home-assistant-frontend (20180112.0)
homeassistant (0.61.1)
...

This is when you execute pip3 install 'python_openzwave==0.4.0.35' --install-option="–flavor=ozwdev"

Does anyone have instructions on how to do this with the new HASSIO image running on Alpine?

There is no simple way. It was discussed at some point in this thread and to sum it up, its too much work.

Thx for the reply. Well, I guess I’ll figure something else out. :slight_smile:

0.63 updates python-openzwave to 4.1.3. Any chance this adds in the barrier class to let this device work?

2 Likes

From what I can tell my barrier support is still working, I didn’t issue any commands to update python-openzwave myself.

Guessing you had the dev version prior to 0.63 though correct? I’m on HassIO wondering if this release adds support in the main version. Won’t be able to test for a day or two.

You’re assumption is correct. All you can do is test and see with HassIO.

I would say no. Barrier support was added only to the Dev branch of the open-zwave project. python-openzwave pulls updates from the master branch, which typically only includes device updates (xml files). Barrier support has not been merged from Dev to master yet (see https://github.com/OpenZWave/open-zwave/issues/490 and https://github.com/OpenZWave/open-zwave/pull/1435).

There are a couple of forks that have applied the Barrier support patches to master branch: 1) https://github.com/bitdog-io/open-zwave and 2) https://github.com/ryanwinter/open-zwave. Last year I tried the Dev branch (see my earlier comments above) and while it allowed the Linear to function with the barrier commands, the zwave library was always crashing when restarting the zwave network. Since using the bitdog-io fork the Linear is working and I’m not getting any crashes; everything seems to be working well as far as I can tell.

You might be out of luck in HassIO until the Barrier changes are merged. I solved this in my Hass Virtualenv install by cloning a copy of the bitdog-io repository and installing python-openzwave with the “dev” flavor (not the “ozwdev” flavor). I’ll have to do this each time I upgrade Hass for now. Something like this is how I installed it (from memory):

# go to some directory where you can download open-zwave
cd /tmp
git clone https://github.com/bitdog-io/open-zwave
export LOCAL_OPENZWAVE="$PWD/open-zwave"
# activate venv here
pip install python_openzwave --install-option="--flavor=dev" --no-deps

Note that the above installed the latest pyozw 0.4.4, which is not the version used by Hass. You’ll either need to modify the Hass zwave component’s init.py file to set the correct version, or set the version number in the pip install command, otherwise Hass will reinstall pyozw which will lose the Barrier patches. I modified the __init__.py file. Either way, if the version changes in a new Hass release, you’ll need to repeat this.

1 Like

Yeah don’t go with the dev branch, you will be on your own when it comes to issues.

You can install 0.4.3 (the current version used by HASS) directly with the following pip3:

pip3 install python-openzwave==0.4.3 --install-option="--flavor=dev" -v

It’s missing from your zwave node management?

Are you running the latest dev version of openzwave? The current release doesn’t have support for the garage door.

Try pip3 install 'python_openzwave==0.4.0.35' --install-option="–flavor=ozwdev" not sure where the funky ’ came from in the other post.

Remember, this all depends on the version of python-openzwave listed in requirements_all.txt for your install of HA.

If the currently installed version is not the same as the version listed in requirements_all.txt, then HA will install the version it wants in the deps directory (which will not be the dev version) and uses it.

When I had issues getting this all working, which sometimes still happens when python-openzwave requirement bumps and I for get to update my Docker install line, I alway check the deps directory to make sure it is empty. If there is something in the deps directory, I then know I am not installing the right version of some package and I know to fix it.

My Docker patch:

RUN pip3 uninstall -y python-openzwave && \
    pip3 install --no-cache-dir 'python_openzwave==0.4.3' --install-option="--flavor=ozwdev"

You ran the uninstall option per your post, you need to use pip3 install --no-cache-dir 'python_openzwave==0.4.3' --install-option="–flavor=ozwdev"

I wouldn’t install the ozwdev flavor, this is dev software and prone to unexpected behaviour. I would install the fork I have created of the master branch, with the cover patch as outlined here.

  1. Clone the openzwave master patched fork
  2. setup the environment
    • SETENV LOCAL_OPENZWAVE [location of cloned openzwave fork]
  3. Install 0.4.3 version, which is the current version required by HA.
    • pip3 install --no-cache-dir ‘python_openzwave==0.4.3’ --install-option=“–flavor=dev”

Lol, it took me a few weeks to get the cover patch working. I couldn’t use the dev branch because it doesn’t even compile on freebsd, originally I patched it but that was annoying to keep up to date.

You can pull from my fork every now and then, I do sync the config directory occasionally, but the master branch is very stable so I wouldn’t worry to much unless you are seeing a device not showing up correctly.

SETENV/SET/EXPORT: you just need to set then environmental variable LOCAL_OPENZWAVE to the location of wherever you cloned the openzwave git repo to.

Once you have the new fork up and running, you probably just need to refresh the garage door node through the HA zwave interface. I believe this will sync the new cover config. If this doesnt work, then yeah removing and re-adding the node should fix it.

I’m having the same issue everything was working find with 0.62.1 and pip3 install ‘python_openzwave==0.4.0.35’ --install-option="–flavor=ozwdev"

But with 0.63.1 no luck.

I just did the following and still not seeing my unit as a barrier/cover:

systemctl stop home-assistant.service
source /srv/homeassistant/homeassistant_venv/bin/activate
pip3 uninstall python_openzwave
cd /srv/homeassistant
git clone https://github.com/ryanwinter/open-zwave.git
export LOCAL_OPENZWAVE=/srv/homeassistant/src/open-zwave
pip3 install --no-cache-dir ‘python_openzwave==0.4.3’ --install-option="–flavor=dev"
systemctl start home-assistant.service

1 Like

I’m assuming that everything went finished without error.

  1. Does the item show up in the zwave control panel? If so, what is the node information?
  2. Did you try refreshing the node in the zwave control panel? I believe this will load the new configuration.

You should see the following through the zwave control panel node information:

manufacturer_name: Linear
product_name: GD00Z-4 Garage Door Opener Remote Controller

This is the information I get, don’t know what much of it means :slight_smile:

averageRequestRTT: 410
averageResponseRTT: 599
capabilities: beaming,routing,listening
friendly_name: Garage Door
is_awake: true
is_failed: false
is_info_received: true
is_ready: true
is_zwave_plus: true
lastRequestRTT: 535
lastResponseRTT: 625
manufacturer_name: Linear
max_baud_rate: 40000
neighbors: 1,3,5,6,7,8,9,10,11,13,15,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,43,45,46,47
new_entity_id: zwave.garage_door
node_id: 16
node_name: Garage Door
old_entity_id: zwave.garage_door_16
product_name: Unknown: type=4744, id=3530
query_stage: Complete
receivedCnt: 5
receivedDups: 0
receivedTS: 2018-02-12 20:21:22:673
receivedUnsolicited: 0
retries: 0
sentCnt: 9
sentFailed: 0
sentTS: 2018-02-12 20:21:22:048