# Zafro AC: replacing the I4season device cloud locally

> zafro-ha-local replaces the cloud endpoint used by a Zafro A9092R air conditioner with a LAN server. Its protocol notes derive the device's REST login, MQTT 3.1 WebSocket messages, topics and state commands from captured traffic. The Python service handles the device connection and publishes Home Assistant entities through MQTT Discovery.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-08
- Original resource: <https://github.com/cgstever/zafro-ha-local>
- Primary source: <https://github.com/cgstever/zafro-ha-local/blob/400d22ec1586bacf2192816149ea4c1fc3836eea/README.md>
- Catalog page: <https://awesomerea.org/resources/zafro-ha-local-case/>
- Record JSON: <https://awesomerea.org/resources/zafro-ha-local-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/zafro-ha-local-case/index.md)

## Requirements & limits

- **Prerequisites:** Requires an always-on Linux host, Home Assistant with MQTT, a broker, nginx, Python 3.9+ and local DNS override capability.
- **Testing evidence:** The author tested a Zafro A9092R-12K with firmware 1.0.28; other I4season models are unconfirmed.
- **Scope:** The AC uses legacy TLS 1.2 RSA ciphers and sends no SNI, which the supplied nginx configuration accommodates.
- **License:** MIT license.

## Primary sources

1. <https://github.com/cgstever/zafro-ha-local/blob/400d22ec1586bacf2192816149ea4c1fc3836eea/README.md>
2. <https://github.com/cgstever/zafro-ha-local/blob/400d22ec1586bacf2192816149ea4c1fc3836eea/docs/PROTOCOL.md>

## More in Protocols

- [open-apt-flash: reconstructing the APT 860C UART flasher](https://awesomerea.org/resources/open-apt-flash-case/index.md) · Case study
- [MADLIONS 60 Configurator: reconstructing MAD60 USB HID configuration](https://awesomerea.org/resources/madlions-configurator-case/index.md) · Case study
- [ax206-usb-display-macos: driving the QDtech display over USB](https://awesomerea.org/resources/ax206-usb-display-macos-case/index.md) · Case study
- [SP542E MQTT ↔ BLE bridge: local control through the controller protocol](https://awesomerea.org/resources/sp542e-ha-bridge-case/index.md) · Case study
- [ESPHome — Technibel SCDF32C5I IR Climate: reconstructing air-conditioner infrared control](https://awesomerea.org/resources/esphome-technibel-scdf32-case/index.md) · Case study
- [Atomberg BLDC IR Remote: reconstructing fan infrared commands](https://awesomerea.org/resources/atomberg-bldc-ir-remote-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.
