Linear NGDZ00-4 Garage Door

@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.

That was my first mistake, I was doing zwcfg_xxxx.xml.
Also, I see why you have to stop it first. :slight_smile:

Off topic somewhat, but does go to understand what we did to get the linear garage door to work. So what did the change do ?

Is that not something ozw developers need to change also?

The change stops HA from auto-downloading the unmodified python_openzwave via pip.

Nope this change was implemented by the HA developers to make things easier for zwave integration.

Well I’ve submitted a PR to get the HA modifications in, that’ll make it easier to get working if/when they merge it in.

Uber excited! Thank you all!

You’ll still have to get the dev version of Python_OpenZwave compiled, but it’ll still be much easier than manually copying files around in homeassistant :wink:

I never could get it to work.

I gave up and just bought a zwave dry contact relay and tilt sensor.

both together were cheaper than the linear GDO and WAY easier to get it to work. it was 15 minutes versus 3 or 4 days of trying everything over and over again and it still not working.

it especially made more sense to go with the cheaper/easier alternative since i realized if i ever get another newer style GDO, HA and linear won’t work with the security features of the MyQ systems (which most of the readily accessible ones seem to be) without a connection to the internet and a MyQ gateway (even more $).

hopefully one day this will get fully integrated for those who need it.

thanks @firstof9 for all the help tho. i guess my linux skills need A LOT more work to figure it out!

I did the same :wink: I still have the Linear up there ready to reconnect as soon as HASS supports it out of the box …

compiling the dev version of python_openzwave isn’t too complicated :stuck_out_tongue:
If/when the PR is merged that’s a lot of the battle right there.