HomeOps = DevOps, but for your home.
Practical, self-hosted home automation built on Home Assistant + ESPHome — HVAC control, ESP32 devices, add-ons, and tooling. No cloud required.
We build small, focused, vendor-neutral components that make hardware talk to Home Assistant over local protocols — RS-485, BLE, IR — and the tooling to ship and operate them. Everything here runs on your own network and is wired to HA through the native API, HACS, or the add-on store.
Harmony is dead. HomeOps is rebuilding the universal-remote experience from local, open building blocks — no cloud, no discontinued hub:
- 📡 IR for legacy gear —
esphome-ir-codegengenerates ESPHome IR packages straight from the Flipper-IRDB: TVs, AV receivers, soundbars, and anything with an IR window. - 🔵 BLE for modern devices —
esphome-blekeyboarddrives Android TV, streaming sticks, and PCs as a native Bluetooth keyboard. - 🎼 Activities — Concerto (new) is the Home Assistant integration that conducts the pieces above into Harmony-style Activities ("Watch TV", "Play Movie") — one tap sets every device, input, and volume. Input-agnostic (dashboard, a printed ESP remote, voice), driver-pluggable (IR · BLE · native), and all software — no €279 remote.
Reverse-engineered, fully local control for Midea-style heat pumps and any climate device.
| Project | What it does | |
|---|---|---|
| ESPHome-Midea-XYE | ESPHome external component that drives Midea HVAC over the XYE / CCM RS-485 bus — a native HA climate entity with full mode, fan, and setpoint support. Includes protocol docs. | |
| py-ccm15 | Async Python library for the Midea CCM-15 central controller — bridges the RS-485 VRF bus to TCP/IP and controls up to 64 indoor units over HTTP. pip install py-ccm15. |
|
| HASS-Smart-Climate | HACS integration that turns any climate device into an EcoBee-like smart thermostat — areas with their own sensors per preset (each preset follows the rooms that matter at that time), comfort presets, automatic heat/cool switching, and short-cycle protection. |
Firmware and codegen for inexpensive ESP32 hardware that integrates over the native HA API.
| Project | What it does | |
|---|---|---|
| esphome-hass-panels | ESPHome firmware for a Guition ESP32-S3 touchscreen — swipe-navigable LVGL pages for an alarm_control_panel keypad and a climate thermostat, with PIN entry and state animations. |
|
| esphome-blekeyboard | ESPHome component that turns an ESP32 into a BLE HID keyboard — recognized natively by Windows, Android, and iOS, with secure pairing and key-combo support. CI-gated with pinnable release-please tags. |
Services that install straight from the Home Assistant add-on store.
| Project | What it does | |
|---|---|---|
| esphome-ir-codegen | The Logitech Harmony is dead — build your own. A HA add-on that auto-generates ESPHome remote_transmitter packages from the open Flipper-IRDB (and HA infrared-protocols), so a ~$20 ESP32 becomes a Home-Assistant-driven universal remote. IR codes are pulled live at compile time — never hand-typed. |
| Project | What it does | |
|---|---|---|
| PwrHass | PowerShell client for Home Assistant — call services and query entity state from the shell after a one-time Connect-HomeAssistant. On the PowerShell Gallery. |
┌─────────────────────── Home Assistant ───────────────────────┐
│ native API · HACS integrations · add-on store · REST │
└────────┬────────────────┬───────────────┬──────────────┬─────┘
│ │ │ │
XYE RS-485 CCM-15 / IP LVGL panel IR / BLE
│ │ │ │
ESPHome-Midea py-ccm15 esphome-hass esphome-blekeyboard
-XYE HASS-Smart -panels esphome-ir-codegen*
-Climate (*add-on)
Most repos use Conventional Commits + release-please for automated versioning, and CI compile gates for the ESPHome components. Issues, PRs, and protocol findings are welcome — open one on the relevant repo. Everything here is built to run on your own hardware, on your own network.
Local-first. Vendor-neutral. Yours to own.
HomeOps™ and Concerto™ are trademarks of HomeOps. Code is open source under each repository's license; the names are not — a modified fork of a trademarked project must be renamed.