Linear NGDZ00-4 Garage Door

I thought Hasbain started with the right version. So I need to run the update also mention above also?

Upadate:
@armills explained that what I need is only in the dev branch.
So @first0f9 is this script you posted good for Hassbain?
https://community.home-assistant.io/t/linear-ngdz00-4-garage-door/2136/162?u=penright

Off topic … is firstof9, means you’re the oldest of 9 kids?

I think the paths are different, so you’d need to modify the paths.

I am the oldest, but not of 9 :smile:
It’s a Star Trek: TNG thing :wink:

Oh yea, 7 of 9…

Ok let me download it, digest it some, and post it back for peer review. Also, I think it about time I back up the image. :slight_smile:

@firstof9

ok

Started running the patch script one line at a time.

I got to line 30 (pip3 uninstall -y python-openzwave)

Error returned is “Cannot uninstall requirement python-openzwave, not installed”

Ran

$ pip3 list

As user home-assistant in the venv and it didn’t show up in the list.

As a double check i also ran it as user pi and it wasn’t there either

I went to the python-openzwave directory and ran

$ make install

It said it was complete.

Ran $ pip3 list again, nothing.

Ran $ pip list, nothing for either user pi or home-assistant

I checked back through the install logs for AIO & found the following:

[localhost] sudo: git checkout python3
[localhost] out: error: pathspec ‘python3’ did not match any file(s) known to git.
[localhost] out:

Warning: sudo() received nonzero return code 1 while executing ‘git checkout python3’!

and a whole bunch of syntax warnings like the following:

[localhost] out: File “build/bdist.linux-armv7l/egg/socketio/virtsocket.py”, line 365
[localhost] out: except (ValueError, KeyError, Exception), e:
[localhost] out: ^
[localhost] out: SyntaxError: invalid syntax
[localhost] out:

Should i just continue on through the script at this point?

And as a side note:

Do the steps from my last post above (#207) look like they are correct?

It may help someone else trying to follow along with this long and winding thread. I was getting confused and I’m following pretty closely. :smile:

And that file is not in that location in my setup:

It is located here:

/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/libopenzwave-0.3.3-py3.4-linux-armv7l.egg

should i replace the file you posted to there?

@firstof9 This was the script that I ran … https://hastebin.com/ajahicotot.bash
this was what was left in the window after running the .sh https://hastebin.com/oxoceqesus.coffeescript
still getting the 66 error.

and @firstof9, I tried that for me and still got the 66 error.
I can see Node012, Decrypted Packet: 0x00, 0x66, 0x03, 0xff and the 0xff changes to 0x00 when move the tilt sensor.
ff is door up and 00 is door down.
But I still see the “don’t understand 66 class” message.

Ya give it a shot. You have a copy of the old one so if it doesn’t work just put your old one back.

@penright Ok your’s looks compiled without error except for the ozwcp, which isn’t a big deal.

Step 0: Stop homeassistant
Step 1: cd /srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/zwave
Step 2: sudo nano __init__.py
Step 3: Line 40 make it look like this:

#REQUIREMENTS = ['pydispatcher==2.0.5', 'python_openzwave==0.4.0.31']
REQUIREMENTS = ['pydispatcher==2.0.5']

Step 4: CTRL X to save and close that file
Step 5: cd /home/homeassistant/.homeassistant/deps
Step 6: Here either rm -Rf * or try to find anything openzwave related and delete it (easier to rm -Rf *)
Step 7: Start homeassistant

HA should start re-downloading anything you deleted and start using the openzwave libs you compiled.

@finity This might help you too.

@firstof9 thanks.
@firstof9 @finity here are my results and notes.

First, I found REQUIREMENTS in between the "from … " and “CONF_…”

First time I restarted hass looks like zwave did not load. I restarted and dropped down the node in the zwave section and watched it probed and waited till all showed completed.
Few notes:
Looks like all the zwave devices lost their names

I now see an entity cover. and it’s state is open, but if I go into the dev {{ states.cover.unknown_id014f_unknown_type4744_id3530_barrier_state_label.state }} it shows open but does not change when I move the sensor. The ozw log shows it is communicating without error.

2017-07-19 11:57:21.570 Detail, Node012,   Received: 0x01, 0x08, 0x00, 0x04, 0x00, 0x0c, 0x02, 0x98, 0x40, 0x25
2017-07-19 11:57:21.571 Info, Node012, Received SecurityCmd_NonceGet from node 12
2017-07-19 11:57:21.571 Info, NONCES: 0x56, 0xd9, 0x6f, 0x00, 0x58, 0x99, 0xd5, 0x3b
2017-07-19 11:57:21.571 Info, NONCES: 0xad, 0x7b, 0x7b, 0x4e, 0xb6, 0x2e, 0x9f, 0x0a
2017-07-19 11:57:21.571 Info, NONCES: 0x6a, 0xb2, 0xac, 0xa3, 0x58, 0x2f, 0x9b, 0xa0
2017-07-19 11:57:21.571 Info, NONCES: 0xbb, 0x54, 0xbd, 0x33, 0xeb, 0xaf, 0xa7, 0x41
2017-07-19 11:57:21.571 Info, NONCES: 0xfa, 0xbe, 0xe7, 0xfb, 0xaa, 0x7f, 0x29, 0xd4
2017-07-19 11:57:21.571 Info, NONCES: 0xe3, 0x13, 0xa6, 0x3f, 0xa1, 0x3a, 0xb3, 0x51
2017-07-19 11:57:21.572 Info, NONCES: 0x54, 0x3b, 0x12, 0xa2, 0x39, 0xa6, 0x82, 0xf8
2017-07-19 11:57:21.572 Info, NONCES: 0x48, 0x8b, 0xb8, 0x1c, 0x78, 0x97, 0xf1, 0x73
2017-07-19 11:57:21.572 Info, Node012, Sending (Send) message (Callback ID=0x01, Expected Reply=0x00) - Nonce_Report - 0x01, 0x11, 0x00, 0x13, 0x0c, 0x0a, 0x98, 0x80, 0xbb, 0x54, 0xbd, 0x33, 0xeb, 0xaf, 0xa7, 0x41, 0x05, 0x01, 0x24:
2017-07-19 11:57:21.580 Detail,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2017-07-19 11:57:21.581 Detail,   ZW_SEND_DATA delivered to Z-Wave stack
2017-07-19 11:57:21.598 Detail,   Received: 0x01, 0x07, 0x00, 0x13, 0x01, 0x00, 0x00, 0x03, 0xe9
2017-07-19 11:57:21.598 Detail,   ZW_SEND_DATA Request with callback ID 0x01 received (expected 0x01)
2017-07-19 11:57:21.616 Detail, Node012,   Received: 0x01, 0x1d, 0x00, 0x04, 0x00, 0x0c, 0x17, 0x98, 0x81, 0x14, 0xd8, 0x9c, 0x9b, 0xa8, 0xa6, 0xf5, 0xe4, 0xce, 0x36, 0x14, 0x6d, 0xbb, 0x80, 0x17, 0xf3, 0x63, 0x0a, 0xa7, 0x46, 0xde, 0x38
2017-07-19 11:57:21.616 Info, Raw: 0x98, 0x81, 0x14, 0xd8, 0x9c, 0x9b, 0xa8, 0xa6, 0xf5, 0xe4, 0xce, 0x36, 0x14, 0x6d, 0xbb, 0x80, 0x17, 0xf3, 0x63, 0x0a, 0xa7, 0x46, 0xde, 0x38
2017-07-19 11:57:21.616 Detail, Node012, Decrypted Packet: 0x00, 0x66, 0x03, 0xff
2017-07-19 11:57:21.616 Detail, 
2017-07-19 11:57:21.616 Detail, Node012, Refreshed Value: old value=0, new value=4, type=list
2017-07-19 11:57:21.616 Detail, Node012, Changes to this value are not verified
2017-07-19 11:57:21.617 Detail, Node012, Notification: ValueChanged
2017-07-19 11:57:28.631 Detail, Node012,   Received: 0x01, 0x08, 0x00, 0x04, 0x00, 0x0c, 0x02, 0x98, 0x40, 0x25
2017-07-19 11:57:28.631 Info, Node012, Received SecurityCmd_NonceGet from node 12
2017-07-19 11:57:28.632 Info, NONCES: 0x56, 0xd9, 0x6f, 0x00, 0x58, 0x99, 0xd5, 0x3b
2017-07-19 11:57:28.632 Info, NONCES: 0xad, 0x7b, 0x7b, 0x4e, 0xb6, 0x2e, 0x9f, 0x0a
2017-07-19 11:57:28.632 Info, NONCES: 0x6a, 0xb2, 0xac, 0xa3, 0x58, 0x2f, 0x9b, 0xa0
2017-07-19 11:57:28.632 Info, NONCES: 0xbb, 0x54, 0xbd, 0x33, 0xeb, 0xaf, 0xa7, 0x41
2017-07-19 11:57:28.632 Info, NONCES: 0x88, 0x16, 0x42, 0xe0, 0xaf, 0x17, 0x1c, 0x5c
2017-07-19 11:57:28.632 Info, NONCES: 0xe3, 0x13, 0xa6, 0x3f, 0xa1, 0x3a, 0xb3, 0x51
2017-07-19 11:57:28.632 Info, NONCES: 0x54, 0x3b, 0x12, 0xa2, 0x39, 0xa6, 0x82, 0xf8
2017-07-19 11:57:28.632 Info, NONCES: 0x48, 0x8b, 0xb8, 0x1c, 0x78, 0x97, 0xf1, 0x73
2017-07-19 11:57:28.633 Info, Node012, Sending (Send) message (Callback ID=0x01, Expected Reply=0x00) - Nonce_Report - 0x01, 0x11, 0x00, 0x13, 0x0c, 0x0a, 0x98, 0x80, 0x88, 0x16, 0x42, 0xe0, 0xaf, 0x17, 0x1c, 0x5c, 0x05, 0x01, 0x23:
2017-07-19 11:57:28.641 Detail,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2017-07-19 11:57:28.641 Detail,   ZW_SEND_DATA delivered to Z-Wave stack
2017-07-19 11:57:28.658 Detail,   Received: 0x01, 0x07, 0x00, 0x13, 0x01, 0x00, 0x00, 0x02, 0xe8
2017-07-19 11:57:28.658 Detail,   ZW_SEND_DATA Request with callback ID 0x01 received (expected 0x01)
2017-07-19 11:57:28.677 Detail, Node012,   Received: 0x01, 0x1d, 0x00, 0x04, 0x00, 0x0c, 0x17, 0x98, 0x81, 0xcf, 0x9b, 0x65, 0xed, 0x33, 0x0f, 0xb2, 0xfa, 0xfa, 0x77, 0xa2, 0xce, 0x88, 0x83, 0x77, 0xd6, 0x56, 0xf8, 0xab, 0xc5, 0x56, 0x91
2017-07-19 11:57:28.677 Info, Raw: 0x98, 0x81, 0xcf, 0x9b, 0x65, 0xed, 0x33, 0x0f, 0xb2, 0xfa, 0xfa, 0x77, 0xa2, 0xce, 0x88, 0x83, 0x77, 0xd6, 0x56, 0xf8, 0xab, 0xc5, 0x56, 0x91
2017-07-19 11:57:28.678 Detail, Node012, Decrypted Packet: 0x00, 0x66, 0x03, 0x00
2017-07-19 11:57:28.678 Detail, 
2017-07-19 11:57:28.678 Detail, Node012, Refreshed Value: old value=4, new value=0, type=list
2017-07-19 11:57:28.678 Detail, Node012, Changes to this value are not verified
2017-07-19 11:57:28.678 Detail, Node012, Notification: ValueChanged

Where did the names go?

@firstof9 @finity After a another reboot some of the names came back …


The linear did not, before it was something like linear unknow or something like that.
So far the tilt still does not seem to respond in the states.

@firstof9 @finity Also, it might have broke AppDaemon

AppDaemon should not be affected, may be a separate issue.
Now that you have the cover showing up, you should be able to link it in the GUI providing you’ve replaced the zwave component files

https://raw.githubusercontent.com/firstof9/home-assistant/proper-patch/homeassistant/components/cover/init.py
and
https://raw.githubusercontent.com/firstof9/home-assistant/proper-patch/homeassistant/components/cover/zwave.py

They go in your /srv/homeassistant//lib/python3.4/site-packages/homeassistant/components/cover directory or /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/cover using AIO.

As for naming the device, you can do that via the zwave config to name your device, or just manually edit the ozwcache_xxxxx.xml file in /home/homeassistant/.homeassistant/ directory or copy your zwcfg_xxxxx.xml on top of it.

If did change some of the permissions on some of the directories. My conf directory is off of .homeassistant.

Details if you care :slight_smile:

For me it was ‘_/srv/homeassistant//lib/python3.4/site-packages/homeassistant/components/cove_r’ directory. Now the GUI seems to work and the cover widget for the dashboard.
Default setup for the widget seems pretty bla, I wonder what customizing can be done? Oh well that’s for another thread. :slight_smile:

Just to confirm, you are able to monitor and open/close your door now via HA?

Yes. I think going over my lessons learned (otherwise know as mistakes), maybe we can come up with a Hassbain document or better yet, script.

The two python files that was hot patch in the cover directory, will they be in the next release or will I have to update them by hand again?

Along the same lines, will OZW have the patches we applied there?

Yes, please make some kind of documentation. I am have the same issue and I am not very good at using Linux so a detailed guide would be amazing to have for rookies like myself.

Not sure I understand the pros and cons to different methods.
Is there a file that Name = Node#. That way if Node# changes, I change that and all my entities work. Every time I remove/added the garage door opener, it got a new node number. I am going to have two garage door openers.

Edit:
Just tried the zwcfg_xxx.xml. Restarted (hassctl restart) and the node name did not change.

	<Node id="12" name="" location="" basic="4" generic="64" specific="7" roletype="5" devicetype="3078" nodetype="0" 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="3530" name="Garage Door One Car" />
		</Manufacturer>

Step 1: Stop HA
Step 2: edit the xml (ozwcache_xxxx.xml should be the file it’s reading from) similar to this:
<Node id="12" name="Garage Door" location="" basic="4" generic="64" specific="7" roletype="5" devicetype="3078" nodetype="0" type="Secure Barrier AddOn" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" secured="true" query_stage="Complete">

Step 3: Save the file
Step 4: Start HA

It should now have the name “Garage_Door” in HA.

1 Like

I am working on a Pull Request to get them into HA.

The OZW files will still work, as long as you modify the __init__.py file once again.