Linear NGDZ00-4 Garage Door

So I used this:

FROM homeassistant/home-assistant:0.76.0 
RUN set -e && \ 
    pip3 uninstall -y python-openzwave && \ 
    pip3 install --upgrade cython==0.24.1 && \ 
    pip3 install --no-cache-dir 'python_openzwave==0.4.9' --install-option="--flavor=ozwdev"`

There has to be something simple I’m missing.

ottom8@tinylinux:~/Desktop/Docker/homeassistant/build$ docker build .

Sending build context to Docker daemon  6.144kB
Step 1/2 : FROM homeassistant/home-assistant:0.76.0
 ---> 747727782e10

 Step 2/2 : RUN set -e &&     pip3 uninstall -y python-openzwave &&     pip3 install --upgrade cython==0.24.1 &&     pip3 install --no-cache-dir 'python_openzwave==0.4.9' --install-option="--flavor=ozwdev"
 ---> Using cache
 ---> 0cdf352abdee
Successfully built 0cdf352abdee

ottom8@tinylinux:~/Desktop/Docker/homeassistant/build$ docker-compose build

Building homeassistant

Step 1/2 : FROM homeassistant/home-assistant:0.76.0
 ---> 747727782e10
Step 2/2 : RUN set -e &&     pip3 uninstall -y python-openzwave &&     pip3 install --upgrade cython==0.24.1 &&     pip3 install --no-cache-dir 'python_openzwave==0.4.9' --install-option="--flavor=ozwdev"
 ---> Using cache
 ---> 0cdf352abdee
Successfully built 0cdf352abdee

Successfully tagged build_homeassistant:latest

ottom8@tinylinux:~/Desktop/Docker/homeassistant/build$ docker-compose up -d
Starting homeassistant ...
Starting homeassistant ... done

Then the log shows:

2018-08-18 14:53:00.424 Always, OpenZwave Version 1.4.2926 Starting Up

docker-compose.yml:

  version: '3'

  services:

    homeassistant:
    
      build:
        
        context: .

      container_name: homeassistant

      volumes:

        - ../data/:/config

        - /etc/localtime:/etc/localtime:ro
        
        - /etc/letsencrypt/:/etc/letsencrypt/

      devices:

        - /dev/ttyACM0:/dev/ttyACM0

      restart: always

      network_mode: host

The only thing I can think of that’d be occurring is HomeAssistant reinstalling python_openzwave to the old version. Are you able to open a shell into your docker container and check syslog for any messages saying python openzwave is being changed?

root@tinylinux:/usr/src/app# pyozw_check
-------------------------------------------------------------------------------
Import libs
Try to import libopenzwave
Try to import libopenzwave.PyLogLevels
Try to get options
Try to get manager
Try to get python_openzwave version
0.4.9
Try to get python_openzwave full version
python_openzwave version 0.4.9 (ozwdev-cython / Aug 18 2018 - 19:42:56)
Try to get openzwave version
python_openzwave version 0.4.9 (ozwdev-cython / Aug 18 2018 - 19:42:56)
Try to get openzwave version
1.5.0
Try to get default config path
/usr/local/lib/python3.6/site-packages/python_openzwave/ozw_config
Try to destroy manager
Try to destroy options
Try to import openzwave (API)

Does this not clearly show that the versions are correct? Yet the log shows a different version? I am so confused by this. Can someone just tar.gz me a docker container at this point…

Well I finally got it. In case this helps anyone else:

When I copied all of my home assistant files over from my previous installation, there was a file called “pyozw.sqlite” in the folder with my configuration.yaml. Deleted that file and restarted the docker and everything came up.

That is what I did and everything came back. I had to uninstall and secure install the garage door after the upgrade. I have noticed that the frontend is not updating the status of my zwave devices as quickly as it used too. I have a notification that texts me the status of certain things a minute and a half after they occur and the states are wrong.

And I did upgrade my github for anyone interested.

1 Like

So just to make sure I’m on the same sheet of music.

Is the 0.4.9 version with the cover files added. :slight_smile: Awesome, thanks for that!

Yes sir, should be…only need to change 0.4.3 to 0.4.9 in my instructions above.

Let me know if you have any issues.

And I had to remove and re-add the node

1 Like

When I get to doing this I’ll let you know if I have to remove/readd as well

Thanks so much. I updated my fork, and also took the time to add this update for clearing user codes for schlage locks.

Just curious to see if that works!

Awesome. I get so much help from people between discord and the forum. This is my very small (very very very) niche to give back. Happy it helps people.

There are a couple things I would like to add but I can’t figure out where they are. Somewhere there is an update to thermostats to add something I forgot lmao…I gave up trying.

Edit: I think it is ThermostatSetpointClass

I removed my garage door from HA, changed my Dockerfile to reflect 0.4.9, deleted the pyozw.sqlite file, rebuilt the image and started the container, re-added the garage door and the only thing coming up is the sensors and the zwave.xxxx. The cover doesn’t show up. I even tried reverting everything back to 0.75.3. I guess I could just use my backup files and do a re-add under 0.75.3 but this is super frustrating. IDK what else I could be missing.

I did just check the logs and I’m getting this.

Secure CommandClass 0x66 - NOT SUPPORTED - 0x66 is BARRIER!

@pdobrien3 I have always used your repo and for kicks I did a pull just to ensure I had the latest updates. IDK what else to look for. Any ideas?

My config/dockerfile is below.

FROM homeassistant/home-assistant:latest
ENV LOCAL_OPENZWAVE=/usr/local/share/open-zwave
COPY /open-zwave $LOCAL_OPENZWAVE

RUN set -e && \
    pip3 uninstall -y python_openzwave && \
    pip3 install --upgrade cython==0.24.1 && \
    pip3 install --no-cache-dir python_openzwave==0.4.9 --install-option="--flavor=dev"
        <Node id="73" name="" location="" basic="4" generic="64" specific="7" type="Secure Barrier AddOn" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" secured="true" query_stage="Complete">
                <Manufacturer id="14f" name="Linear">
                        <Product type="4744" id="3030" name="GD00Z-4 Garage Door Opener Remote Controller" />
                </Manufacturer>

It’s secure as well. There has to be something referencing something, somewhere.

EDIT and RESOLVED: Well, I sat here thinking… what else could I be missing. Then it hit me. I had an issue where another component had its version updated and for some reason, files got stored in my deps folder. I run HA on Docker so anything in deps really shouldn’t be there. Soon as I wiped it, rebuilt the image and container and refreshed the node, the cover came back!!! Hope this helps anyone else!

1 Like

Awesome. Sorry for the late response. Happy it helped.

Been waiting for this! Looks like there isn’t an agreement on the method yet. Personally I don’t care about specs LOL. I want any method of deleting the user code :slight_smile:

NP and thank goodness I got it working again!

1 Like

I was able to get this done!! And I did not have to remove and readd, athought I did do a heal network, then heal the device, then a restart. And I was suprised to see that it came back.

Thanks Again for the help with this

1 Like

Update: I tested this lock clear usercode PR and it worked great!

1 Like

I’m thinking of getting one of these to replace my OpenGarage (keeps disconnecting from wifi as of late). Are these still a pain to setup or is it mostly plug and play now?

Depends on how much “pain” a couple of commands can be :stuck_out_tongue:
It’s very easy for virtual environment installs, slightly more difficult for docker/HassIO users.

Instead of hardcoding the python_openzwave version into your scripts/Dockerfiles you could do this to always install the version that HomeAssitant requires:

hassVer=`pip3 show homeassistant | grep Version | cut -f2 -d' '`
curl -LO "https://raw.githubusercontent.com/home-assistant/home-assistant/$hassVer/requirements_all.txt"
pip3 install --no-cache-dir --constraint requirements_all.txt python_openzwave --install-option="--flavor=ozwdev" --no-deps

The first line finds out what version of home assistant you have installed, that’s assuming you installed it with pip3.
The second line fetches the requirements file from git specific to the version of home assistant you have installed.
The third line installs python_openzwave, using the requirements file as a constraints file, meaning it will install the version specified in the requirements file.

For more info on pip constraints file check this. Note that the constraints file can be named anything you want and has the same/similar format as the requirements file.

No more hardcoding versions FTW!

1 Like

I have what is probably an “obvious” question.

I get confused by the versions and the and the installs
For example, I get that open-zwave is on 1.4.xx and that 1.5.xx is the dev version on git hub, and that 1.6.xx is the future “new/current” version.

But how does that relate to 0.4.3 vs 0.4.9

I’m doing my own git repository with 1.4.xxx with a few files updated for this opener, but just confused how that ties into python_openzwave.

Thanks for clarifying