Controlling Ryobi GDO Garage Door via HA

Do you have debug logging turned on for the component? You may also want to check that the syntax of the tank is correct.

Got it going, didnā€™t have the right Device ID. It was using the URL that showed the content and thought that what was labeled as ID would be the device ID, but that is not the case apparently lol.

What if I have two garage doors? I have it working for 1 but canā€™t seem to figure out how to add two. Just getting started with Home Assistant so maybe I am missing something obvious. This is my first custom component. Thanks.

I havenā€™t tested this but you should be able to add another device id to both the light and cover sections in the yaml. Just add something like:

- !secret ryobi_device_id2

Donā€™t forget to also put it in the secrets file.

Anyone having sign-in issues with the GDO app or not able to get it to work with HA right now?

Yup. Just started tonight. Both the app and HA. Ryobiā€™s system have been randomly unreliable.

It seems to be back up right now.

Glad to hear and see itā€™s back up. Iā€™d like to think it was because I spammed their twitter, play store developer, and every contact address they had on their website earlier but itā€™s probably just dumb luck that itā€™s up.

Anyone else having any issues this weekend? Iā€™m trying to see if ryobi changed something or if itā€™s something on my end.

Actually, yes. I did the HA updates and it caused a bunch of issues since I am running an ā€œunsupportedā€ install. So I thought something got whacked from that. But right now, HA cannot communicate with my GDO. Ryobi phone app still works.

Yeah I think I know whatā€™s going on but Iā€™m not sure how to fix it at the moment since my python knowledge is limited. Hoping to get some time tonight to see if I can get something put together.

Well it was what I thought it was. The new release is up on the github repo. Should work for you guys. Let me know if it doesnā€™t.

1 Like

@Madj42 Thanks for fixing this! I only found out due to an unscheduled HA restartā€¦

No problem. Stroke of luck figuring it out. Thanks for letting me know as I was beginning to wonder if it worked for anyone else.

Sorry I havenā€™t chimed in. Busy week. But all is well here as well.

Thanks!

Trying to get my door ID, The script is working, as I can use it to browse all of the metadata about my door. The initial code pulls the ā€œdeviceTypeIdsā€ value out of the array. I have tried that as well as the ā€œ_idā€ value. In both cases I get a message stating the value is ā€œnot in your device listā€.

Anyone else have a similar issue?

EDIT: Posted too soon. I figured it out. The integration wants the ā€œvarNameā€ variable. For anyone else that has the issue, you should be able to change

print(doorval[1])
to
print(doorval[5])

in the doorid.py script. If it comes back with a value labeled ā€œvarNameā€ you should have the right ID.

1 Like

Glad you got it working and posted the fix too. Thanks!

Any chance someone has looked into making this work with websockets so we can get instant status from the door or light or other accessories?

I wrote a plugin in C# for homeseer that did this, and it worked quite well. Iā€™m pretty inexperienced in python otherwise Iā€™d give it a whirl. Itā€™ll be on my list if no one else steps up for this.

The commands are pretty simple, and you just subscribe to a topic. Iā€™ve thought about building a ryobi to mqtt bridge, but Iā€™d sort of like this to live on my HA box, and not rely on C# just because thatā€™s what I know.

All in all the API isnā€™t too hard to figure out

wss://tti.tiwiconnect.com/api/wsrpc

you subscribe to the topics for each GDO device id, then you get notifications for door or module updates.

edit: looking at the code, itā€™s looking like you already connect to the websocket when sending a message, but then close it. You can subscribe to messages and leave the socket open and then you donā€™t need to do polling update commands.

I made a little bit of progress last night learning some python as I go. I was able to connect to my GDO using username and password, get the api_key and retrieve a list of the devices (GDOā€™s, I only have one, so eventually Iā€™ll need someone to test multiple openers)

I was then able to connect to the websocket service and subscribe to changes. I successfully watched the changes come in when I was remote controlling the GDO using the Ryobi appā€¦

This is pretty much what I did when I was writing the homeseer plug-in. From there Iā€™m going to have to figure out how interact with HA devices. I think controlling all of the ryobi accessories will be possible, I can turn on and off my parking laser, and the fan I have attached, this canā€™t be any different that what I wrote before (just a different language) However I wonā€™t be able to test any device I donā€™t have.

Next up is parsing the json that is received when a message comes in, and updating HA devicesā€¦
Then Iā€™ll want to figure out how to push the messages back to the service, but it looks like there is already an example of that and I know what the JSON should look like already.

If I remember right, I should be able to get info for most of the accessories.

ENVIRONMENTAL_SENSOR = 0 (donā€™t think this was ever released)
PARK_ASSIST = 1
BLUETOOTH_SPEAKER_MODULE = 2
FAN_MODULE = 3
INFLATOR = 4
BACKUP_CHARGER_MODULE = 6
CAMERA_MODULE = 10

The missing numbers here make me wonder if there was more planned?