使用廉价电视盒子安装Home Assistant
本文将包含如下内容:
- Home Assistant简介
- 可安装Armbian的盒子简单分析
- 安装Armbian的简要步骤
- 安装Home Assistant的简要步骤
Home Assistant简介
按照官网描述,HomeAssistant是一个开源的、以本地控制和隐私保护为基础的家庭自动化系统。有以下几个特点
1. 开放
HA是一个开源的平台系统,可以在github找到相关源代码,同时它有丰富的开放API,因此有了丰富的插件(如Integration、Frontend等等)支持,可以带来这些好处:1)将其他平台的设备,全部接入HA,这样就实现了家庭智能设备的统一控制,如小米、涂鸦、Sonoff、;2)将HA上的设备统一接入其他平台,如你一堆的小米设备接入苹果的HomeKit,可以实现Siri来控制小米设备;3)其他自定义设备如软路由、NAS、DIY的设备通过各种方式接入HA控制;4)提供iOS、Android、PC各平台的控制终端
2. 本地部署
HA往往部署在本地的设备,这样有2个好处:1)速度快,比如你想做一个开门后自动开灯且播放欢迎提示音的自动化,使用云服务可能要几秒,使用家庭本地网络的HA会节省了公网网络传输的时间消耗;2)隐私,如果你比较担心家里的智能音箱、各种智能设备在偷偷监听上报数据(这个事情完全靠厂商自觉,本身智能设备就要持续上报数据,你无法判断是否上报了与其功能无关的数据),使用HA就没有这方面的苦恼了。
3. 更新频繁
HA目前一个月要更新好几个版本,一些漏洞在持续修复,能力也在持续优化,同时有很大的社区支持,
HA安装
官网给出4中安装方法(后2中不推荐):
- Home Assistant Operating System:作为操作系统直接安装在机器上
- Home Assistant Container:容器安装,如docker
- Home Assistant Supervised:手动安装(不推荐)
- Home Assistant Core:手动安装(不推荐)
HA底层基于Python,基本所有的系统都可以支持,所以几乎不挑硬件,X86、ARM平台都可以,官网推荐了两种ARM的单板系统(SBC,single-board computers):
- Home assistant Yellow(基于树莓派)
2. Home assistant Blue(基于Odroid)
平替
这两个SBC在中国不太好买,其次价格较高(Yellow的最低价格115刀,Blue的价格可以去搜Odroid N2,树莓派今年的价格也飙上去了)100刀都可以买到一个X86的主机来做server了。仔细看一下这个Blue,他的CPU是晶晨的S922X,晶晨还有S905系列,市场容量相当大,于是买了几个来试试。
硬件要求
部件 | 要求 | 备注 |
---|---|---|
CPU | 64位的4核ARM | 32位的晶晨S805(ARMv7)应该是不行的,跑很多东西找不到合适的包。S905、S922的各种型号,全志,只要能装Armbian都可以 |
内存 | 1G勉强也够,最好2G | 1G内存一般可用的有800M,我是用Docker跑,跑起来HA的7个容器,内存就已经捉襟见肘了,再跑一些插件、MQTT、nodered这些容器就不够用了,内存不够用会导致系统频繁读写交换空间Zram,导致系统负载高、无响应 |
磁盘/TF卡 | 16G以上:8G的存储是不够的,armbian安装加上容器大概需要7G左右;最好是大牌的如铠侠、闪迪、三星这些;也可以外接一个16g以上的SSD | 我之前用过杂牌TF卡,读写太慢会因为IO负载高最终导致系统无响应,后来用N1+铠侠64G,用了几个月感觉有点浪费,最后用了盒子原生的2+16eMMC的配置,刚好够 |
网络 | 有线网卡不需要千兆,百兆足够,;无线没太大用处 | 做服务器流量不大,但要响应快,有线比较靠谱 |
蓝牙 | 能驱动的板载蓝牙;USB蓝牙接收器;没有蓝牙也可以 | 蓝牙的功能很重要,很多智能设备都是蓝牙的,如果armbian系统没有可驱动的蓝牙,也可以有其他替代办法 |
由此看出,2G内存+16geMMC的配置是比较划算的,如果没有特殊需求,不需要另加其他外设。目前市场上还可以买到海思的ARM盒子,但海思芯片刷Armbian的不多,社区文档页少(可以看这个:glinuz/hi3798mv100),尽量还是选择其他芯片。
试过的盒子
1. R3300-L
根据成色、是否刷机、配件不同,价格也不同,普遍在50-70左右。
最开始买了这个小红盒,由于含有一个读卡器,且通过AV孔可以不拆机按住Reset键从而直接刷机,所以还比较受欢迎。最开始刷了Openwrt+Docker-ce安装HA,因为内存只有1G,会出现上文说道的负载高无响应的问题,所以后来删除了HA,只用作Openwrt,Openwrt本身对内存的要求不高(只需要100M左右),目前一直在用,半年没重启过了,稳得很。
2. N1
现在全套配件的得150+了,不是很划算,但确实N1这种各方面都不错的盒子也不多。
N1真的是各方面都基本够用,S905D+千兆网口+蓝牙+双频WiFi,不太有短板,怪不得这么几年过去了还是这么火,蓝牙是博通的芯片,可以Armbian直接驱动。但是如果刷Armbian会觉得它没有读卡器比较鸡肋,当然用USB外接读卡器或者直接接SSD都是好选项。N1+读卡器+64G卡用了大半年,没太大的问题,就是感觉老外接一个读卡器怪难受。
3. M401、E900V22C等新版魔百和
原装全套(盒子+网线+HDMI线+蓝牙遥控)价格在70左右,盒子比较新,不太买得到单机头的
最近在网上捡了一个移动新出的盒子M401A,买的时候只看重了它2g内存+16geMMC的配置,终于不用外接TF卡了。买来之后发现这个CPU是S905L3A,性能还不错,只是当前蓝牙还无法驱动。先是插了一个蓝牙接收器,但是蓝牙老掉线,后来索性就不要蓝牙了。
4. 其他ARM盒子、板子
树莓派、香橙派、各种派
安装步骤(卡刷)
卡刷或者线刷都可以,其中卡刷简单方便,不容易损坏盒子本身(丢三码),下文以卡刷为例
1. 寻找Armbian镜像并写入U盘或者TF卡
根据型号在网上找到合适的镜像,注意尽量不要找太老的镜像,如果是Ubuntu尽量选1804版本的或者2004版本的,版本较老本身没有太大的问题,但随着软件更新,难免未来某些软件就不支持老版本的内核了。大家在网上找到的镜像其实都差不多,无非就是根据不同的硬件所带的dtb和驱动不同,所以如果无法找到相应的镜像,可以随便找一个较新的的镜像,修改合适的dtb就行了。
这里提供一个R3300L的镜像: https://pan.baidu.com/s/1BesJhaKfKMF1WJapmUH6_Q 提取码: vs5g 下载:Armbian_5.99_Aml-g12_Ubuntu_bionic_default_5.3.0_rtl8189ftv.tar,不带桌面,带WiFi。
持续更新的镜像下载:https://github.com/zzcand111/amlogic-s9xxx-armbian 。历史的一些镜像下载:https://users.armbian.com/balbes150/arm-64/ (5.9的内核)。
要注意,5.9的内核我已经试过写入eMMC,可以正常使用,如果是5.9以上的内核,很多人说刷入eMMC会导致无法启动。
将镜像解压出来img格式,用Rufus等软件写入TF卡或者U盘。
2. 更换DTB,从U盘启动Armbian
写好U盘镜像后,U盘上会有一个FAT32的名叫BOOT的分区,如果是https://users.armbian.com/balbes150/arm-64/ 下载的镜像,需要做2件事情:
- 在extlinux/extlinux.conf文件中修改dtb文件
- 将u-boot-s905(只针对S905) u-boot-s905x2-s922* u-boot-s905x-s912(x905[w,d,l])中的某1个名词改为u-boot.ext
如果是其他地方下载的,只需要在BOOT分区的根目录下的uEnv.ini文件中修改dtb文件即可。
M401a、E900V22c等s905L3a的芯片使用dtb:meson-g12a-u200.dtb
,R3300L等s905L芯片使用meson-gxl-s905x-p212.dtb
。其他的机器找到响应的dtb文件即可。
U盘启动的方法
R3300L用牙签插入AV孔,按住Reset键,然后插上电源。其他盒子可以尝试root后安装从U盘启动的APP,R401可以拆开外壳,Reset键在板子背后,其他还有按遥控器的方法,可以根据型号自行搜索。从U盘启动后可以看有线网络是否驱动,这个是最重要的,一般都可以驱动。
第一次启动可能会花几分钟时间,因为系统要执行一些初始化的任务,可以插上HDMI屏幕,看一下是否成功。
3. 备份eMMC的系统
进入U盘的Armbian系统,执行命令ddbr,根据提示选择备份系统到U盘。
4. 写入eMMC
一般的CPU( s905[x,w,l,x2,x3],s912,s922)执行命令/root/install-aml.sh
,将系统写入eMMC。如果CPU是S905(不带任何后缀字母的版本),执行/root/install-aml-s905-emmc.sh
。写入成功后断电重启。
5. 更新证书
如果下载的比较老的镜像,在更换apt源之前需要先更新本机证书:apt install --reinstall ca-certificates
,不然由于本机证书比较旧,换源后会识别新的更新源证书无效。
6. 换源
1 | deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse |
换源后执行:apt update
7. 安装docker-ce
1 | 创建安装目录 |
安装完成后,修改国内镜像(加速下载镜像),更改docker目标文件夹(方便备份)
1 | vim /etc/docker/daemon.json |
8. 安装HA
安装HA比较简单,只需要安装homeassistant-supervisor,它会自动安装所有其他镜像。根据网速、CPU、磁盘写入速度不同,安装时间不确定,大概十几分钟到1个小时之间。
1 | 让homeassistant不做健康检查,/opt/docker为之前设置的docker安装目录 |
想看到执行过程的,可以执行docker logs -f hassio_supervisor
查看实时日志,有可能有些版本的docker安装好supervisor后不能上网,可以临时添加--net host
使它可以上网下载其他镜像,完成后再去掉此选项。因为这几个HA的镜像必须在一个内网才能互相访问。
9. 其他安装项
其他如MQTT、nodered可以在HA安装好后使用HAsupervisor以插件的形式安装,但如果想自己安装也可以。
1 | 安装MQTT,需要进入镜像修改配置文件 |
10. 网页打开HA页面,
假设Armbian的IP是192.168.3.3,则电脑打开http://192.168.3.3:8123查看安装状态,如果安装完成,则会出现设置密码的界面。