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插件,据说控制空调不错,不过控制不了我的蒸烤箱,洗碗机也只有开关功能,用处不大。
海尔
目前还没找到合适的方案。
tp-link
目前也还没找到合适的方案。
华为
目前也还没找到合适的方案。
推送到[go4pro.org]