HomeAssistant联动HomeKit

目录

对水果机来说,HomeKit还是比较方便的,可以用siri来控制。只是没有ipad作中枢,没办法HomeKit自动化和远程操作,可以用HomeAssistant来自动化和远程,Home Assistant功能更强大。

注意:本文内容已过时,仅做参考!

更新

启用HomeAssistant自带的Homekit组件似乎也不错,大大简化步骤,节约树莓派资源。
在配置文件里添加

homekit:

在Homekit里面屏蔽天气、设备之类的不能用的传感器 https://bbs.hassbian.com/thread-3589-1-1.html

注意:如果需要再次显示homekit的pincode,需要删除配置目录下的 .homekit.state ,不然怎么也没办法获得。

下面的不用再看了。

HomeBridge可以用于接入HomeKit,所以连接HomeAssistant和Homebridge就可以接入了,连接需要Homeassistant-Homebridge这个包。

安装

Node.js

zero系列是armv6的cpu,直接从软件源安装会出错。

从官网查看版本列表: https://nodejs.org/dist/

我这里用了最新的10.7.0版本,下载armv6版本的包:
wget https://nodejs.org/dist/v10.7.0/node-v10.7.0-linux-armv6l.tar.gz

解压
tar -xzf node-v10.7.0-linux-armv6l.tar.gz

拷贝
sudo cp -r node-v10.7.0-linux-armv6l/* /usr/local/

查看是否安装成功

node -v
npm -v

如果直接用sudo全局安装npm包会出现 gyp WARN EACCES user “root” does not have permission to access the dev dir… 的权限问题,所以修改一下默认的安装位置。

mkdir ~/npm-global
npm config set prefix '~/npm-global'

~/.bashrc 或是 ~/.zshrc 中添加 export PATH=~/npm-global/bin:$PATH

重开一个窗口,准备安装需要的包。

Homebridge

npm install -g homebridge --registry=https://registry.npm.taobao.org

Homeassistant-Homebridge

npm install -g homebridge-homeassistant --registry=https://registry.npm.taobao.org

使用

修改Homebridge配置文件 vim ~/.homebridge/config.json

{
    "bridge": {
        "name": "KittensHome",
        "username": "树莓派的mac地址",
        "port": 45536,
        "pin": "775-82-588"
    },
     "platforms": [
      {
        "platform": "HomeAssistant",
        "name": "HomeAssistant",
        "host": "http://127.0.0.1:8123",
        "password": "homeassistant的密码",
        "supported_types": ["automation", "binary_sensor", "climate", "cover", "device_tracker", "fan", "group", "input_boolean", "light", "lock", "media_player", "remote", "scene", "script", "sensor", "switch", "vacuum"],
        "default_visibility": "visible",
        "logging": true
      }
    ]
}

启动Homebridge: homebridge (需要先完成启动HomeAssistant)

启动成功后会出现可以扫描的数字图样,在水果的家庭App里面添加配件,扫描后输入配置文件中设置的pin码。

如果没有问题,HomeAssistant里面的“设备”应该都被添加进去了,可以控制的设备可以直接用siri来控制,也可以问siri温度之类的问题。

不需要显示的,如路由器的某个接入设备,可以在HomeAssistant网页端“自定义设备”,有一个选项是“hide in homebridge”。

每次更新HomeAssistant还需要重启HomeBridge才会更新,不知道有没有什么方便的操作。

参考

http://kittenyang.com/homebridge-practice/
http://cxlwill.cn/Home-Assistant/HomeAssistant-Device-Access/
https://home-assistant.cc/homebridge/node/