This repository contains a working ESPHome external component for the Levoit Classic 200S humidifier, plus the reverse-engineering notes and tooling used to recover the ESP32 <-> MCU protocol.
Warning
No warranty and no support are provided for anything in this repository. This ended up working on my device, but later hardware revisions or MCU firmware revisions may behave differently or may not work at all. Treat the protocol notes and ESPHome component as best-effort reverse-engineering results, not a guaranteed product. Pull requests are welcome.
With the replacement firmware, Home Assistant can see and control the main device features: power, display, mode (off / manual / auto), target humidity, manual intensity, auto-stop, current humidity, temperature, and the water-status signal exposed by the MCU, plus diagnostic entities such as the MCU firmware version and packet decode failure counter.
If you mainly want to use the humidifier with ESPHome, start here:
The ESPHome component talks directly to the stock housekeeping MCU over UART, so the original cloud-oriented ESP32 firmware can be replaced entirely.
The device uses a simple 9600 8N1 UART link between the ESP32 and the local
MCU. The host sends framed commands for status queries and control, while the
MCU pushes asynchronous status updates and button events back. That is enough
to implement the humidifier locally without talking to the vendor cloud.
More detail is in:
The lab tool can decode live traffic, send typed commands, and log full UART sessions against real hardware.
