HunterDG / ryobi_garage

Home Assistant custom component integration with Websocket-based connection to Ryobi's Cloud Service to control their Garage Door Opener.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ryobi Garage Door Opener - HA Custom Component

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.

Tested Devices

  • GDO125

Setup

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.

Installation

Copy the ryobi_garage folder into your config\custom_components\ folder. If custom_components doesn't exist then create it.

Configuration.yaml

ryobi_garage:
  username: "username"
  password: "password"

Restart HA

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.

Project State and Contributing

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.

Issues

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

Functionality / To-Do

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).

'Thank You's

About

Home Assistant custom component integration with Websocket-based connection to Ryobi's Cloud Service to control their Garage Door Opener.

License:GNU General Public License v3.0


Languages

Language:Python 100.0%