finds.dev← search

// the find

al-one/hass-xiaomi-miot

★ 5,910 · Python · Apache-2.0 · updated Jun 2026

Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices. 小米米家智能家居设备接入Hass集成

A Home Assistant custom component that maps Xiaomi's MIoT-Spec protocol to HA entities — lights, vacuums, sensors, AC units, and about 60 other device categories. It handles both local LAN communication and Xiaomi cloud fallback in a single integration, making it the de-facto bridge between Xiaomi's ecosystem and HA for users who don't want to run a separate Zigbee2MQTT stack.

The automatic local/cloud mode negotiation is genuinely useful — it maintains a list of devices known to support local MIoT and falls back to cloud transparently, so you don't have to figure out per-device. The per-entity customization via `customize.yaml` is deep: you can expose sub-properties as separate sensor/switch entities, reverse motor direction, chunk property polling, bind external sensors to climate entities. The MIoT-Spec abstraction means new Xiaomi devices often work without code changes just from the spec definition. Active maintenance with commits as recent as today.

Polling-only architecture is a real limitation — event-driven devices (wireless buttons, door/motion sensors) are explicitly unsupported, which is a significant gap for anyone building automations around sensors. Storing Xiaomi credentials in `configuration.yaml` plaintext is the documented approach for host/token + cloud mode, which is a bad habit to encode in docs. The codebase is large and the core device abstraction layer is complex enough that debugging why a specific property isn't mapping correctly requires reading multiple layers of spec translation code. BLE and Zigbee devices require cloud mode, meaning those devices can't work offline.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →