Home Assistant custom component integration with Websocket-based connection to Ryobi's Cloud Service to control their Garage Door Opener. This was reverse-engineered from their Android App.
This integration will request all of the Garage Door devices linked to your Ryobi account and automatically add them into Home Assistant.
This is a work-in-progress! Currently, you can view the state (OPEN, CLOSED, OPENING, CLOSING) and the current position (% open) of the door. You can also open or close the door but not set a position. The Entity also has extra attributes such as Last Set, Last Value, Vacation Mode, Sensor Flag, Light State, and Light Timer. The Light entity is not setup and therefore not controllable yet.
- GDO125
The Garage Door must first be setup and added through Ryobi's app. Once you've created an account and can successfully control the garage door from the app, you can use your login details with this integration.
Copy the ryobi_garage
folder into your config\custom_components\
folder. If custom_components
doesn't exist then create it.
ryobi_garage:
username: "username"
password: "password"
Once you've complete the above steps, restart Home Assistant. Once restarted, a new Garage Cover entity will be created using the name form the Ryobi App as the entity name.
Feel free to contribute to this project! I am not a professional programmer... just a dad who what to control his garage door from Home Assistant. Updates will be few and far-between.
Please open an Issue and paste DEBUG logs or I can't help as easily. PLEASE remove all personal login details, including your username, password, device IDs, and API Keys!!
logger:
logs:
custom_components.ryobi_garage: debug
See the Projects board for updated list.
- HTTP: Login to check details and get API Key.
- HTTP: Get devices list to check for more than 1 GDO.
- HTTP: Get device state for each device.
- WS: Authenticate using API Key.
- WS: Subscribe to device notifications using device ID.
- WS: Listen for device updates and update internal state.
- Implement RyobiGarage CoverEntity in HA.
- Set the unique_id properly using device_id, mac, serial and name.
- WS: Send open/close command to sever
- WS: Check for and implement set_position command (look into app's "preset" functionality).
- WS: Check for and implement stop command.
- Implement RyobiGarage LightEntity in HA.
-
Implement entities for other modules(currently unable as I don't own any and cannot test this).
- Madj42 and his ryobi_gdo3 integration for getting me started way back when.
- Jezza34000 and his HA Weback Component for use as a reference in creating a Websocket connecting in HA.