Home assistant折腾记

早就听说过这个智能家居大杀器了,但是一直懒得折腾。家里这两年添置不少智能家电,但也很少整合起来用,基本上是几个APP各用各的,除了小米家的生态相对全一点以外,其它都是独立的。

最近因为一个常用的智能灯每次开关都要拿手机,太烦了,想搞一个整合方案就试了一下Home Assistant,果然有点意思。

安装

有很多方案,比如装在树莓派上(这个我没有),或装成虚拟机(感觉有点浪费),跑在docker容器里(这个好)。

不过有得必有失,装在树莓派上,可以直接通过GPIO操作外设,功能更多。装在虚拟机里会有一些docker版没有的功能。自己权衡利弊吧。

官方容器安装说明在此

我是直接用docker-compose来跑的。

version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - /PATH_TO_YOUR_CONFIG:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

注意,网络模式必须是host,否则无法查找本地接入的设备,privileged据说不是必须的,不过我也没试。

镜像放在ghcr.io,国内访问速度相当慢,最好加个代理或者找个国内的镜像。

配置

初始配置很简单,直接docker-compose up -d启动服务以后,就可以用浏览器访问服务器的8123端口:

http://your_ip:8123

按提示创建用户啥啥的,就可以进入管理页面了。

期间可以根据向导添加它找到的本地设备并进行配置。

第三方插件手工安装

虽然有HACS这样的第三方插件市场可以用,但是看了一下好像安装挺麻烦的,插件用得少的话,还是手工安装方便一些。

在容器里的/config,或者映射的外部路径里创建custom_components目录,然后下载插件,按插件说明把相应的内容放到这里,再重启Home assistant即可。

重启的方法可以用docker,也可以在管理界面上的“开发者工具-YAML配置”里找到“重新启动”的按钮。不同版本可能位置不一样,有些在“配置”里面,或者“开发者工具-服务”里面。

集成

天气

在管理端的“配置设备与集成-集成”页面里,点添加集成,可以看到有AccuWeather——这是一个我很喜欢的天气预告数据平台,它们的APP也很好用,信息相对准确,我出门旅游都靠它。现在,可以把它集成进来,以后可以配置一些天气相关的自动任务。

添加的方式也不复杂,就是需要先去AccuWeather的开发者平台去注册一个用户,然后申请一个API token,那边专门有一个指导教你如何创建一个用于Home assistant的APP用于获取API token。唯一需要注意的是:注册过程用了recaptcha,所以需要代理,否则注册不成功。

获得API token以后就可以集成到Home Assistant里了,然后就可以在仪表盘上添加天气卡片,系统里也会有一个天气设备。

小米

集成小米有几个方法:一个是系统自带了一个小米的集成(显示为xiaomi)可以用,另外就是第三方插件,常用的有两个:一个xiaomi_miot_raw(显示为Xiaomi MIot),另一个是xiaomi_miot(显示为Xiaomi Miot Auto)

首先,这几个集成如果用小米账号方式登录的话,必须是登录绑定设备的账号,分享设备的账号是不行的。其次,小米APP上据说只有安卓版才能取得设备token,iOS版没有——我是iOS版,所以无法通过单设备添加的方式来加入设备。

实际试用后发现,还是Xiaomi Miot Auto最好用。官方的登录小米账号后一次只能添加一个设备,不能批量添加。Xiaomi MIot则始终登录不成功,不知道问题在哪里。

不过我的灯不是小米自家的,是OPPLE的,所以只有一个开关,没有色温和亮度控制功能,这些还是只能在小米APP里操作。但同样是OPPLE的浴霸,倒是功能全面。

小米生态链的石头扫地机器人操作功能基本上就跟机身按钮一样,扫地、回充、暂停等,更复杂的功能还是需要APP。

美的

用的是这个Midea AC Lan插件,据说控制空调不错,不过控制不了我的蒸烤箱,洗碗机也只有开关功能,用处不大。

海尔

目前还没找到合适的方案。

目前也还没找到合适的方案。

华为

目前也还没找到合适的方案。

推送到[go4pro.org]