智能的概念现在非常普及,新房子装修时买了大量带wifi或蓝牙连接的设备,开关、灯和感应器以小米为主,但也有很多其他品牌,这样被迫装了一堆app,而且小米米家十分臃肿,要控制一下哪个设备操作烦琐,所以考虑用开源软件建立家庭智能化控制中心。
网络上有各种文章,由于系统环境的差异,一些经验介绍别人使用效果不好,甚至错误百出,个人经验是无论是系统安装还是设备接入,最重要的是去看官方文档,里面都有权威的说明,一般满足基本条件后都可以很好地进行。以下就网络上问得比较多的问题,介绍几条经验。
一、安装平台和形式的选择
1、优先考虑低功耗开发板或现有服务器安装
智能控制中心需要常年24小时开机运行,需要一台一直在运行的设备作为服务器,HomeAssistant官方为各种派专门定制了版本,用起来很方便,如果已经有了服务器,在上面加装也可以,毕竟该服务的资源消耗并不是很高。
2、同时,也比较推荐以docker方式运行官方镜像,稳定可靠。由于智能设备需要用到多种协议,适应各种品牌,所以在添加设备的时候经常需要安装各种依赖,如是该服务安装在主系统上,则经常会改动主系统,影响主系统的安全稳定,而且也不利于该服务的升级和数据备份。容器以独立的形式运行,各种环境修改定制都很方便。
sudo docker run -itd –net=”host” –restart=always –name=”homeassistant” -v ~/homeassistant:/config -e TZ=”Asia/Shanghai” homeassistant/home-assistant:latest
3、也有不同的版本形式供安装使用,如homeassistant、hassio等,建议安装hassio的版本,它集成好了一些组件,方便以后的使用。
二、升级homeassistant
很多组件安装时都要求较新的版本,这样系统升级就避免不了,docker中安装的homeassistant如何升级呢?两条命令即可完成。
1、ssh进入容器内部
docker exec -it homeassistant bash
2、用python包管理命令直接升级
pip install --upgrade homeassistant
3、重新启动容器
三、安装HACS社区应用市场
homeassistant除了小米Xiaomi Gateway (Aqara)等少数设备可以通过自动发现直接接入外,很多的设备要通过第三方插件来接入,安装HACS应用市场就很有必要,可以比较方便集中管理插件的安装删除,不用单独在Github上一个一个地下载解包配置。
安装HACS在网络上很多人都出现各种错误,其实官网有非常明确的介绍。
1、明确自己的homeassistant安装方式
大体三种主要方式,在操作系统上安装的、docker安装的还是本身就是HomeAssistant OS,每一种方式安装要求是很不相同的,具体参考:https://hacs.xyz/docs/installation/installation
2、docker容器中安装HACS
2.1 按官方指导文件下载错误
用wget -q -O – https://hacs.xyz/install | bash - 命令下载HACS出现系统错误,官方的HomeAssistant镜像基础系统是aphine linux,wget命令不好用。
a 直接进入HACS官方的Github仓库,点clone下载代码zip文件到本地,这步操作对上网没有什么要求,下载也很快。
b 在HomeAssistant安装时映射的文件夹中建立custom_components文件夹,要与configuration.yaml文件在同一级目录
c 将下载的文件解压,其中的hacs文件夹拷贝到custom_components文件夹中
2.2 配置HACS
a 在Github中申请token
在Github官网上注册一个帐户,并用该帐户登录。
注册没有特殊条件,按要求填写就可以了。
进入以下页面:
https://github.com/settings/tokens
填一个token的名字,其他选择全部留空,再按生成,最后得到一个token字符串,保存下来。
b 写配置文件
打开configuration.yaml文件,在最下面像这样写:
c 关闭homeassistant容器,再重新启动
d 登录homeassistant,进入配置,选择集成,在搜索中找到HACS完成添加。
如果没有找到,可以等一段时间甚至再重新启动容器,该服务的安装启动在第一次时比较慢,只要token和配置正确。
四、多个灯怎么接入
在接入小米pillips灯泡的时候遇到多个泡只能接入一个的问题,在网上一查很多人都碰到这个问题,在看一个关于yaml文件编写要求的视频时得到启发。
1、小米的灯可以接入多个,其它的品牌不知道,问题主要在yaml文件的编写。
2、写灯的yaml文件时,多个灯统一写在light条目下,每个灯空一行,以下的我的配置,供参考: