Awesome Open Source
Awesome Open Source

Xiaomi Miot For HomeAssistant

English | 简体中文

MIoT-Spec: The protocol specification for Xiaomi IoT devices, is a standard designed by the Xiaomi IoT platform to describe the function definition of hardware products according to the networking mode of hardware products, the characteristics of product functions, the characteristics of user usage scenarios and the user's requirements for hardware product use experience specification.

This component uses the MIoT-Spec to automatically integrate Xiaomi devices into HomeAssistant, and currently supports most Xiaomi MIoT devices. And it supports HA Web UI, and you can easily integrate Xiaomi devices into HA without configuring yaml.


Download and copy custom_components/xiaomi_miot folder to custom_components folder in your HomeAssistant config folder

# Auto install via terminal shell
wget -q -O - | bash -

Or you can install component with HACS


⚙️ Configuration > 🧩 Integrations > ➕ Add Integration > 🔍 Search Xiaomi Miot Auto

Or click (HA v2021.3+): Add Integration

You have two ways to integrate xiaomi devices:

  • Add devices using Mi Account

    Suitable for miio, ble and ZigBee devices (miot_cloud will be enabled)

  • Add device using host/token

    Suitable for devices supporting miot-spec in LAN

Configuration Xiaomi Cloud:

If your device (integrate by token) unavailable or return code -4004 or -9999 in logs, You can try this way.

# configuration.yaml
  username: xiaomi_username
  password: xiaomi_password
  # server_country: cn # location of xiaomi cloud: cn(default), de, i2, ru, sg, us

Enabled miot cloud for device:

⚙️ Configuration > 🧩 Integrations > Xiaomi Miot Auto > Options > ☑️ Enable miot cloud

Customize entity

# configuration.yaml
  customize: !include customize.yaml

# customize.yaml
  miot_local: true        # Force to read and write data in LAN (integrate by account)
  miot_cloud: true        # Enable miot cloud for entity (read, write, action)
  miot_cloud_write: true  # Enable miot cloud (only write)
  miot_cloud_action: true # Enable miot cloud (only action)
  miio_properties: power,battery # Get miio properties to state attributes

# Custom sub entities
  sensor_properties: temperature,humidity,illumination # Miot properties
  binary_sensor_properties: is_volume_muted,any_boolen_property
  switch_properties: on,power
  number_properties: volume
  fan_properties: mode,fan_level
  cover_properties: motor_control

  bind_sensor: sensor.temperature_entity,sensor.humidity_entity # Sensor entities

  video_attribute: 1   #
  keep_streaming: true # Continuously update stream address
  check_lan: true      # Check LAN connection in cloud mode

  closed_position: 5   # Change cover state to closed when position <= 5%
  deviated_position: 2 # Current position deviation 2% -> 0%, 98% -> 100%
  motor_reverse: true  # Reverse motor state
  open_texts: Open,Up
  close_texts: Close,Down

  interval_seconds: 30 # Seconds between each update state (Requires reload config entry)
  chunk_properties: 10 # Chunk miot properties on update state (LAN)

Recommended Customization Using The UI:

⚙️ Configuration > 🖌 Customize > 🔍 Select Entity > Add Other Attribute

Supported Devices


Get Entity State Attributes

🔨 Developer tools > ℹ️ State > 🔍 Filter Entity

Get Debug Logs

# configuration.yaml
  default: warning
    custom_components.xiaomi_miot: debug

⚙️ Configuration > ✍️ Logs

Obtain miio token

  • Use HomeAssistant Service

    1. Goto HomeAssistant service developer tool
    2. Select xiaomi_miot.get_token, Enter the keyword of device name
    3. Find the token from the HA notifications
  • Use MiHome mod by @vevsvevs

    1. Down apk from СКАЧАТЬ ВЕРСИЮ 6.x.x
    2. Create folder /sdcard/vevs/logs/ ⚠️
    3. Find the token from vevs/logs/misc/devices.txt

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
python (55,320
iot (590
home-assistant (238
homeassistant (109
xiaomi (81
smart-home (49