Controlling Ryobi GDO Garage Door via HA

Just another thing I found today. I’m tempted to give this a try if Ryobi doesn’t fix this soon. Note: the link below is a cached version due to the subreddit being private.

http://webcache.googleusercontent.com/search?q=cache%3Ahttps%3A%2F%2Fwww.reddit.com%2Fr%2Fhomeautomation%2Fcomments%2Fs5pav8%2Finstructions_for_making_ryobi_gdo_work_with%2F&oq=cache%3Ahttps%3A%2F%2Fwww.reddit.com%2Fr%2Fhomeautomation%2Fcomments%2Fs5pav8%2Finstructions_for_making_ryobi_gdo_work_with%2F&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQRRg60gEIMjYwMmowajSoAgCwAgA&client=ms-android-google&sourceid=chrome-mobile&ie=UTF-8

1 Like

Ahhh good catch on the cert! Out of curiosity I disabled cert validations on my addon and now see [custom_components.ryobi_gdo3.cover] Wrong credentials, no API key retrieved. Interestingly, those credentials still work for me on the app and the website.

Also good idea going down the HomeKit route, just in case.

The website also works to control my garage door, and seems to have all of the non-minified JS code that runs it easily found nearby. My thinking was we could look at that for hints on getting the addon up and running again. I was hoping to check tonight but ran out of time. Hopefully this is ‘almost there’!

Appears that they fixed the certificate issues and things are now working. I did order the MyQ system as well as others but since my IT career has proven to me that replacing one system with an equally as bad system doesn’t lead to great things, I’m probably going to return it if this continues working. Fingers crossed.

3 Likes

You’re right, it’s working again! I’d better remove my cert-ignoring code. I feel like this is a minor miracle, I was wondering if we’d have to harass people on LinkedIn or something to try to get traction.

Thanks again for following up!! Hopefully we won’t be meeting back here too soon for Cert Expired pt. 2: Cert Expired Again.

1 Like

Hey everyone! I hope we all didn’t go to “MYQ” because I have excellent news.

Putting on some cleaning touches, but the integration has been completely rewritten to function like a modern home assistant integration!

No need for Door.py. We also got some of the accessories working.

If you have multiple garage doors it works too!

2 Likes

One thing you might want to do is look at what he’s done here and work with him to combine the two.

Yup, thats the plan, and have already been doing that. :slight_smile: We currently have web sockets

If you get websockets working for the door status functionality, that will fix a lot of the status delay issues. That’s one of my major gropes with the existing implementation on my repo. I’m sure you’ve noticed, the existing version is just a clone of what was there and I managed to get it working with the later versions. Due to kids taking my time, I really haven’t had much time to devote to it.

Did you try my integration? Websockets currently work, and we have lights, etc. Couldn’t have done it without you, but take a look! it works just like any “normal” integration, no secret files or door.py needed

I tried your integration. I put in my credentials and it identifies my opener by name and then it fails to load.:

Logger: custom_components.ryobi_gdo.api
Source: custom_components/ryobi_gdo/api.py:197
Integration: Ryobi Garage Door Opener ([documentation](https://github.com/catduckgnaf/ryobi_gdo), [issues](https://github.com/catduckgnaf/ryobi_gdo/issues))
First occurred: January 16, 2024 at 6:55:15 PM (2 occurrences)
Last logged: 5:23:57 PM

Exception while parsing answer to update device: 'parkAssistLaser_3

Logger: custom_components.ryobi_gdo.coordinator
Source: helpers/update_coordinator.py:332
Integration: Ryobi Garage Door Opener ([documentation](https://github.com/catduckgnaf/ryobi_gdo), [issues](https://github.com/catduckgnaf/ryobi_gdo/issues))
First occurred: January 16, 2024 at 6:55:15 PM (2 occurrences)
Last logged: 5:23:57 PM

Error fetching Ryobi GDO (987bf312340d) data:

Error setting up entry [email protected] for ryobi_gdo
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ryobi_gdo/__init__.py", line 38, in async_setup_entry
    coordinator._client.ws_connect()
  File "/config/custom_components/ryobi_gdo/api.py", line 230, in ws_connect
    assert self.ws
AssertionError

Do you have old integration installed? did you reboot after removing it? @firstof9 any thoughts?

Post logs from home-assistant.log not that junk from the UI please :slight_smile:

2024-01-18 17:23:57.285 ERROR (MainThread) [custom_components.ryobi_gdo.api] Exception while parsing answer to update device: 'parkAssistLaser_3'
2024-01-18 17:23:57.286 ERROR (MainThread) [custom_components.ryobi_gdo.coordinator] Error fetching Ryobi GDO (987bf312340d) data: 
2024-01-18 17:23:57.287 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry [email protected] for ryobi_gdo
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ryobi_gdo/__init__.py", line 38, in async_setup_entry
    coordinator._client.ws_connect()
  File "/config/custom_components/ryobi_gdo/api.py", line 230, in ws_connect
    assert self.ws
AssertionError
1 Like

Removed and rebooted, yes.

2024-01-18 17:56:13.229 ERROR (MainThread) [custom_components.ryobi_gdo.api] Exception while parsing answer to update device: 'parkAssistLaser_3'
2024-01-18 17:56:13.230 ERROR (MainThread) [custom_components.ryobi_gdo.coordinator] Error fetching Ryobi GDO (987bf312340d) data: 
2024-01-18 17:56:13.230 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry [email protected] for ryobi_gdo
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ryobi_gdo/__init__.py", line 38, in async_setup_entry
    coordinator._client.ws_connect()
  File "/config/custom_components/ryobi_gdo/api.py", line 230, in ws_connect
    assert self.ws
AssertionError

I just pushed an update, can give you give it a try? also feel free to join the regular home assistant discord and @catduck in Intergrations

Ya looks like a race condition, @catduckgnaf commited a fix that should sort it.

2 Likes

Thanks @firstof9 and @catduckgnaf for the work on this! I’ve loaded the new integration and will give it a spin later. For now it is working and reporting just fine.

2 Likes

Working for myself as well. Thanks so much @firstof9 and @catduckgnaf !

2 Likes

Looks like we got motion sensor working, G125 support and more!

If anyone wants to join my discord, here you go, Catducks Home Assistant and Homelab Server