小米IoT设备协议规范:MIoT Specification,简称:MIoT-Spec,是小米IoT平台根据硬件产品的联网方式、产品功能的特点、用户使用场景的特征和用户对硬件产品使用体验的要求,设计的描述硬件产品功能定义的标准规范。了解更多
而hass-xiaomi-miot插件利用了MIoT-Spec的规范,可将绝大部分小米设备轻松接入HomeAssistant,支持WiFi、蓝牙、ZigBee设备。且该插件支持HA后台界面集成,无需配置yaml即可轻松将小米设备接入HA。
HACS > 集成 > ➕ 浏览并下载存储库 >
Xiaomi Miot Auto
> 下载此存储库
HACS > 集成 >
Xiaomi Miot Auto
> 更新 / 重新下载
Samba
或SFTP
手动安装下载并复制
custom_components/xiaomi_miot
文件夹到HA根目录下的custom_components
文件夹
SSH
或Terminal & SSH
加载项执行一键安装命令wget -q -O - https://raw.githubusercontent.com/al-one/hass-xiaomi-miot/master/install.sh | ARCHIVE_TAG=latest bash -
# 如果遇到下载缓慢或下载失败可以执行下面的命令
wget -q -O - https://ghproxy.com/raw.githubusercontent.com/al-one/hass-xiaomi-miot/master/install.sh | HUB_DOMAIN=ghproxy.com/github.com ARCHIVE_TAG=latest bash -
# 或者
wget -q -O - https://raw.fastgit.org/al-one/hass-xiaomi-miot/master/install.sh | HUB_DOMAIN=hub.fastgit.xyz ARCHIVE_TAG=latest bash -
shell_command
服务configuration.yaml
shell_command:
update_xiaomi_miot: |-
wget -q -O - https://ghproxy.com/raw.githubusercontent.com/al-one/hass-xiaomi-miot/master/install.sh | HUB_DOMAIN=ghproxy.com/github.com ARCHIVE_TAG=latest bash -
service: shell_command.update_xiaomi_miot
⚙️ 配置 > 设备与服务 > 集成 > ➕ 添加集成 > 搜索
Xiaomi Miot Auto
自v0.4.4版本开始,插件新增支持账号集成时选择连接设备的模式:
通过host/token接入设备,适用于在局域网环境下支持miot协议的设备
为通过token集成的设备开启云端模式
# configuration.yaml
xiaomi_miot:
username: xiaomi_username
password: xiaomi_password
# server_country: cn # 小米云服务器位置: cn(默认), de, i2, ru, sg, tw, us
# http_timeout: 15 # 请求小米接口的超时时间(秒)
⚙️ 配置 > 设备与服务 > 集成 > Xiaomi Miot Auto > 选项 > ☑️ 开启云端模式
可以通过配置文件将大部分miot属性的选项描述(如:模式、风速等)翻译成你想要的语言,当然也欢迎你贡献你的词典给其他人。
# configuration.yaml
xiaomi_miot:
language: zh # 使用内置词典,目前仅支持`zh`
# https://github.com/al-one/hass-xiaomi-miot/blob/master/custom_components/xiaomi_miot/core/translation_languages.py
translations:
# 全局词典,对所有实体生效
idle: '空闲'
busy: '工作中'
# 指定风扇模式的词典
fan.mode:
straight wind: '直吹模式'
natural wind: '自然风'
# 指定洗衣机烘干模式的词典
washer.drying_level:
moist: '微湿'
extra: '特干'
# configuration.yaml
homeassistant:
customize: !include customize.yaml
# 通过设备型号自定义
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.yaml
domain.your_entity_id:
miot_local: true # 使用本地模式 (通过账号接入的设备)
miot_cloud: true # 为该实体开启云端模式 (read, write, action)
miot_cloud_write: true # 仅写属性使用云端模式
miot_cloud_action: true # 仅action使用云端模式
check_lan: true # 云端模式下检查设备在局域网是否可用
miio_properties: power,battery # 获取miio属性到实体的属性中
miio_cloud_props: prop.power,event.dev_online
# 自定义子实体
domain.parent_entity_id:
sensor_properties: temperature,humidity,illumination # Miot属性
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 # 反转色温(需重载集成配置)
yeelight_smooth_on: 2000 # 毫秒 (仅支持本地接入的易来灯)
yeelight_smooth_off: 3000 # 毫秒 (仅支持本地接入的易来灯)
climate.your_entity_id:
bind_sensor: sensor.temperature_entity,sensor.humidity_entity # 绑定传感器实体
camera.your_entity_id:
video_attribute: 1 # https://github.com/al-one/hass-xiaomi-miot/issues/11#issuecomment-773054167
keep_streaming: true # 持续更新流地址
cover.your_entity_id:
closed_position: 5 # 当实体位置值小于等于此值时为关闭状态
deviated_position: 2 # 位置偏差值 2% -> 0%, 98% -> 100%
motor_reverse: true # 反转电机状态(需重载集成配置)
position_reverse: true # 反转电机进程(需重载集成配置)
open_texts: 打开,升
close_texts: 关闭,降
media_player.mitv_entity_id:
bind_xiaoai: media_player.xiaoai_entity_id # 绑定小爱音箱以打开电视
turn_off_screen: true # 关闭电视/投影时发送熄屏指令
screenshot_compress: 20 # 指定电视/投影屏幕截图的压缩率 默认为50%,100时质量最高
sources_via_apps: 桌面,米家,百度网盘,设置 # 将电视内的APP添加到输入源列表
sources_via_keycodes: menu,enter,back # 将电视遥控按键添加到输入源列表
mitv_lan_host: 192.168.31.66 # 指定小米电视的局域网IP
domain.your_entity_id_xxxx:
interval_seconds: 30 # 每次更新状态间隔秒数(需重载集成配置)
chunk_properties: 10 # 单次查询设备属性的最大个数(LAN)
reverse_state: true # 反转开关状态(仅作用于Binary Sensor)
过多的实体属性会导致你的HA数据库变得很庞大,如果某些实体属性对你没有用处,你可以配置
exclude_state_attributes
来忽略它们
# configuration.yaml
xiaomi_miot:
exclude_state_attributes:
- miot_type
- stream_address
- motion_video_latest
本插件支持配置重载(修改YAML配置后无需重启HomeAssistant):
开发者工具 > YAML 重载 > 配置重载 >
重载 XIAOMI MIOT AUTO
本插件使用轮询的方式获取设备状态,因此无法实时监听部分设备的事件
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 # 更新实体状态属性
throw: true # 在HA通知中显示结果
触发事件
xiaomi_miot.got_miot_properties
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
throw: true # 在HA通知中显示结果
触发事件
xiaomi_miot.call_miot_action
xiaomi_miot.send_command
service: xiaomi_miot.send_command
data:
entity_id: switch.your_entity_id
method: set_power
params:
- on
throw: true # 在HA通知中显示结果
触发事件
xiaomi_miot.send_miio_command
xiaomi_miot.get_token
service: xiaomi_miot.get_token
data:
name: Light # 米家中的设备名称关键词或IP、型号
xiaomi_miot.intelligent_speaker
service: xiaomi_miot.intelligent_speaker
data:
entity_id: media_player.xiaoai_lx04_xxxx
text: Turn on the light
execute: true # 执行指令
silent: true # 静默执行
xiaomi_miot.xiaoai_wakeup
service: xiaomi_miot.xiaoai_wakeup
data:
entity_id: media_player.xiaoai_lx04_xxxx
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
触发事件
xiaomi_miot.request_xiaomi_api
查看更多服务
开发者工具 > ℹ️ 状态 > 筛选实体
# 使用HA服务 (无需重启)
service: logger.set_level
data:
custom_components.xiaomi_miot: debug
# 或者修改 configuration.yaml (需重启)
logger:
default: warning
logs:
custom_components.xiaomi_miot: debug
⚙️ 配置 > ⚙️ 系统 > ✍️ 日志
使用HomeAssistant服务
xiaomi_miot.get_token
,输入设备名称关键词使用@vevsvevs修改版的米家
Write custom log files
和Enable app's debug mode
vevs/logs/misc/devices.txt
文件中找到token参考文献:
Xiaomi Miot For HomeAssistant
Homeassistant - 使用小爱音箱控制 Hass 设备
9 个月前 (1月 8 2022)