安装系统
HomeAssistant提供内置HomeAssistant服务的Raspbian系统——Hassbian,https://home-assistant.io/docs/hassbian/installation/ 下载最新版本,然后使用Etcher刷入TF卡。
SSH连接树莓派
将树莓派插卡通电,并连上网线,前往路由器的DHCP找到树莓派的IP地址,分配一个静态IP,重新连接网线即可使用ssh连接树莓派。
Windows下推荐使用putty。
默认用户名pi,默认密码 raspberry。
可以通过passwd命令修改默认密码
自动连接wifi
sudo iwlist wlan0 scan
该命令可以找到所有可用的无线网络,每个cell代表一个。
通过ESSID找到需要连接的网络,并记下名称。
用nano配置wifi信息:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
在最下方填入wifi信息
control+o回车,control+x保存并退出编辑器。
最后重启树莓派
sudo reboot
更换国内源
国内网络访问树莓派的源速度很感人,可以将其换位国内镜像源。
source镜像可以使用阿里的,需要编辑/etc/apt/sources.list,注释掉原来的source,改为阿里云镜像
此外还要更换树莓派的镜像,需要编辑/etc/apt/sources.list.d/raspi.list,修改方法类似,改为
然后应用更新即可
sudo apt-get update
sudo apt-get upgrade
使用HomeAssistant服务
HomeAssistant安装在目录为/srv/homeassistant的虚拟python环境下,配置文件保存在/home/homeassistant/.homeassistant下,系统安装后一般需要5-10分钟下载相关服务,可以通过ls -a看看有没有该文件夹来判断是否已经下载完成。
当然等不及也可以选择手动更新。
如果服务已经下载好,浏览器输入192.168.*.*:8123就可以访问HomeAssistant了。
关于配置文件和Yaml
HomeAssistant的配置工作都是在Configuration.yaml里完成的,该配置文件是用Yaml写的,每个字段都代表一个服务。
Yaml也很好理解,和Json有些类似,不过Json使用{},而Yaml使用缩进来表示层级关系。需要注意的是缩进不能使用Tab键,只能用空格。缩进时相同层级的元素需要左对齐,而空格数目并不重要。
Yaml同样使用#表示注释,从该字符到行尾会被忽略。
列表和字典是Yaml中的两种数据结构,列表用-(横杠和空格)开头。
加入Yeelight
参考官网的文档,只需要在Configuration.yaml中添加以下内容就可以了:
这里的light是系统关键字,指定这是控制灯的服务;platform指定了品牌;devices下是对应的具体的灯,以IP区分,可以命名为不同的name。
配置文件完成后,需要重启HomeAssistant,然后在管理页面就可以看到对应的版块了。如果配置发现错误,管理页面也会给出相应的提示。
在通过HomeAssistant控制yeelight灯泡前,需要首先使用Yeelight的APP在设置里打开灯泡的“Developer Mode(极客模式)”。
添加BroadLink的支持
BroadLink可以看做是一个红外/射频发射器,它通过学习红外码和射频信号,实现其它电器遥控器的功能,并通过手机进行控制。
BroadLink已经集成在了HomeAssistant里,可以查看相关文档
同样是在Configuration.yaml里添加以下内容:
此外还有一些可选选项
| 参数 | 解释 |
|---|---|
| friendly_name | 在前端显示的设备名称 |
| type | 设备类型,取值为{rm, rm2, rm_mini, rm_pro_phicomm, rm2_home_plus, rm2_home_plus_gdt, rm2_pro_plus, rm2_pro_plus2, rm2_pro_plus_bl, rm_mini_shate, sp1, sp2, honeywell_sp2, sp3, spmini2 or spminiplus} |
对于switches中的每一个,参数为
| 参数 | 类型 | 解释 |
|---|---|---|
| identifier | 必需 | 名称,如例子中的reciever |
| friendly_name | 可选 | 前端显示的名称 |
| command_on | 必需 | Base64 encoded packet from RM device to take for on |
| command_off | 必需 | Base64 encoded packet from RM device to take for off |
这些参数里的IP和Mac地址都可以在路由器里找到,注意在路由器的DHCP里绑定Mac地址和静态IP地址。command_on和command_off是电器开关的红外或射频码,需要通过BroadLink学习得到。
在HomeAssistant的控制页面,选择Developer Tools -> Service,在Call a service from a component下,Domain选择broadlink,Service选择learn_command_**_**_**_**,其中**代表设备的IP地址。然后点击CALL SERVICE。
正常的话,BraodLink会亮橙色的灯,表示正在学习中。使用遥控器,对准BroadLink按下“开”,如果橙色灯熄灭,就表示学习成功。前往Developer Tools下的States,找到Recieved packet is: *******,后边的字符串就是按下按钮的红外码,将其复制到配置文件中就可以了。
填好参数后,重启HomeAssistant,就能在控制页面中看到了。