Quantcast
Channel: 少数派
Viewing all articles
Browse latest Browse all 13772

Home Assistant + 树莓派:强大的智能家居系统 · 小米篇

$
0
0

小米的智能家居设备物美价廉,博得了国内外不少用户的喜爱。不要不信,在 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 文件层级
HASS 文件层级

回到 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

  1. 将扫地机器人与米家 app 适配连接,而后使用 iTunes 创建无加密的 iOS 备份
  2. 安装 iBackup Viewer
  3. 使用 iBackup Viewer 查看备份,将 /raw data/com.xiami.mihome/_mihome.sqlite文件解压至电脑
  4. 使用文件编辑器打开该文件,找到扫地机器人的 token
  5. configuration.yaml文件中填入下列设置:
- platform: xiaomi_vacuum   name: '机器人名字'   host: 192.168.1.2  token:

HB

  1. 安装扫地机器人插件
    npm install -g homebridge-xiaomi-mi-robot-vacuum miio
  2. 取消机器人与米家 App 的配对
  3. 同时按下机器人上电源和家按键 3 秒
  4. 将电脑连接至机器人生成的 Wi-Fi 热点上
  5. 打开终端,输入:
    miio --discover --sync
  6. 记录下 token
  7. 断开 Wi-Fi,将机器人重新与米家 app 配对,获取机器人的 IP 地址
  8. 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 + 树莓派」系列的更多文章:


Viewing all articles
Browse latest Browse all 13772

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>