Analysis updated 2026-05-18
Build a local, cloud-free Home Assistant sensor for an Okoboiler water heater
Learn how to reverse engineer an unfamiliar single-wire UART protocol on an appliance
Unlock a hidden solar boost feature on the cheaper model of the same water heater
| splattner/oekoboiler-uart-reverse-engineering | 1ncendium/aibuster | aaronmayeux/ha-hurricane-tracker | |
|---|---|---|---|
| Stars | 5 | 5 | 5 |
| Language | Python | Python | Python |
| Setup difficulty | hard | moderate | easy |
| Complexity | 4/5 | 3/5 | 2/5 |
| Audience | developer | ops devops | general |
Figures from each repo's GitHub metadata at analysis time.
Requires soldering into the appliance's internal bus and an ESP32 running ESPHome.
This repository documents how the author reverse engineered the internal wiring of an older Okoboiler heat pump water heater that had no built in smart features at all. Inside the appliance, a display panel and a main control board talk to each other over a single serial wire, and the author tapped into that wire with a cheap ESP32 microcontroller to listen in on the conversation between the two boards. By capturing and studying the raw data on that wire, the author figured out the format of the messages being sent, including how they are scrambled and checksummed, and used that to pull out three useful pieces of information: the exact water tank temperature, the current operating mode such as heating or defrosting, and whether solar boost mode is active. Notably, the water temperature turned out to be more precise than what the front panel display shows. One interesting side discovery is that a solar boost feature advertised only on a pricier version of the same water heater is actually built into the firmware of the cheaper model too, just missing the physical trigger. The author enabled that hidden setting and wired in a small relay controlled by a solar monitoring system, effectively unlocking the feature. The end result feeds into ESPHome, a tool for building custom smart home sensors, so the extracted readings can show up in Home Assistant as ordinary sensors, without needing any cloud service or manufacturer app. This project is aimed at electronics hobbyists and home automation enthusiasts who are comfortable with soldering, reading protocol data, and working with ESPHome or Home Assistant. It documents the reverse engineering process in detail, which also makes it a useful reference for anyone reverse engineering a similar single wire serial bus on other appliances.
A detailed writeup on reverse engineering a water heater's internal wiring to build a cloud-free ESPHome sensor for temperature, mode, and solar boost.
Mainly Python. The stack also includes Python, ESPHome, ESP32.
The README does not state a license, so usage rights are unclear.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.