Linear NGDZ00-4 Garage Door

Bingo, that is exactly right, and it works a peach! Tied to my tilt sensor, the switch in the frontend is on when the garage door is open and off when it is closed, and all the nitty gritty is done in the backend.

My switch looks like this:

switch:
  platform: template
  switches:
    garage_overhead_door:
      value_template: '{{ states.binary_sensor.ecolink_garage_door_sensor_sensor_38.state }}'
      turn_on:
        service: script.turn_on
        entity_id: script.garage_door_toggle
      turn_off:
        service: script.turn_on
        entity_id: script.garage_door_toggle
      entity_id: binary_sensor.ecolink_garage_door_sensor_sensor_38

and I have a script called garage_door_toggle.yaml that looks like this:

alias: 'Toggle Garage Door Relay'
sequence:
  - service: switch.turn_on
    entity_id: switch.evolve_guest_controls_lfm20_fixture_module_switch_34
  - delay:
      seconds: 5
  - service: switch.turn_off
    entity_id: switch.evolve_guest_controls_lfm20_fixture_module_switch_34

Obviously I could have just had my template switch turn on the actual evolve switch directly and use an AppDaemon app in place of the script to turn it back off:

self.listen_state(self.turn_off_garage_switch, "switch.garage_overhead_door", new="on", duration=5)

and then turned it back off, but I have all my automations moved over to AppDaemon already, I just need to integrate some of my scripts over there as well.

1 Like

:slight_smile:

I actually prefer the idea of a script for this - it seems more ā€œwired inā€ somehow!

OK, I am convinced, I think Iā€™ll get hold of one of these and finally ditch the ST hub! It would be nice to eventually have the linear unit working as it has a delay and a warning, but this is a great alternative until it is supported - thanks again!

One more question - what are you using for the tilt sensor?

You mean which tilt sensor, as in manufacturer? or do you mean how is the tilt sensor tied into everything? I know, probably stupid question, but my mind is a little fried right now lol

LOL - no worries - manufacturer please.

Ecolink Z-Wave Wireless Tilt Sensor

https://smile.amazon.com/Ecolink-Z-Wave-Wireless-Tilt-Sensor/dp/B00HGVJRX2/ref=sr_1_fkmr0_4?ie=UTF8&qid=1473962862&sr=8-4-fkmr0&keywords=Ecolink+title+sensor

Perfect, thanks.

I have the relay in and working - works like a champ with a little AppDaemon magic to do the momentary part - the App will be in the examples dir in the next release if you are interested.

Still waiting for the sensor to tie it all together but so far so good!

1 Like

How do you ā€œmanually patch OZW and OZWCP to make this work in HAā€?

Joshā€™s post up above from July 26th is what I used to manually patch and compile both. That said, as also noted above, I havenā€™t been able to get HA to recognize the opener as a barrier even with the patched versions of OZW and OZWCP unless Iā€™m doing something wrong. Iā€™m able to get the opener to work via OZWCP but not via HA.

So whatā€™s my best bet for a reliable garage door opener solution that FULLY works in HA and may or may not use zwave? I donā€™t want a solution that works half way or requires more things like a wink hub.

The approach up above seems to be working. AeonLabs makes a garage door opener that, I think, doesnā€™t use Barrier mode so that may work as well. I picked Linear since it had more safety built in and was a pretty simple install. I have a vested interest to try and make it work, but I havenā€™t had time to dig around in the HA code yet (and itā€™ll take me a while as that will all be fresh for me).

I gave up, returned this garage door opener, and went with the fixture module and tilt sensor solution above. So far so good.

The time at which I could return mine has long since passed :confused: It sounded fairly promising initially so once I have time perhaps Iā€™ll try again to look into it further. For now, the device still remains a fancy repeater for my network at the moment.

I also just completed the home brew setup - I have now added the sensor and made a template switch, works very well. I have left the Linear hooked up and will revisit in the event we get support in HA.

There is support for this in HA.
Me and tobiebooth did this together. He had the device, and we made the zwave code together. If you donā€™t get this to work, please provide some error info, so we can have a look at this. But, remember that ozw still hasnā€™t included this into itā€™s code, so there is no guarantee it will work/keep working. But we had it working while developing.

1 Like

What do I need to look for to know itā€™s working in both directions/ Iā€™m only seeing sensors but not way to change the data, though I can open and close the garage door viz OZWCP. So either Iā€™m somehow doing something wrong with the OZW integration for HA or something is awry?

I canā€™t send the unit back but havenā€™t yet installed it, so if it helps your testing, I can certainly mail my Linear opener over to you if it might prove helpful!

The fact OZW hasnā€™t included it yet is a tad concerning, but itā€™s the same thing Iā€™ve had to deal with in regards to the radiotherm library so no major shift for me (though I recognize itā€™s not ideal).

First check would be to look in OZW.log when running HA and see at the very top that the network key is set.
If it is, make sure logger is activated in your config, and set to default: debug.
Check your logs for entries with the node number of the opener. Also for homeassistant.components.zwave.cover entries.
like Adding Node_id= and post those.

Here is what OZWCP shows for the device:

20 LBR+ Z-Wave+ node Always On Slave Access Control Sensor Linear Unknown: type=4744, id=3530 Garage Door Opener Garage off 7:37:58 PM Dynamic

Under the Current Values menu is where I have an Open switch that lets me send the open/close command.

In the States view in the GUI it has this:

sensor.garage_door_opener_access_control_20	254	friendly_name: Garage Door Opener Access Control
location: Garage
node_id: 20
sensor.garage_door_opener_alarm_level_20	0	friendly_name: Garage Door Opener Alarm Level
location: Garage
node_id: 20
sensor.garage_door_opener_alarm_type_20	0	friendly_name: Garage Door Opener Alarm Type
location: Garage
node_id: 20
sensor.garage_door_opener_burglar_20	254	friendly_name: Garage Door Opener Burglar
location: Garage
node_id: 20
sensor.garage_door_opener_sourcenodeid_20	0	friendly_name: Garage Door Opener SourceNodeId
location: Garage
node_id: 20

And here is what Home Assistantā€™s log shows:

16-10-02 00:39:36 homeassistant.components.zwave: Adding Node_id=20 Generic_command_class=64, Specific_command_class=7, Command_class=113, Value type=Byte, Genre=User
16-10-02 00:39:36 homeassistant.components.zwave: Component=light Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event platform_discovered[L]: discovered=value_id=72057594379517953, node_id=20, service=load_platform.sensor, platform=zwave>
16-10-02 00:39:36 homeassistant.components.zwave: Component=switch Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event state_changed[L]: new_state=<state sensor.garage_door_opener_alarm_type_20=0; friendly_name=Garage Door Opener Alarm Type, location=Garage, node_id=20 @ 2016-10-01T19:39:36.571023-05:00>, old_state=None, entity_id=sensor.garage_door_opener_alarm_type_20>
16-10-02 00:39:36 homeassistant.components.zwave: Component=binary_sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=lock Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=cover Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=climate Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Adding Node_id=20 Generic_command_class=64, Specific_command_class=7, Command_class=113, Value type=Byte, Genre=User
16-10-02 00:39:36 homeassistant.components.zwave: Component=light Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=switch Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=binary_sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event platform_discovered[L]: discovered=value_id=72057594379517969, node_id=20, service=load_platform.sensor, platform=zwave>
16-10-02 00:39:36 homeassistant.components.zwave: Component=lock Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event state_changed[L]: new_state=<state sensor.garage_door_opener_alarm_level_20=0; friendly_name=Garage Door Opener Alarm Level, location=Garage, node_id=20 @ 2016-10-01T19:39:36.596024-05:00>, old_state=None, entity_id=sensor.garage_door_opener_alarm_level_20>
16-10-02 00:39:36 homeassistant.components.zwave: Component=cover Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=climate Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Adding Node_id=20 Generic_command_class=64, Specific_command_class=7, Command_class=113, Value type=Byte, Genre=User
16-10-02 00:39:36 homeassistant.components.zwave: Component=light Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event platform_discovered[L]: discovered=value_id=72057594379517985, node_id=20, service=load_platform.sensor, platform=zwave>
16-10-02 00:39:36 homeassistant.components.zwave: Component=switch Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event state_changed[L]: new_state=<state sensor.garage_door_opener_sourcenodeid_20=0; friendly_name=Garage Door Opener SourceNodeId, location=Garage, node_id=20 @ 2016-10-01T19:39:36.614236-05:00>, old_state=None, entity_id=sensor.garage_door_opener_sourcenodeid_20>
16-10-02 00:39:36 homeassistant.components.zwave: Component=binary_sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=lock Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=cover Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=climate Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Adding Node_id=20 Generic_command_class=64, Specific_command_class=7, Command_class=113, Value type=Byte, Genre=User
16-10-02 00:39:36 homeassistant.components.zwave: Component=light Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=switch Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event platform_discovered[L]: discovered=value_id=72057594379518097, node_id=20, service=load_platform.sensor, platform=zwave>
16-10-02 00:39:36 homeassistant.components.zwave: Component=binary_sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event state_changed[L]: new_state=<state sensor.garage_door_opener_access_control_20=254; friendly_name=Garage Door Opener Access Control, location=Garage, node_id=20 @ 2016-10-01T19:39:36.633739-05:00>, old_state=None, entity_id=sensor.garage_door_opener_access_control_20>
16-10-02 00:39:36 homeassistant.components.zwave: Component=lock Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=cover Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=climate Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Adding Node_id=20 Generic_command_class=64, Specific_command_class=7, Command_class=113, Value type=Byte, Genre=User
16-10-02 00:39:36 homeassistant.components.zwave: Component=light Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=switch Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=binary_sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=lock Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event platform_discovered[L]: discovered=value_id=72057594379518113, node_id=20, service=load_platform.sensor, platform=zwave>
16-10-02 00:39:36 homeassistant.components.zwave: Component=cover Node_id=20 query start
16-10-02 00:39:36 homeassistant.core: Bus:Handling <Event state_changed[L]: new_state=<state sensor.garage_door_opener_burglar_20=254; friendly_name=Garage Door Opener Burglar, location=Garage, node_id=20 @ 2016-10-01T19:39:36.654044-05:00>, old_state=None, entity_id=sensor.garage_door_opener_burglar_20>
16-10-02 00:39:36 homeassistant.components.zwave: Component=climate Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=sensor Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=light Node_id=20 query start
16-10-02 00:39:36 homeassistant.components.zwave: Component=switch Node_id=20 query start

That was a lot of cut/pastes :slight_smile: but also wanted to add Iā€™m on HA 0.27.2. One thing I did notice is that I think python-openzwave may not have been compiled on my system with the patched library. So Iā€™m checking on that now.