I have a Ryobi Gargage Door Opener. Ryobi has their own app to control the unit. Is there a way Hubitat can control the unit? The Ryobi is wifi. Thanks for the assistance in advance as it is appreciated.
This thread goes into it:
Which lead me to look here:
None of this stuff looks fun though...
Also the last post mentions Homebridge which might be an option if you have that running. Homebridge can run Pythony things better.
Just wondering about this too,... Has anyone been able to make any progress with this?
@Stat @matthewschultz92 I have created a device handler that allows for control and real time status of the ryboi gdo. I even have two of them and it works with both. The only module I currently own is the park assist laser, but I can see if it is on off etc. It is still in its infancy and not very polished, but it does work. If you guys are still looking I can share the code if you want to give it a shot.
Yes! STILL very interested! Thank you!
Great! I have been tweaking it all day to make it a little more user friendly. Would you like to test it? I cannot promise it will work perfectly. lol Do you have any modules?
Sure would! I have the Bluetooth speaker and the Fan modules. Was thinking about the camera module sometime in the future.
I will get it uploaded to this post for you to try out tomorrow. If you can get me the logs of the speaker and fan I might be able to get those functioning as well...at least status maybe not control I am not sure. Thanks!
Sounds great! Although I may not be able to try it until the weekend. This job thing keeps getting in my way....
@matthewschultz92 @Stat Ok, so I think this should work for you guys. There is still a lot of room for improvement, but it is a start. This gives control (open/close) and status (currently for open/close state only). The potential is there to control lights for sure and possibly modules as well. In the future I would love to make those child devices, when I have time I will work on it. Anyway, the device handler is below. To get up and running:
- Obviously first save the device handler in your hubitat dashboard
- Create a virtual device and use the new device handler
- Enter your Ryobi GDO username and password and save preferences. This will login and get your api key as well as the garage door id (or ID's if you have multiple) for your door. Because I have two of them, for simplicity I just made it so you have to copy the id you want and paste it into the device page.
- Paste in the garage id and again click save preferences. This should automatically finish all the connections and get the latest state. From there you can control and get the status of your door.
Let me know if it works/doesn't work or you run into issues. Thanks!
So Cool! I know what I'm doing this weekend!
First I want to thank you for taking the time to do this. I am trying to follow along and add this to my Hubitat, but I am confused. I copied your code. Created the Virtual Device with the type being the RyobiGDO. Then entered my username and password, then pressed save preferences. Where is the api key? Where do I get the Garage Door ID from?
Thank you for all of your time and assistance with this as it is appreciated.
Regards,
EJ
I own the Fan and the Speaker modules. How do I access and save the logs so that I can get them to you?
Of course. So I you look in the logs after you click save preferences (live logs) it should tell you the model and garage id for your opener. Just open the log in a separate tab and switch back and forth. That's also where you'll find any messages being sent from your other modules which you can paste here for my to peak at. For that you'll need to make sure you have the debugging switched on in that preferences section. Let me know if that works!
Thank you. That works now. Here is the logs for the fan and speaker modules.
2019-07-26 01:30:37.214 pm debugparsed {"jsonrpc":"2.0","method":"wskAttributeUpdateNtfy","params":{"topic":"508cb15d08e8.wskAttributeUpdateNtfy","varName":"508cb15d08e8","fan_2.speed":{"value":100,"lastValue":0,"lastSet":1564162240757}},"id":0}
dev:1952019-07-26 01:29:45.388 pm debugparsed {"jsonrpc":"2.0","method":"wskAttributeUpdateNtfy","params":{"topic":"508cb15d08e8.wskAttributeUpdateNtfy","varName":"508cb15d08e8","fan_2.speed":{"value":0,"lastValue":10,"lastSet":1564162188933}},"id":0}
dev:1952019-07-26 01:29:44.829 pm debugparsed {"jsonrpc":"2.0","method":"wskAttributeUpdateNtfy","params":{"topic":"508cb15d08e8.wskAttributeUpdateNtfy","varName":"508cb15d08e8","btSpeaker_1.moduleState":{"value":false,"lastValue":true,"lastSet":1564162188373}},"id":0}
Nice so it's all working? State and control? Run into any issues?
So that's good we are getting those notifications. Getting state sounds be easy then. Control might be a little more difficult. I'm not sure what the commands are out what all the capabilities might be, especially for the speaker. I think it's doable though. I'll probably start with the parking module I have, since I have one, then hopefully extrapolate that to the rest of the modules.
It works perfectly, thank you! Your hard work is very much appreciated! The HE dashboard visually shows the door open and closed status. I even created a virtual switch and rule so that I can now even control my Ryobi GDO with Alexa.
As far as the speaker it is just on/off. The fan is low/medium/high.
Again, thank you for all of your efforts as it is truly appreciated!
Okay, stupid question, I am seeing the API key, Is that what is meant by the "Garage ID"?
Also, I am seeing "Status of Device request response call is: 200" I am assuming this is the model number. Just in case that matters.
Finally, I am not seeing the BT Speaker Module, the Fan or the Power Cord Reel. The lack of the Power Cord Reel may be normal as you don't/can't control it. What I am seeing is that it appears to be sending the same block that has the API key in it twice...
As Stat says, Thank you! Thank you! Your Hard Work is Appreciated
Hey. So it's getting the API key so that's good. After that it should grab the garage id. It'll show you all your devices types which is usually your relay hub and your actual garage door and it'll actually say your garage id is: ... If you're not seeing that, hot the save preferences again and post the output here so I can see what's going on.
The other modules will only show up once you've got everything connected correctly and you do something with them. Then you should get a notification report like what Stay posted above. Let me know!
So if I use the number after the API key, called the "varName:"xxx... number the door works... I don't see anything that starts with "garage_id" is that correct?