Skip to content

Repository files navigation

Home IO Control

CI CodeQL Fuzz Docs GitHub GitHub Repo stars

Home IO Control is an ESPHome component that speaks IO-Homecontrol. Flash an ESP32 with a LoRa radio and it talks to your devices directly — locally, over the air, with no vendor gateway and no cloud. Covers, lights and buttons appear in Home Assistant as native entities, with real position feedback from two-way devices.

What you need

An ESP32 board with an SX1276, SX1262 or LR1121 radio at 868 MHz. Hardware lists some available boards and shows the pins each one needs.

If your device speaks IO-Homecontrol, it has a good chance of working. The device matrix lists what has been tried, and what to do when yours is not there.

Features

  • Cover control — open, close, stop, and set position (0–100%) for shutters, blinds, awnings, window and garage openers, curtain tracks, and related position-based devices.
  • Real position feedback from the device, over the 2W protocol.
  • Tilt control for venetian-style blinds, exposed automatically for tilt-capable device types.
  • Light control, binary or dimmable.
  • Favorite / My and ventilation buttons, generated automatically for the device types that support them.
  • Device discovery and pairing from a Home Assistant button, with a machine-readable "Last Pairing Result" diagnostic and a plain-language advisor when an attempt fails.
  • Key extraction from an existing installation — emulate an unpaired device so your current hub hands over its node_id/system_key. No sniffing hardware, no device reset.
  • 1W remote and sensor events — overheard remote presses and wind/rain sensor triggers fire Home Assistant events for sender IDs you opt in.
  • Sending 1W commands, so the hub can drive devices that only listen for a remote.
  • LR1121 radio-firmware flashing, opt-in, including a bootloader rewrite behind an arming switch.
  • Three radio chips supported — SX1276, SX1262 and LR1121, all validated on real devices.
  • Experimental support for locks, switches and climate/heating devices. None of these has been exercised against real hardware yet; if you own one, try it and report back.

Installation

Add to your ESPHome YAML configuration:

external_components:
  - source: github://laberning/home_io_control

Both the esp-idf and arduino frameworks are supported, though testing and development mostly happen on esp-idf.

Where to go next

If you want to… Go to
Get it working for the first time Getting started · Hardware · Supported devices
Get a device onto the hub Pairing · Key extraction
Look up a YAML option Configuration reference
Work out why something is broken Troubleshooting · FAQ · Radio tuning
Understand the code, or contribute Architecture overview · Contributing

The full page tree is at docs/.

Acknowledgments

This would be a much smaller project without the people who contributed to it — thank you. ❤️

  • Everyone who has tested, reported and sent me logs. Most of the devices that work today are ones I have never owned. Someone put a radio next to theirs, tried what I suggested, and told me what came back. Many fixes only exist because someone stuck with a support thread round after round. If you would like to join in, report your device: one that doesn't work is as useful as one that does.
  • io-rts-esp32 — an ESP32 implementation of IO-Homecontrol and Somfy RTS.
  • iown-homecontrol — an open documentation effort covering the IO-Homecontrol protocol.
  • iown-homecontrol-esp32sx1276 — an IO-Homecontrol implementation for the ESP32 and SX1276.
  • ESPHome — the framework this component is built on, and what makes the devices show up in Home Assistant as native entities.

Disclaimer & License

Warning

This project is built for interoperability and right-to-repair: freeing devices, hubs, and networks you already own from lock-in, provided "as is", without warranty of any kind. Only use it on devices, hubs, and networks you own or are authorized to modify — doing so with someone else's is unauthorized access, which is illegal in most jurisdictions.

This project is licensed under the MIT License.

About

ESPHome component for IO-Homecontrol devices

Topics

Resources

Contributing

Stars

40 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages