0xreversed/with.ai
Firmware and hardwareWorksSource available
Target: Innova OSMO fancoil (Modbus RTU)

Sniffed the Modbus link of an Innova OSMO fancoil and replaced its cloud WiFi module with ESPHome, using Claude Code

Innova OSMO fancoil (Modbus RTU): A fancoil freed from its cloud with a D1 mini and ESPHome.
Image: GitHub (wizardmelon/esphome-innova-osmo)

What was done

Protocol capture and analysis with Claude Code gave local Home Assistant control of a fancoil that only spoke to a cloud.

wizardmelon built local Home Assistant control for Innova OSMO fancoils. A D1 mini replaces the stock WiFi module and talks to the mainboard directly. The README says protocol capture and analysis were done with Claude Code.

How it was done

The stock module only talks to the Innova cloud, and commands sometimes got lost on the bus. Existing ESPHome components target a different interface with a different register map. So the author passively sniffed the serial link between the mainboard and the WiFi module and found it is Modbus RTU at 9600 8N1 on a 5 V UART. The register map is documented, along with repair notes and warnings about level shifting and a pin next to the 12 V rail.

Results

The ESPHome component gives local control with no cloud and no extra Modbus accessory. It is verified on one mainboard and control board combination.