Home Assistant: Using the PC/Apple HomeKit to Control Mi Home Accessories

使用PC/Apple HomeKit控制米家等智能家居

在大一上时购入了一台二手树莓派3b,但一般也只用来挂一下pt,当个下载机和简易nas使用。后来发现Home Assistant这个软件可以连接许多智能家庭平台,于是在绿米Aqura空调伴侣打折时入了一个。

其实小米自己提供的米家app在功能上来说更加完善,不仅能设定更多的智能场景,还能通过公网控制设备,但想到小米系app一贯的作风(配置一个智能家居也强制需要读取识别码和位置权限…),只在ipad上安装了一个,手机上的配置好就马上卸掉了😂。

除了空调伴侣的功能,还可以当zigbee的网关和收音机用

首先在手机上配置好空调伴侣,之后就可以在手机上获取给HA控制的token了(狂点“关于”的空白处就有了)

会得到类似这样的东西:

Version no:245
网关ID:1XXXXXXXX
Zigbee通道:20
网关信息:
{"life":2333,"cfg_time":0,"token":"xxxxtokenxxxxx","mac":"AA:BB:CC:DD:EE:FF","fw_ver":"1.4.1_156","hw_ver":"MW300","model":"lumi.acpartner.v3","mcu_fw_ver":"0149","wifi_fw_ver":"SD878x-14.76.36.p84-702.1.0-WM","ap":{"rssi":-34,"ssid":"wifi-ssid","bssid":"11:22:33:44:55:66"},"netif":{"localIp":"192.168.1.x","mask":"255.255.255.0","gw":"192.168.1.1","gw_mac":"11:22:33:44:55:66"},"mmfree":163096,"ot":"otu","otu_stat":[44,107,183,0,183,403],"ott_stat":[0,0,0,0]}

子设备信息:
[]

然后在树莓派上安装Home Assistant(理论上也可以装在任何Linux的机子上)

HA官方推荐的方式是直接刷他们预制好的hass.io(似乎是一个魔改Linux?)但这样就树莓派别的事就干不了了,这里就用它提供的python虚拟机运行方式好了。

(以下在树莓派3b上可成功运行)

先把python装上:(速度太慢建议换源)

apt-get install python3-pip python3-venv
#可能还要装这几个
apt-get install build-essential libssl-dev libffi-dev python3-dev

创建给HA的python虚拟机

python3 -m venv homeassistant

切换到HA的目录

cd homeassistant

激活虚拟机环境

source bin/activate

装上HA(国内慢可换源

python3 -m pip install wheel
python3 -m pip install homeassistant

不过小米的空调伴侣似乎与最新版的HA不兼容(读不出空调),推荐先安装0.91.4的

pip3 install homeassistant==0.91.4
#多等一会,这一步比较慢

#装完之后输入
hass --open-ui
#来启动WebUI

然后可以在 http://your-rpi-ip:8123/ 上登陆HA的界面了(这一步第一次也会比较久,可能要10-20min)

如果能正常打开,就可以去改一下config了

cd .homeassistant/
#到存放配置的地方

现在里面新建一个 custom_components/climate 的文件夹,然后把这个repo里面的的climate.py放进climate文件夹,重命名成 xiaomi_miio_airconditioningcompanion.py

再回到 ~/.homeassistant 修改一下 configuration.yaml , 参考GitHub和这里的配置在文件后面添加一下设备:

xiaomi_aqara:
  gateways:
    - mac: 04CF8C9A59C1
      key: xxxxx
#网关功能

climate:
  - platform: xiaomi_miio_airconditioningcompanion
    name: Aqara Air Conditioning Companion
    host: AC.controller.s.ip
    token: xxxxx
    target_sensor: sensor.temperature_158d0001f53706
    scan_interval: 60
#空调遥控功能

如果要使用苹果的HomeKit来控制,还要加上:

homekit:
  auto_start: true
  port: 51827

保存退出,下一次打开webui的时候你应该就能看到那个调温的圆环和跟HomeKit配对的代码了(6位数)

直接在iPad/iPhone或者Mac上打开家庭应用,手动输入代码添加就可以用了,不过除非宿舍里有一台用来当hub的iPad/HomePod,操作必须在同一个网络下进行

homekit控制的话可选项会比较少,只能开关和调整温度

有了空调伴侣,天热时能够早些把空调打开,或者是在出门后确认一下空调有没有关,还是有些用处的。

(等期中考完就可以开始填坑了,也许会把之前配置校园网和内网网盘的东西弄上来?)