# esphome-panasonic-erv: local control through a reconstructed CN12 protocol

> esphome-panasonic-erv replaces a Panasonic ERV's optional module with an ESP32-S3 that speaks the reconstructed CN12 serial protocol. Logic-analyzer captures underpin its frame decoder, command builder and ESPHome component for power, mode and fan control. It exposes state to Home Assistant, which can make the controls available through its HomeKit Bridge. The author reports physical testing on FY-25ZDP1C.

- 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/ShadowZZP/esphome-panasonic-erv>
- Primary source: <https://github.com/ShadowZZP/esphome-panasonic-erv/blob/3470015bf9aab7dbed7fae4a9c99e1c486c1b780/docs/PROTOCOL.md>
- Catalog page: <https://awesomerea.org/resources/esphome-panasonic-erv-case/>
- Record JSON: <https://awesomerea.org/resources/esphome-panasonic-erv-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/esphome-panasonic-erv-case/index.md)

## Requirements & limits

- **Prerequisites:** An ESP32-S3 board, jumper wires and ESPHome are required; the board connects to the ERV's CN12 port in place of the OEM module.
- **Testing evidence:** The author reports physical testing on FY-25ZDP1C; other listed models remain untested.
- **Scope:** The component implements thin-domestic power, mode and fan controls; additional functions of larger units are outside its current scope.
- **License:** MIT license.

## Primary sources

1. <https://github.com/ShadowZZP/esphome-panasonic-erv/blob/3470015bf9aab7dbed7fae4a9c99e1c486c1b780/docs/PROTOCOL.md>
2. <https://github.com/ShadowZZP/esphome-panasonic-erv/blob/3470015bf9aab7dbed7fae4a9c99e1c486c1b780/README.md>
3. <https://github.com/ShadowZZP/esphome-panasonic-erv/blob/3470015bf9aab7dbed7fae4a9c99e1c486c1b780/LICENSE>

## More in Protocols

- [EdgeLine: investigating Corsair Xeneon Edge control and touch interfaces](https://awesomerea.org/resources/edgeline-xeneon-edge-case/index.md) · Case study
- [FreeMicro: decoding Codex Micro's USB and Bluetooth control protocol](https://awesomerea.org/resources/freemicro-codex-micro-case/index.md) · Case study
- [Mittzon Standing Desk: decoding the LIN bus for Home Assistant control](https://awesomerea.org/resources/mittzon-homeassistant-case/index.md) · Case study
- [zenvision-linux: reconstructing ASUS ZenVision OLED control over USB](https://awesomerea.org/resources/zenvision-linux-case/index.md) · Case study
- [orba-protocol: reconstructing Artiphon Orba 2 control messages](https://awesomerea.org/resources/orba-protocol-artiphon-orba-2-case/index.md) · Case study
- [TrikiEmu: reconstructing the Żabka Triki BLE controller](https://awesomerea.org/resources/trikiemu-zabka-triki-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.
