设备及服务 - 小米生态链 - WiFi
基于 WiFi 传输协议的设备使用 xiaomi_miio
平台。
所有的 WiFi 设备接入 Home Assistant 前都必须获取设备的 token。
Token 获取
小米 WIFI 设备需要获取 32 位的 token
才可以接入 HA,详见下方说明。
特别注意,记录下 token 后请直接使用米家 App 配对设备,勿再重置网络。否则,token 会发生变更。
已 ROOT 的安卓手机 或 电脑安卓模拟器(推荐)
- 打开手机 ROOT 权限,赋予文件管理器权限;
- 下载安装并使用『米家』App(请使用 5.0.19及之前版本 App,新版 App 已屏蔽 token 提取)连接所有需要的设备;
- 使用文件管理器(例如 ES 文件管理器),进入
/data/data/com.xiaomi.smarthome/databases/
,复制粘贴miio2.db
至有权限的文件夹 (例如下载
)。注意由根目录进入而不是主目录; - 方法一:使用 SQL 读取 App (推荐
aSQLiteManager
),打开miio2.db
文件直接打开devicerecord
项,手动寻找设备token
; 方法二:使用 SQL 读取 App (推荐aSQLiteManager
),点选Query
,输入select token from devicerecord where localIP is '192.168.0.1'
,将其中的 IP 地址替换为你想要查询的米家设备的 IP。 方法三(推荐):下载miio2.db
文件至电脑,将文件上传至网页:http://miio2.yinhh.com/ 直接获取。 - 记录下 token,建议保存在备忘录内。
Windows and Android
- 通过米家 app(5.0.19及之前版本)连接设备;
- 打开手机的开发者模式和 USB 调试模式,将手机连至电脑;
- 获取 ADB 工具:https://developer.android.com/studio/releases/platform-tools.html
- 创建 com.xiaomi.smarthome 的应用备份:
.\adb backup -noapk com.xiaomi.smarthome -f backup.ab
- 如果你的终端显示如下信息: "有多个设备或模拟器",使用下列指令显示所有设备:
.\adb devices
并执行下列指令:
.\adb -s DEVICEID backup -noapk com.xiaomi.smarthome -f backup.ab # (with DEVICEID the device id from the previous command)
- 在手机上选择确认备份,请勿输入任何密码;
- 获取 ADB 备份提取工具:https://sourceforge.net/projects/adbextractor/
- 提取所有备份文件:
java.exe -jar ../android-backup-extractor/abe.jar unpack backup.ab backup.tar ""
- 解压 ".tar" 文件;
- 使用 SQLite Manager 等类似工具,打开 sqlite 文件 miio2.db;
- 获取 "devicerecord" 数据表,即 token。
Linux + 已 Root 的 Android 设备
此教程建立在 安卓手机已 root 的情况下。
- 通过米家 app(5.0.19及之前版本)连接设备;
- 打开手机的开发者模式和 USB 调试模式,将手机连至电脑;
- 获取 ADB 工具,在终端中输入
apt-get install android-tools-adb
adb devices
将会显示你的设备adb root
(仅适用于 Linux development builds:ro.debuggable=1
)adb shell
echo "select name,localIP,token from devicerecord;" | sqlite3 /data/data/com.xiaomi.smarthome/databases/miio2.db
返回设备 token
飞利浦智睿系列灯具
全系设备支持,包括护眼灯 2 代,灯泡,蜡烛灯泡及吸顶灯。目前支持的操作有开 on
,关 off
,色温设置 set_cct
以及亮度设置 set_bright
。
示例配置
light: - platform: xiaomi_miio name: Xiaomi Philips Smart LED Ball host: 192.168.130.67 token: YOUR_TOKEN model: philips.light.bulb
变量说明:
- host (必填): 灯具的 ip
- token (必填): 灯具的 token
- name (可选): 灯具的昵称
- model (可选): 灯具类型,默认自动识别。支持的有
philips.light.bulb, philips.light.candle2, philips.light.sread1, philips.light.ceiling, philips.light.zyceiling
扫地机器人(一、二代)
目前支持的控制指令有启动 turn_on
, 暂停 pause
,原地停止 stop
,回到充电桩 return_to_home
,关闭并回到充电桩 turn_off
,定位 locate
,定点打扫 clean_spot
,设定吸力 set_fanspeed
以及远程控制。
示例配置
vacuum: - platform: xiaomi_miio host: 192.168.1.2 token: YOUR_TOKEN
变量说明:
- host (必需): 机器人 IP
- token (必需): 机器人 token
- name (可选): 机器人昵称
专有指令
除了 HA 中所有扫地机器人所能使用的通用指令 (turn_on
, turn_off
, start_pause
, stop
, return_to_home
, locate
, set_fanspeed
和 send_command
)外,小米的扫地机器人另支持一些特殊的远程操控指令,包括: xiaomi_remote_control_start
, xiaomi_remote_control_stop
, xiaomi_remote_control_move
和 xiaomi_remote_control_move_step
。
vacuum/xiaomi_remote_control_start
远程启动
属性 可选性 描述 entity_id
是 指明 ID 仅对部分设备有效,否则全局响应 vacuum/xiaomi_remote_control_stop
退出远程控制模式
属性 可选性 描述 entity_id
是 指明 ID 仅对部分设备有效,否则全局响应 vacuum/xiaomi_remote_control_move
远程控制扫地机器人,确保操作前已经开启远程控制模式
remote_control_start
。属性 可选性 描述 entity_id
是 指明 ID 仅对部分设备有效,否则全局响应 velocity
否 速度,值区间为 -0.29 至 0.29 rotation
否 旋转, 值区间为 -179° 至 179° duration
否 持续时间 vacuum/xiaomi_remote_control_move_step
使用此指令进入遥控模式,执行一项控制命令,然后退出手动控制模式。
属性 可选性 描述 entity_id
是 指明 ID 仅对部分设备有效,否则全局响应 velocity
否 速度,值区间为 -0.29 至 0.29 rotation
否 旋转, 值区间为 -179° 至 179° duration
否 持续时间
专有属性
除了 HA 上所有扫地机器人共有的默认属性 [vacuum
component attributes] (battery_icon
, cleaned_area
, fan_speed
, fan_speed_list
, status
, params
),小米扫地机器人另外拥有一些特别的属性。
它们是:最近清洁时间 cleaning_time
、勿扰模式 do_not_disturb
,主刷剩余寿命 main_brush_left
,边刷剩余寿命 side_brush_left
,滤网剩余寿命 filter_left
,清洁通道统计cleaning_count
,清洁区域统计 total_cleaned_area
以及清洁时间统计 total_cleaning_time
,详见下表:
属性 | 单位 | 说明 |
---|---|---|
do_not_disturb | 勿扰模式开启关闭状态 | |
cleaning_time | minutes 分钟 | 最近清洁时间 |
cleaned_area | square meter 平方米 | 最近清洁区域统计 |
main_brush_left | hours 小时 | 主刷剩余寿命 |
side_brush_left | hours 小时 | 边刷剩余寿命 |
filter_left | hours 小时 | 滤网剩余寿命 |
cleaning_count | 总清洁通道数 | |
total_cleaned_area | square meter 平方米 | 总清洁范围 |
total_cleaning_time | minutes 分钟 | 总清洁时间 |
插座及插线板
支持小米及创米各类插座及插线板,注意 Zigbee 插座请至对应文档查询接入方法。
switch: - platform: xiaomi_miio name: Original Xiaomi Mi Smart WiFi Socket host: 192.168.130.59 token: YOUR_TOKEN
空气净化器及加湿器
本组件为合并组件,2 种产品通用,配置方法相同。分别支持的数值有:
配置方法
fan: # 空气净化器 - platform: xiaomi_miio name: Xiaomi Air Purifier 2 host: 192.168.130.66 token: YOUR_TOKEN model: zhimi.airpurifier.m1 # 空气加湿器 - platform: xiaomi_miio name: Xiaomi Air Humidifier host: 192.168.130.72 token: 2b00042f7481c7b056c4b410d28f33cf model: zhimi.humidifier.v1
model 参数为支持的产品类型,可选项有:zhimi.airpurifier.m1
, zhimi.airpurifier.m2
, zhimi.airpurifier.ma1
, zhimi.airpurifier.ma2
, zhimi.airpurifier.sa1
, zhimi.airpurifier.sa2
, zhimi.airpurifier.v1
, zhimi.airpurifier.v2
, zhimi.airpurifier.v3
, zhimi.airpurifier.v5
, zhimi.airpurifier.v6
, zhimi.humidifier.v1
和 zhimi.humidifier.ca1
。组件自带型号识别,为避免识别错误或节省识别时间,可手动指定。
小米净水器
本组件为自定义组件,请至 Github 下载 mi_water_purifier.py
,放入 custom_components/sensor/
文件夹内(文件层级项目本身已经很清晰地给出了),在 configuration.yaml
添加如下设置:
sensor: - platform: mi_water_purifier host: YOUR_SENSOR_IP token: YOUR_SENSOR_TOKEN name: YOUT_SENSOR_NAME
接入后自动会生成几项相关的传感器数值,如果需要集中查看,请使用群组:
group: - xiaomi_water_purifier: name: Xiaomi Water Purifier icon: mdi:water entities: - sensor.tap_water - sensor.filtered_water - sensor.pp_cotton_filter - sensor.front_active_carbon_filter - sensor.ro_filter - sensor.rear_active_carbon_filter
PM 2.5 监测仪
官方(v0.65 及之后)
sensor: - platform: xiaomi_miio host: YOUR_SENSOR_IP token: YOUR_SENSOR_TOKEN name: YOUT_SENSOR_NAME
自定义组件(v0.64 及之前)
请至 Github 下载 mi_air_quality_monitor.py
,放入 custom_components/sensor/
文件夹内(文件层级项目本身已经很清晰地给出了),在 configuration.yaml
添加如下设置:
sensor: - platform: mi_air_quality_monitor host: YOUR_SENSOR_IP token: YOUR_SENSOR_TOKEN name: YOUT_SENSOR_NAME
空调伴侣
此部分文档仅涵盖基于 WiFi 的『空调控制』功能实现,网关功能请至对应文档页查看。
本组件为自定义组件,请至 Github 下载 mi_acpartner.py
,放入 custom_components/climate/
文件夹内,在 configuration.yaml
添加如下设置:
climate: - platform: mi_acpartner name: mi_acpartner host: 10.0.0.234 token: 8171378a40b1a77ee7a8254b15c75cfc target_sensor: sensor.temperature_158d00015aefc4
变量说明:
- host (必填): 空调伴侣 IP
- token (必填): 空调伴侣 token
- name (可选): 空调伴侣昵称
- target_sensor (必填):指定温度计,无内置温度计空调使用
插件默认支持大部分品牌的默认空调码,如果无法控制,请手动添加红外码,例如:
climate: - platform: mi_acpartner name: mi_acpartner host: 10.0.0.234 token: 9878a40b1a77ee7a8254b15c75cfb target_sensor: sensor.temperature_158d00015a sync: 60 customize: swing: //摆风 top: 010501820000261801 down: FEADASDSDSDSDSDSADSAFADSFASA fan: //风速 max: FEADASDSDSDSDSDSADSAFADSFASAD med: FEBDASDSDSDSDSDSADSAFADSFASAR min: 010501A20000261B01
Yeelight 灯具
使用前请确保在 Yeelight app 中与设备配对,升级至最新固件并开启“局域网控制(LAN Control)”,同时确定设备的 IP。
注意
Yeelight App 3.0 版本前『局域网控制』为『极客模式』。
示例配置
light: - platform: yeelight devices: 192.168.1.25: name: Living Room transition: 1000 use_music_mode: True #(defaults to False) save_on_change: False #(defaults to True) 192.168.1.13: name: Front Door
变量说明:
- ip (必须): IP
- name (可选): 昵称
- transition (O可选, 默认 350): 光效过渡时间(毫秒)
- use_music_mode (可选, 默认 False): 开启音乐随动模式,默认关闭
- save_on_change (可选, 默认 True): 保存当前状态为下次启动默认状态
音乐随动模式
每个灯泡每分钟的网络请求数最大为 60,这个限制可以通过开启音乐随动模式突破。在音乐随动模式中,灯具会响应任何时间传输回的控制信号,也就是说通信协议始终处于开启状态。但是该项设置并不适合部分场景,请按需配置。
红外万能遥控
注意
原生组件仅 0.63.0 及之后版本支持,既往版本请使用自定义组件接入。
示例配置
remote: - platform: xiaomi_miio host: 192.168.42.42 token: YOUR_TOKEN name: "IR remote" slot: 1 timeout: 30 hidden: false commands: activate_towel_heater: command: - raw:base64:[optional_frequency] read_bad_poem: command: - raw:base64:[optional_frequency] - pronto:pronto_hex:[optional_repeat]
变量说明:
- host: 设备 IP
- token: 设备 token
- name: 昵称
- slot: 存放红外码的栏,默认 1
- timeout: 学码延时
- hidden: 前端隐藏,默认 true
- command: 红外码
使用方法
此组件默认将生成 remote.xiaomi_miio_learn_command
service 用于学码。
使用时,前往 开发者工具
—— Service
面板——选择remote.xiaomi_miio_learn_command
—— Call Service
——将待学码设备对准万能遥控操作输出红外码,之后前端界面将显示接收到的码,即可添加进配置。
所学码形如 raw:Z6UFANEAAAAjAQAAAwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAE=
,部分带有频率 raw:Z6UFANEAAAAjAQAAAwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAE=:38400
部分设备供应商会提供十六进制码,形如 pronto:0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0623 015B 0057 0016 0E6E
或 pronto:0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0623 015B 0057 0016 0E6E:2
,也可直接添加使用。
控制按钮生成
此组件仅作学码使用,没有实际交互功能。成功学码后,可使用 script
脚本组件生成控制按钮:
script: towel_heater: sequence: - service: remote.send_command entity_id: 'remote.bathroom_remote' data: command: - 'activate_towel_heater' please_cover_your_ears: sequence: - service: remote.send_command entity_id: 'remote.bathroom_remote' data: command: - 'read_bad_poem'
小米 Wifi 放大器
小米 Wifi 放大器使用 xiaomi_miio
组件接入。
示例配置
device_tracker: - platform: xiaomi_miio host: 192.168.130.73 token: YOUR_TOKEN
米家 IH 电饭煲
本组件为自定义组件,请至 Github 下载 xiaomi_cooker.py
,放入 custom_components/sensor/
文件夹内(文件层级项目本身已经很清晰地给出了),在 configuration.yaml
添加如下设置:
sensor: - platform: xiaomi_cooker name: Xiaomi Rice Cooker host: 192.168.130.88 token: b7c4a758c251955d2c24b1d9e41ce47d model: chunmi.cooker.normal2
变量说明:
- host (必填): 电饭煲 IP
- token (必填): 电饭煲 token
- name (可选): 名称,仅限英文
- model (可选): 型号,支持
chunmi.cooker.normal2
和chunmi.cooker.normal5