Controlling Ryobi GDO Garage Door via HA

Since you mentioned you have two, did you try adding both doors into home assistant? Do both exhibit the same behavior? I haven’t personally tested two doors with the integration. While it should in theory work, I’m unsure as to why this wouldn’t work other than the something that is perhaps wrong with the config yaml or device id. Share what you have for your yaml entries for this integration but with some random info so I can see what you’re doing.

# Ryobi GDO entry
cover:
  - platform: ryobi_gdo3
    username: !secret ryobi_username
    password: !secret ryobi_password
    device_id:
      - !secret ryobi_door_id

What I see when I run the doorid.py script is that there are several varName entries. I wonder if I have simply selected the wrong one in the context of having multiple doors.

 'varName': '0cb2b71e6a46'
 'metaData': {'name': '0cb2b71e6a46'
 'version': 1
 'icon': '/img/devices/gda_500.png'
 'description': 'RYOBI Connected WiFi BLE Hub / 10 ports'
 'wskAuthAttempts': [{'varName': '0cb2b71e6a46'
 'apiKey': 'xxxxxxxxxxxxxxxx'
 'ts': '2021-09-26 22:36:35'
 'success': True}
 {'varName': '0cb2b71e6a46'
 'apiKey': 'xxxxxxxxxxxxxxxx'
 'ts': '2021-09-26 23:35:41'
 'success': True}
 {'varName': '0cb2b71e6a46'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 01:36:34'
 'success': True}
 {'varName': '0cb2b71e6a46'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 02:36:34'
 'success': True}
 {'varName': '0cb2b71e6a46'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 02:41:11'
 'success': True}]
 'authCount': 4962
 'sys': {'lastSeen': 1632711831907}
 'socketId': 'a1c2d95f.ip-10-0-1-44.ec2.internal.8080_0cb2b71e6a46'}
 'enabled': True
 'deleted': False
 'createdDate': '2021-01-02T20:52:39.216Z'
 'activated': 2
 'deviceTypeIds': ['gda500hub']
 'activatedDate': '2021-01-03T04:00:02.251Z'}
 {'_id': '60b1170ac27ae8966f32665b'
 'deviceTypeIds': ['gda500hub']
 'activated': 0
 'deleted': False
 'enabled': True
 'varName': '44ead831ced0'
 'metaData': {'name': '44ead831ced0'
 'version': 1
 'icon': '/img/devices/gda_500.png'
 'description': 'RYOBI Connected WiFi BLE Hub / 10 ports'
 'wskAuthAttempts': [{'varName': '44ead831ced0'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-26 21:37:04'
 'success': True}
 {'varName': '44ead831ced0'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-26 22:37:43'
 'success': True}
 {'varName': '44ead831ced0'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 01:35:52'
 'success': True}
 {'varName': '44ead831ced0'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 01:36:05'
 'success': True}
 {'varName': '44ead831ced0'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 02:39:33'
 'success': True}]
 'authCount': 1534
 'sys': {'lastSeen': 1632711909541}
 'socketId': 'bbff1cdb.ip-10-0-1-63.ec2.internal.8080_44ead831ced0'}
 'createdDate': '2021-05-28T16:15:06.040Z'}
 {'_id': '60b116925f44ec041179ce9a'
 'deviceTypeIds': ['GD125']
 'activated': 0
 'deleted': False
 'enabled': True
 'varName': '606405ae4d28'
 'metaData': {'name': 'Single Bay'
 'version': 1
 'icon': '/img/devices/gdo.png'
 'description': 'RYOBI Connected Garage Door Opener Master Unit'
 'wskAuthAttempts': [{'varName': '606405ae4d28'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-26 23:36:38'
 'success': True}
 {'varName': '606405ae4d28'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 00:36:12'
 'success': True}
 {'varName': '606405ae4d28'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 01:37:04'
 'success': True}
 {'varName': '606405ae4d28'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 02:37:03'
 'success': True}
 {'varName': '606405ae4d28'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 02:39:34'
 'success': True}]
 'authCount': 2157
 'sys': {'lastSeen': 1632711889124}
 'socketId': '244c096b.ip-10-0-0-206.ec2.internal.8080_606405ae4d28'
 'customPreset': True}
 'createdDate': '2021-05-28T16:13:06.501Z'}
 {'_id': '5ff0db9c6532f42a5c256c0d'
 'varName': '9884e3dd694d'
 'metaData': {'name': 'Double Bay'
 'version': 1
 'icon': '/img/devices/gdo.png'
 'description': 'RYOBI Connected Garage Door Opener Master Unit'
 'wskAuthAttempts': [{'varName': '9884e3dd694d'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-26 20:36:41'
 'success': True}
 {'varName': '9884e3dd694d'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-26 22:36:35'
 'success': True}
 {'varName': '9884e3dd694d'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 01:36:39'
 'success': True}
 {'varName': '9884e3dd694d'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 02:34:44'
 'success': True}
 {'varName': '9884e3dd694d'
 'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
 'ts': '2021-09-27 02:39:35'
 'success': True}]
 'authCount': 4813
 'sys': {'lastSeen': 1632711869698}
 'socketId': 'a4ffd49f.ip-10-0-0-190.ec2.internal.8080_9884e3dd694d'}
 'enabled': True
 'deleted': False
 'createdDate': '2021-01-02T20:46:20.969Z'
 'activated': 2
 'deviceTypeIds': ['GD125']
 'activatedDate': '2021-01-03T04:00:02.251Z'}]

It’s possible. I think this may be what is going on to be honest. Your best bet would be to add all the door ids and get find which one works for you. I hate saying that but it seems like you’ve possibly had to pair the doors multiple times? A couple others had multiple IDs and I don’t understand why other than they create an I’d for each time you setup the door.

Greetings all, sorry for the silly questions but I am new and trying to learn. So far I have created the ryobi folder in the custom_components folder. In that folder I have the following:

_init_.py
Configuration.yaml
cover.py
light.py
manifest.json
py_ryobi_gdo.py

In the secrets file, everything is updated along with the door id.

Do I have to modify any of the other files with any information? After getting them all set, when I restart HA I don’t see anything about the door, so maybe I’m still missing a step. Any help would be much appreciated.

Gary

Add this to your configuration.yaml.

# Ryobi GDO entry
cover:
  - platform: ryobi_gdo3
    username: !secret ryobi_username
    password: !secret ryobi_password
    device_id:
      - !secret ryobi_door_id

@Madj42 thanks for our reply. I made a little progress eliminating a couple of errors in my log but now this one pops up:

2022-01-15 11:56:06 ERROR (SyncWorker_2) [custom_components.ryobi_gdo3.cover] Wrong credentials, no API key retrieved

I added the code you suggested to my configuration.yaml, I had created a new configuration file in the ryobi_gdo3 folder so I had that wrong. I still am not seeing the card show up. Is there somewhere I need to go activate that or should it show up in lovelace automatically? Thanks in advance for any advice!

Thanks
Gary

You should see an entity for the garage door show up on your entities list. It will be of the cover type. Not sure on the errors as that is something to do with your username and password.

Got it working this afternoon after some headaches trying to get use the correct door ID. THanks for the assist and the scripting.

Gary

That tip about running the api using postman was Gold. I could not figure out why this was not working till I saw your comment. Thanks

TWO YEARS LATER AND IT BAILED ME OUT!!! Thanks for the heads up! I forgot that that I had to do a factory reset on my GDO when I first set it up to get the app to work for some reason.

1 Like


When I run doorid.py this is all I am getting. Any suggestions?

Edit: Change print(doorval[1] to print(doorval[5] in the doorid.py

I was able to get it added to HA but it shows it in the wrong state (open) and the controls don’t seem to work.

If you’re still having issues, you may want to check if the value in doorval is the correct object. Sometimes there is more than one door in the results. You may need to take the [5] off doorval to see all of them.

Has anyone got multiple garage doors working? I was able to add one door and get it working. I can also get the other door working separately. The issue comes when I add both of them to the configuration.yaml. Here is what I have in configuration.yaml:

# Ryobi Garage Door1
cover:
  - platform: ryobi_gdo3
    username: !secret ryobi_username
    password: !secret ryobi_password
    device_id:
      - !secret ryobi_device_id1
      
light:
  - platform: ryobi_gdo3
    username: !secret ryobi_username
    password: !secret ryobi_password
    device_id:
      - !secret ryobi_device_id1

# Ryobi Garage Door2
cover:
  - platform: ryobi_gdo3
    username: !secret ryobi_username
    password: !secret ryobi_password
    device_id:
      - !secret ryobi_device_id2
      
light:
  - platform: ryobi_gdo3
    username: !secret ryobi_username
    password: !secret ryobi_password
    device_id:
      - !secret ryobi_device_id2

With this setup garage door 1 will be greyed out with the following error:

This entity is no longer being provided by the ryobi_gdo3 integration. If the entity is no longer in use, delete it in settings.

When I check the error logs I have the following errors:

2023-03-13 04:04:36.547 WARNING (SyncWorker_0) [homeassistant.util.yaml.loader] YAML file /config/configuration.yaml contains duplicate key “cover”. Check lines 17 and 32
2023-03-13 04:04:36.547 WARNING (SyncWorker_0) [homeassistant.util.yaml.loader] YAML file /config/configuration.yaml contains duplicate key “light”. Check lines 24 and 39

I can delete garage door 2 and garage door 1 will start working again. It seems like something needs to be changed with the code but I am not sure what.

It’s telling you in those log entries what the issue is. Your yaml contains duplicate cover and light entities. Combine all of the hyphenated entries into one of each.

Thanks for the tip. That did the trick and both work now.

1 Like

Before anyone asks, it appears that the domain this integration talks to has an expired certificate. I’ve emailed the vendor through their contact link. This is something outside of Ryobi.

1 Like

An update. It sounds like the company behind the backend solution that the door uses sunsetted the the solution and now they are questioning why it’s still being used. I let them know that the GDO uses it but I really don’t know what they are going to say. If you use this please follow the link below and use the contact us form to tell them you use a product that uses tiwiconnect and it’s not working.

3 Likes

I sure hope they keep this going!

I’m not sure to be honest. I’m not hopefully after two days of this being down and them saying the backend service was discontinued in 2019. Ryobi had 4 years to move to another system but never did. I’ve emailed Ryobi as well but not hopeful for a solution there either.

1 Like

This component is what got me into Home Assistant in the first place, and it’s been great! It’s a bummer about this cert. I’m sure you know, but it also broke the Ryobi GDO app (which barely worked before this). It really looks like Ryobi abandoned all of their GDO ambitions after the Chamberlain lawsuit, but hopefully something works out.

I’m guessing you also know this, but you can modify the calls to requests and websocket to bypass this cert issue. It would be possible to validate everything about the cert except its expiration date, for those who are willing to only throw away some security. I imagine making a PR to do something like that would be frowned upon.

Fingers crossed, and thanks for putting this together in the first place!

1 Like