# Ökoboiler: decoding the water heater's internal UART bus

> The Ökoboiler study reconstructs the single-wire UART exchange between a heat-pump water heater's display and control boards. It documents 32-byte frames, XOR masking, CRC-16/Modbus and fields for tank temperature, operating mode and PV state, with a Python decoder and an ESPHome sensor configuration.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/splattner/oekoboiler-uart-reverse-engineering>
- Primary source: <https://github.com/splattner/oekoboiler-uart-reverse-engineering/blob/8a164da1713b7ded0656419d2e7ca10d70035eb1/PROTOCOL.md>
- Catalog page: <https://awesomerea.org/resources/oekoboiler-uart-case/>
- Record JSON: <https://awesomerea.org/resources/oekoboiler-uart-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/oekoboiler-uart-case/index.md)

## Requirements & limits

- **Prerequisites:** The documented capture setup uses an Ökoboiler unit and an ESP32-C6 running ESPHome.
- **Limits:** The author reports validating the protocol on one unit over several days of traffic.
- **License:** MIT licence.

## Primary sources

1. <https://github.com/splattner/oekoboiler-uart-reverse-engineering/blob/8a164da1713b7ded0656419d2e7ca10d70035eb1/PROTOCOL.md>
2. <https://github.com/splattner/oekoboiler-uart-reverse-engineering/blob/8a164da1713b7ded0656419d2e7ca10d70035eb1/README.md>
3. <https://github.com/splattner/oekoboiler-uart-reverse-engineering/blob/8a164da1713b7ded0656419d2e7ca10d70035eb1/scripts/README.md>

## More in Protocols

- [Ritto 7630: reconstructing intercom bell and door signals](https://awesomerea.org/resources/ritto-esp-case/index.md) · Case study
- [ha-c14: reconstructing the C14 ventilator bus protocol](https://awesomerea.org/resources/ha-c14-case/index.md) · Case study
- [Homiq Rescue: reconstructing the Homiq control protocol](https://awesomerea.org/resources/homiq-rescue-case/index.md) · Case study
- [PreSonus StudioLive 16.0.2 USB: documenting mixer control messages](https://awesomerea.org/resources/presonus-studiolive-16-0-2-usb-case/index.md) · Case study
- [DJI Mic Mini Monitor: decoding the receiver's USB status stream](https://awesomerea.org/resources/dji-mic-mini-monitor-case/index.md) · Case study
- [baseus-cli: reconstructing Baseus Bass BS1 NC control](https://awesomerea.org/resources/baseus-cli-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
