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 protocol to automatically integrate Xiaomi devices into HomeAssistant, and currently supports most Xiaomi IoT devices. And it supports HA Web UI, and you can easily integrate Xiaomi devices into HA without configuring yaml.
HACS > Integrations > ➕ EXPLORE & DOWNLOAD REPOSITORIES >
Xiaomi Miot Auto
> DOWNLOAD THIS REPOSITORY
HACS > Integrations >
Xiaomi Miot Auto
> UPDATE / Redownload
Download and copy
custom_components/xiaomi_miot
folder tocustom_components
folder in your HomeAssistant config folder
wget -O - https://get.hacs.vip | DOMAIN=xiaomi_miot bash -
# Or
wget -O - https://raw.githubusercontent.com/al-one/hass-xiaomi-miot/master/install.sh | ARCHIVE_TAG=latest bash -
configuration.yaml
shell_command:
update_xiaomi_miot: |-
wget -O - https://get.hacs.vip | DOMAIN=xiaomi_miot bash -
service: shell_command.update_xiaomi_miot
in Developer Tools⚙️ Configuration > Devices and Services > 🧩 Integrations > ➕ Add Integration > 🔍 Search
Xiaomi Miot Auto
Starting from the v0.4.4 version, the component has added support for selecting the connection device mode when integrated by account:
Suitable for devices support miot-spec protocol in LAN
Config Xiaomi cloud for the devices integrated by host/token
# configuration.yaml
xiaomi_miot:
username: xiaomi_username
password: xiaomi_password
# server_country: cn # Location of xiaomi cloud: cn(default), de, i2, ru, sg, tw, us
# http_timeout: 15 # Timeout (seconds) for requesting the xiaomi apis
⚙️ Configuration > Devices and Services > 🧩 Integrations > Xiaomi Miot Auto > Options > ☑️ Enable miot cloud
Looking forward to your contribution.
# configuration.yaml
xiaomi_miot:
language: zh # Using the built-in dictionary, currently only `zh` is supported
# https://github.com/al-one/hass-xiaomi-miot/blob/master/custom_components/xiaomi_miot/core/translation_languages.py
translations:
# Global dictionary
idle: '空闲'
busy: '工作中'
# Dictionary for specifying fan modes
fan.mode:
straight wind: '直吹模式'
natural wind: '自然风'
# Dictionary for specifying the drying modes of the washer
washer.drying_level:
moist: '微湿'
extra: '特干'
# configuration.yaml
homeassistant:
customize: !include customize.yaml
# Customize via device model
xiaomi_miot:
# https://github.com/al-one/hass-xiaomi-miot/blob/master/custom_components/xiaomi_miot/core/device_customizes.py
device_customizes:
chuangmi.plug.212a01:
miot_local: true
chunk_properties: 7
# Customize via parent entity
# customize.yaml
domain.your_entity_id:
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)
check_lan: true # Check LAN connection in cloud mode
miio_properties: power,battery # Get miio properties to state attributes
miio_cloud_props: prop.power,event.dev_online
# Custom sub entities
domain.parent_entity_id:
sensor_properties: temperature,humidity,illumination # Miot properties
binary_sensor_properties: is_volume_muted,any_boolen_property
switch_properties: on,power
number_properties: volume
select_properties: mode
fan_properties: mode,fan_level
cover_properties: motor_control
light.your_entity_id:
color_temp_reverse: false # Reverse color temperature (Requires reload config entry)
yeelight_smooth_on: 2000 # milliseconds (Only for Yeelights in local mode)
yeelight_smooth_off: 3000 # milliseconds (Only for Yeelights in local mode)
climate.your_entity_id:
bind_sensor: sensor.temperature_entity,sensor.humidity_entity # Sensor entities
camera.your_entity_id:
video_attribute: 1 # https://github.com/al-one/hass-xiaomi-miot/issues/11#issuecomment-773054167
keep_streaming: true # Continuously update stream address
cover.your_entity_id:
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 (Requires reload config entry)
position_reverse: true # Reverse motor position (Requires reload config entry)
open_texts: Open,Up
close_texts: Close,Down
media_player.mitv_entity_id:
bind_xiaoai: media_player.xiaoai_entity_id # Bind xiaoai speaker for turn on TV
domain.your_entity_id_xxxx:
interval_seconds: 30 # Seconds between each update state (Requires reload config entry)
chunk_properties: 10 # Chunk miot properties on update state (LAN)
reverse_state: true # Reverse the On/Off state of a binary sensor
Too many entity attributes will make your HA's database very large. If some entity attributes are useless to you, you can configure
exclude_state_attributes
to ignore them.
# configuration.yaml
xiaomi_miot:
exclude_state_attributes:
- miot_type
- stream_address
- motion_video_latest
This component has added support for configuration reloading (to avoid having to restart HomeAssistant instance after a YAML configuration change):
🔨 Developer tools > YAML Configuration > YAML configuration reloading > 🔍 Look for
Xiaomi Miot Auto
(almost at the bottom of the list)
This component uses the polling method to obtain the device state, so it cannot listen the events of some devices in real time.
Since the HA support service response has been for some time, this component no longer triggers events starting from v0.7.18.
xiaomi_miot.set_property
service: xiaomi_miot.set_property
data:
entity_id: camera.isa_hlc7_xxxx
field: camera_control.on
value: true
xiaomi_miot.set_miot_property
service: xiaomi_miot.set_miot_property
data:
entity_id: camera.isa_hlc7_xxxx
siid: 2
piid: 1
value: true
xiaomi_miot.get_properties
service: xiaomi_miot.get_properties
data:
entity_id: camera.isa_hlc7_1ab7
mapping:
- siid: 2
piid: 1
- siid: 3
piid: 2
update_entity: true # Update to entity state attributes
xiaomi_miot.call_action
service: xiaomi_miot.call_action
data:
entity_id: vacuum.dreame_p2259_entity_id
siid: 4 # vacuum-extend
aiid: 1 # start-clean
params:
- 18 # piid: 1 - work-mode
- '{"selects":[[7,1,0,2,1]]}' # piid: 10 - clean-extend-data
xiaomi_miot.send_command
service: xiaomi_miot.send_command
data:
entity_id: switch.your_entity_id
method: set_power
params:
- on
xiaomi_miot.get_token
service: xiaomi_miot.get_token
data:
name: Light # Keyword of device name in Mihome / IP / Model.
xiaomi_miot.intelligent_speaker
service: xiaomi_miot.intelligent_speaker
data:
entity_id: media_player.xiaoai_lx04_xxxx
text: Turn on the light
execute: true # Execute text directive.
silent: true # Silent execution.
xiaomi_miot.xiaoai_wakeup
service: xiaomi_miot.xiaoai_wakeup
data:
entity_id: media_player.xiaoai_lx04_xxxx
xiaomi_miot.renew_devices
service: xiaomi_miot.renew_devices
data:
username: 80001234 # Xiaomi Account ID / Email / Phone
xiaomi_miot.request_xiaomi_api
service: xiaomi_miot.request_xiaomi_api
data:
entity_id: sensor.your_entity_id
api: /v2/plugin/fetch_plugin
data:
latest_req:
api_version: 10070
plugins:
- model: brand.device.model
🔨 Developer tools > ℹ️ State > 🔍 Filter Entity
# configuration.yaml
logger:
default: warning
logs:
custom_components.xiaomi_miot: debug
xiaomi_miot.get_token
, Enter the keyword of device nameWrite custom log files
and Enable app's debug mode
vevs/logs/misc/devices.txt
after restart app