小米的智能家居设备物美价廉,博得了国内外不少用户的喜爱。不要不信,在 Home Assistant 官方论坛上,米家设备相关话题的热度一直居高不下。
通过之前的 安装篇与 设备接入篇,相信大家对 Home Assistant(HASS)有了一定程度的认识。结合少数派的其他几份文章,基于小米智能家居设备的用户量,我决定为其单独制作一份教程。
我们知道小米生态链挺复杂,紫米、绿米各种子公司,不管牌怎么换,对于集成平台来说,想要一统江湖,我们只需关心设备的传输协议即可。
目前有一个简单粗暴的标准,即如果一个设备需要小米多功能网关才可以使用,一般来说它采用的是 Zigbee 协议,那么只要网关接入了 HASS 就可以完美适配。而如果一个设备是独立接入网络的,比如米家 Wi-Fi 插座、扫地机器人、Yeelight 灯具等,我们则需要单独在 HASS 里接入它们。
类似的标准也适用于 Homeridge,homebridge-mi-aqara 插件正常情况下只支持 Zigbee 设备,其他设备需要另安装插件。
本篇教程将介绍将小米设备接入 HASS 和 Hombridge 两大平台的方法,具体选择哪个平台,大家各取所需,但请注意,同一设备智能接入一个平台。
下图是我自己整理的小米生态链设备支持列表:
表格使用 Google SpreadSheet编辑,国内用户请通过 有道云笔记访问,列表将会不断更新,也欢迎各位派友向我提供支持信息,直接表格内评论即可。
下面我们以传输协议为划分标准,分别介绍小米设备接入智能家居系统的方法:
Zigbee(小米多功能网关)
小米多功能网关(第二代)是大部分米家及 Aqara Zigbee 设备的联动基础,也是整个米家智能家居系统的核心。
要将网关接入 HASS,我们需要先打开网关的通信协议,并获取通讯密码。
打开米家 app,连接设置多功能网关,点击进入网关页面,点击右上角「…」,进入「设置」。点击第二行「关于」,狂点空白处,便会跳出「局域网通信协议」以及「网关信息」。进入「局域网通信协议」,打开开关,记录下密码,这就是之后待填的「key」。回到上级页面,进入「网关信息」,记录下 MAC 地址,这就是之后待填的「SID 或 MAC」。
HASS 50.0 及之后
通过 SMB 链接至树莓派,在 HASS 主目录打开 configuration.yaml
文件,在最后添加如下字段:
XIAOMI: GATEWAYS: - MAC: MAC 地址 (地址中「-」随意可加可不加,最前面的「-」必须保留) KEY: 通讯密码
(注意:字母全部大写)
之后重启 HASS 即可识别小米智能家居设备。
HASS 49.0 及之前
通过 SMB 链接至树莓派,在 HASS 主目录下创建 custom_components
文件夹,到 此处下载文件,解压后将文件夹内文件复制进 custom_components
文件夹。文件层级如下:
回到 HASS 文件夹,打开configuration.yaml
文件,在最后添加如下字段:
XIAOMI: GATEWAYS: - MAC: MAC 地址 (地址中「-」随意可加可不加,最前面的「-」必须保留) KEY: 通讯密码
(注意:字母全部大写)
注意:
原小米 HASS 插件已被另一作者修改,目前援引为最新版本。(即将被并入 HASS)如果你使用的是之前从其他渠道获得,即作者为 Lazcad 的 文件,则configuration.yaml
设置如下:
XIAOMI: GATEWAYS: - SID: MAC 地址 KEY: 通讯密码
(注意:字母全部大写,地址中间无需 -
号)
同时将 custom_components/switch/xiaomi.py
文件中 self._load_power = int(data[LOAD_POWER])
修改为self._load_power = float(data[LOAD_POWER])
。否则,型号为 ZNCZ02LM Zigbee 插座将会识别出错。
重启后,HASS 主界面将会自动识别网关及捆绑的所有设备。HB 也一并会自动嗅探,剩下就是在「家庭 app」里面慢慢添加了。
米家平台既支持 HASS,也支持 HB。如果你想通过后者接入,建议使用 homebridge-mi-aqara 插件,该插件较 homebridge-aqara 更新更频繁,对新设备支持较好。再次强调,同一设备只能接入一个平台
cdsudo npm homebridge-mi-aqara
安装运行过一次 Homebridge 后
cd /home/pi/.homebridgesudo nano config.json{"bridge": {"name": "Homebridge","username": "CC:22:3D:E3:CE:30(树莓派 MAC 地址)","port": 51826,"pin": "123-45-678(连接密码,自行设定)"},"platforms": [{"platform": "MiAqaraPlatform","sid": ["6409802da3b3"],"password": ["02i44k56zrgg578b"]}]}
这里特别注意和使用 HASS 的 HB 设置相区分,之后运行homebridge
即可。
Yeelight 灯具
Yeelight 目前已经从小米独立出来,运作良好,原生支持 Google Assistant 等平台,应该说是小米生态链下「走出去」的先锋。Yeelight 同时支持接入 HASS 和 HB 两大平台,前者支持音乐随动功能等,但对灯带支持不佳;后者则全产品支持,但是功能比较单一。这里两种方法均一并介绍。
插播新闻,目前 Yeelight 在 Kickstarter上众筹一款 LED 蜡烛灯,看起来挺有意思,大家可以关注一下。
HASS
打开configuration.yaml
文件,在最后添加如下字段:
light: - platform: yeelight devices: 192.168.1.25: #Yeelight灯具ip name: Living Room #昵称 transition: 1000 use_music_mode: True #(音乐随动模式,默认关闭)
HB
安装 Yeelight 插件
npm install -g homebridge-yeelight
然后什么都不用管了,手机会自动识别的。
以上 2 个是最常见的具有统一插件的设备适配,下面我挑选了几个特殊的常见设备介绍具体配制方法:
米家扫地机器人
扫地机器人的接入和设置目前比较麻烦,大家需要有点耐心,我相信随着插件的不断更迭,支持的功能会越来越多。
注:我没有扫地机器人,以下方法未经测试。
HASS
iOS & macOS
- 将扫地机器人与米家 app 适配连接,而后使用 iTunes 创建无加密的 iOS 备份
- 安装 iBackup Viewer
- 使用 iBackup Viewer 查看备份,将
/raw data/com.xiami.mihome/_mihome.sqlite
文件解压至电脑 - 使用文件编辑器打开该文件,找到扫地机器人的 token
- 在
configuration.yaml
文件中填入下列设置:
- platform: xiaomi_vacuum name: '机器人名字' host: 192.168.1.2 token:
HB
- 安装扫地机器人插件
npm install -g homebridge-xiaomi-mi-robot-vacuum miio
- 取消机器人与米家 App 的配对
- 同时按下机器人上电源和家按键 3 秒
- 将电脑连接至机器人生成的 Wi-Fi 热点上
- 打开终端,输入:
miio --discover --sync
- 记录下 token
- 断开 Wi-Fi,将机器人重新与米家 app 配对,获取机器人的 IP 地址
- 在
config.json
中添加如下内容:"accessories": [ { "accessory": "MiRobotVacuum", "name": "Vacuum Cleaner", "ip": "IP_ADDRESS_OF_THE_ROBOT", "token": "TOKEN_DISCOVERED_FROM_STEP_7", } ]
空气净化器
空气净化器目前仅支持 HB, HASS 将在下一版本更新中添加支持。
HB
安装插件:npm install -g homebridge-mi-air-purifier miio
添加配置:
"accessories": [ { "accessory": "MiAirPurifier", "name": "Air Purifier", "showTemperature": true, "showHumidity": true, "showAirQuality": true } ]
Changelog
- 7.23 修改设备支持列表,增加修改文件以适配 Zigbee 插座的方法,添加版本区分提醒。更新英文版小米设备支持列表。
继续阅读「Home Assistant + 树莓派」系列的更多文章: