平台介绍

OpenWrt

OpenWrt是一个针对嵌入式设备(例如路由器)的自由和开放源代码的操作系统。它基于Linux,并提供了一种替代设备厂商提供的固件的选择。

项目地址:https://github.com/openwrt/openwrt

Docker

Docker是一种开源平台,用于自动化部署、打包和运行应用程序。它通过容器化技术将应用程序及其依赖项打包到称为Docker容器的可移植容器中。Docker容器可以在任何支持Docker的操作系统上运行,而无需担心环境差异。

官网:https://www.docker.com/

Home Assistant

Home Assistant是一个社区活跃的开源的智能家居平台,其构建语言为Python,灵活的组件化设计,可以通过多种协议快速接入数以万计的设备。其控制平台包含Web、Android和iOS端。

以下是Home Assistant的一些主要特点和功能:

  • 平台支持:Home Assistant支持众多智能设备和系统,包括灯光、开关、传感器、摄像头、温度控制器、安全系统等等。它与各种品牌和协议兼容,如Zigbee、Z-Wave、WiFi、MQTT等,使用户可以集成多种设备到一个系统中。

  • 自动化:Home Assistant提供了强大的自动化功能,允许用户根据特定的条件和触发器创建自定义的自动化规则。用户可以通过简单的配置文件或可视化编辑器定义自动化任务,例如根据时间、传感器数据、设备状态等来执行特定的操作。

  • 配置和控制:Home Assistant提供了一个用户友好的Web界面,使用户可以方便地配置和控制智能设备。用户可以通过界面管理设备、创建和编辑自动化规则、查看传感器数据、控制设备状态等。

  • 数据可视化:Home Assistant提供了丰富的数据可视化功能,用户可以通过图表、仪表盘和历史记录查看和分析传感器数据、设备状态和自动化执行情况。这样用户可以更加了解和优化家居环境的运行情况。

  • 远程访问和控制:Home Assistant支持远程访问和控制,用户可以通过云服务或配置自己的远程访问方式,从任何地方使用手机、平板电脑或计算机控制和监控家居设备。

  • 社区支持和扩展性:Home Assistant拥有活跃的开发者社区,用户可以从社区中获取插件、主题和自定义组件来扩展和定制Home Assistant。同时,Home Assistant还支持第三方集成,如Google Home、Amazon Alexa和IFTTT等,以进一步扩展其功能和兼容性。

总体而言,Home Assistant为用户提供了一个强大而灵活的智能家居自动化平台,使他们能够集成、控制和自动化各种智能设备和服务,实现更智能、便捷和舒适的家居体验。

项目地址:https://github.com/home-assistant

Hassio Supervisor

Hassio Supervisor是Home Assistant操作系统(HassOS)中的一个关键组件,它是Home Assistant的管理和控制中心。Hassio Supervisor负责管理和监控Home Assistant容器及其相关的附加组件。

以下是Hassio Supervisor的一些主要特点和功能:

  • 容器管理:Hassio Supervisor可以管理和监控Home Assistant容器。它负责启动、停止和重启Home Assistant容器,并提供容器的状态信息和日志记录。

  • 插件管理:Hassio Supervisor支持安装和管理Home Assistant的插件,这些插件可以扩展Home Assistant的功能。用户可以通过Hassio Supervisor界面方便地安装、更新和卸载插件。

  • 系统管理:Hassio Supervisor提供了对Home Assistant操作系统的一些管理功能。它可以监控系统资源的使用情况,例如CPU和内存占用,还可以管理系统的网络设置和主机操作。

  • 自动更新:Hassio Supervisor可以自动检测并提供Home Assistant和相关组件的更新。它可以在用户授权的情况下自动下载和安装更新,保持系统和插件的最新状态。

  • 通知和日志:Hassio Supervisor可以生成系统通知,用于向用户发送重要的系统状态和事件信息。它还提供了日志记录功能,可以查看容器和系统的日志,以便于故障排除和问题解决。

  • 用户界面:Hassio Supervisor具有用户友好的Web界面,用户可以通过浏览器访问该界面来管理和监控Home Assistant系统。界面提供了直观的操作和配置选项,使用户能够轻松管理Home Assistant的各个方面。

Hassio Supervisor的出现简化了Home Assistant的管理和维护过程,使用户能够更方便地配置和扩展Home Assistant系统。它提供了一个集中化的界面和工具,使用户能够更轻松地管理Home Assistant容器和相关的插件。

项目地址:https://github.com/home-assistant/supervisor

背景介绍

存在多个平台智能设备,如果想要在一个平台统一进行管理,HomeAssistant就应运而生了,其天生的开源性让任何人可以开发设备所属插件,自由对设备进行控制。其自带的自动化功能可以让设备之间产生更多的联动。

安装

安装Home Assistant的方式有很多,其官网就列举了许多方式,以下简单进行介绍:

  • Home Assistant OS:Home Assistant提供了一个完整的操作系统镜像,称为Home Assistant OS(以前称为HassOS)。这是最简单的安装方式,用户只需将Home Assistant OS镜像烧录到SD卡或安装到支持的硬件设备上,然后将设备连接到网络即可。Home Assistant OS自带Hassio Supervisor,方便用户管理和扩展Home Assistant。

  • Home Assistant Supervised:这种安装方式适用于用户已经有一个Linux系统的情况,比如Ubuntu、Debian等。用户需要在Linux系统上安装Docker和Docker Compose,并通过脚本安装Hassio Supervisor。Hassio Supervisor会负责管理和监控Home Assistant容器及其相关组件。这种方式相对复杂一些,但提供了更大的灵活性。

  • Home Assistant Container:这种方式适用于有经验的Docker用户。用户可以直接使用Docker命令行工具或Docker Compose来部署Home Assistant容器。用户需要自行管理和配置容器的网络连接、存储卷等。这种方式适合那些对Docker和容器技术有一定了解的用户。

  • Home Assistant Core:Home Assistant Core是Home Assistant的核心引擎,可以在各种平台上安装和运行,如Windows、macOS、Linux和虚拟环境。用户需要手动安装和配置所有依赖项,并定期更新Home Assistant Core。这种方式适合有高度定制需求和技术能力的用户。

如何利用现有设备安装HomeAssistant呢,HomeAssistant支持容器化部署,可以选择直接安装Home Assistant,也可以选择安装Home Assistant Supervised。

前者的缺点比较明显,不能自主更新,不能安装插件,功能缺失较多,所以我们选择Supervised的安装方式。

OpenWrt官方对Docker的支持是在2017年开始的。在OpenWrt 17.01版本中,官方引入了对Docker的支持,并提供了相关的软件包和功能。

由于HomeAssistant占用空间过大,Docker空间至少要保证有5G以上的剩余空间。

我的OpenWrt是在J1900的CPU上搭建的,所以使用x86平台固件进行安装:

1
2
3
4
5
6
7
8
9
10
11
docker run -d --name hassio_supervisor \
--restart unless-stopped \
--privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/dbus:/var/run/dbus \
-v /docker_data/Configs/hassio:/data \
-e TZ=Asia/Shanghai \
-e SUPERVISOR_SHARE=/docker_data/Configs/hassio \
-e SUPERVISOR_NAME=hassio_supervisor \
-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant \
ghcr.io/home-assistant/amd64-hassio-supervisor:latest

其中docker_data为我的docker数据目录,请根据自己的情况进行更改。

随后依照网络环境,需要等待数分钟到几十分钟不等的时间,等待容器homeassistant启动后,访问8123端口,即可进入HomeAssistant管理界面。

升级

在OpenWrt环境下,Supervisor不是最新版本的情况下,会出现无法重启/升级HomeAssistant的情况,此时只需要升级Supervisor到latest即可,这也是我为什么推荐使用latest版本的原因。