查看: 3032|回复: 2

[经验] 家庭数字化系统 - 在树莓派上架设 Home Assistant

[复制链接]
  • TA的每日心情

    2020-3-6 09:52
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2019-2-18 16:06:43 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 风之物语 于 2019-2-18 16:08 编辑

    Home Assistant 简介
    Home Assistant(以下简称 HA) 是一个开源的智能家居网关项目,它可以将市面上所有支持的智能硬件设备整合到一起进行统一管理,并提供了默认的 Web UI。HA 社区开发了海量组件以支持市面上主流的设备,在 IoT 中扮演了大脑的角色。在家庭服务器上架设 HA 有多种实现方式,官方也制作了对应的系统镜像 Hass.io,并推荐使用「树莓派3B+」作为其宿主机器。


    前提条件

    为了验证预期效果,最好提前准备好以下设备:

    安装 Home Assistant

    通过 Docker Image 安装及更新一种服务免去了为该服务准备依赖环境的繁琐步骤,HA 官方推出了对应的 Docker Image 且支持树莓派的 CPU 架构,本文主要介绍通过 Docker 安装 HomeAssistant。如果你不喜欢 Docker,可以参考 Install Home Assistant 以其他方式安装。

    拉取 HomeAssistan Docker Image

    使用 Docker 安装 HA 是非常简单的,官方提供了支持 Raspberry Pi 3Docker Image 和「安装指南」:
    1. $ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
    复制代码
    参数 /path/to/your/config:/config 映射 container 的 /config 至本地主机的物理路径,此处我选择了 ~/.homeassistant。如果希望安装指定版本的 Image,参考「HA 在 Docker Hub 上的 Tag 列表」选择版本,例如 0.69.1:
    1. $ docker run -d --name="home-assistant" -v ~/.homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant

    2. Unable to find image 'homeassistant/raspberrypi3-homeassistant:0.69.1' locally
    3. 0.69.1: Pulling from homeassistant/raspberrypi3-homeassistant
    4. 95d54dd4bdad: Pull complete
    5. 72bf7d76c392: Pull complete
    6. 9620ed938a4f: Pull complete
    7. a16372392f2e: Pull complete
    8. cd5a28710c58: Downloading [===================================>               ]  2.695MB/3.766MB
    9. 9b376789f5cb: Downloading [====>                                              ]   1.49MB/16MB
    10. 428cd24e8c1b: Download complete
    11. 3e7ded663f3a: Downloading [=>                                                 ]  45.59kB/2.24MB
    12. 5ad200a39e9a: Waiting
    13. 47c50281d4f4: Waiting
    14. 34a35918edbb: Waiting
    15. ff968d62969e: Waiting
    16. 88d8e837fc65: Waiting
    17. 0048f1b252d1: Waiting
    18. fe24e50f4c0c: Waiting
    19. 8a894406a1f7: Waiting
    20. c521d5fa0262: Waiting
    21. b87db931bad3: Waiting
    22. faa8f2005c47: Waiting
    23. 0316d5cde9e4: Waiting
    24. aca6725ed6a1: Waiting

    25. # ...Docker 正从远程拉取所需的 image...

    26. Digest: sha256:76d8f1dee1d372fee469f688275854865e12ca662d4090800bb1a3ea5cefdf0f
    27. Status: Downloaded newer image for homeassistant/raspberrypi3-homeassistant:0.69.1
    28. c360dbc77bede87b4eae2210d7b2df11c80f13a5acb227feaf53b3b8554ef2cd
    复制代码
    安装完成后,HomeAssistant 的 container 已经开始运行:
    1. $ docker ps

    2. CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS               NAMES
    3. c360dbc77bed        homeassistant/raspberrypi3-homeassistant:0.69.1   "/usr/bin/entry.sh p…"   5 minutes ago       Up 5 minutes                            home-assistant
    复制代码
    查看刚刚指定的配置文件目录,出现了以下文件及目录:
    1. $ ls -l .homeassistant

    2. -rw-r--r-- 1 root root      2 May 21 03:42 automations.yaml
    3. -rw-r--r-- 1 root root   1800 May 21 03:42 configuration.yaml
    4. -rw-r--r-- 1 root root      0 May 21 03:42 customize.yaml
    5. drwxr-xr-x 2 root root   4096 May 21 03:42 deps
    6. -rw-r--r-- 1 root root      0 May 21 03:42 groups.yaml
    7. -rw-r--r-- 1 root root    106 May 21 03:43 home-assistant.log
    8. -rw-r--r-- 1 root root 126976 May 21 04:11 home-assistant_v2.db
    9. -rw-r--r-- 1 root root      0 May 21 03:42 scripts.yaml
    10. -rw-r--r-- 1 root root    157 May 21 03:42 secrets.yaml
    11. drwxr-xr-x 2 root root   4096 May 21 03:43 tts
    复制代码
    config 目录(此处为 ~/homeassistant/)下的 configuration.yaml 是配置文件的入口点,其他由 yaml 为扩展名的配置文件均是为了实现独立管理而单独分离出来的文件,可在 configuration.yaml 文档中找到如下入口载入这些配置文件:
    1.   customize: !include customize.yaml
    2.   group: !include groups.yaml
    3.   automation: !include automations.yaml
    4.   script: !include scripts.yaml
    复制代码

    8123 是 Web UI 的默认端口,尝试在浏览器中输入 http://{ip-address-to-raspberry}:8123 访问,得到如下结果:
    1.jpg
    HA 会自动查找接入同一网络中的智能设备,是因为 configuration.yaml 中默认配置了 Discovery 组件:
    1. # Discover some devices automatically
    2. discovery:
    复制代码
    接入 HA 的设备无需打开相应的 App 进行绑定。

    开机启动 HA Container
    一切正常之后,每次重启树莓派必须手动执行 docker container start [Container ID]/NAME 的方式来启动 HA 服务,我们需要将其做成服务或加入开机启动脚本,编辑 /etc/rc.local 文件:

    1. $ sudo nano /etc/rc.local

    2. docker container start home-assistant
    复制代码
    该脚本文件具体可参考 RC.LOCAL


    重启树莓派,HA 开机启动成功,至此,一个基本款的家庭 HA 搭建就完成了。

    更新 HA
    HA 目前仍然在快速迭代中,对应的 Docker Image 也会同步放出。要更新以 Docker Container 运行的 HA 实例,只要重新拉取最新版本的 Image 即可:
    1. $ docker stop home-assistant
    2. $ docker pull homeassistant/raspberrypi3-homeassistant
    3. $ docker container rm home-assistant
    4. $ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
    复制代码
    只要保持 container 的 name 一致,已添加至开机启动脚本中的代码在更新完 Image 之后无需更改。

    作者:FrostHe

    來源:简书




    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2019-4-20 14:37:17 | 显示全部楼层
    谢谢分享,看来值得一试 522.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-4-27 19:27
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2019-5-2 09:23:25 | 显示全部楼层
    谢谢分享,试一下。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 23:33 , Processed in 0.145032 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.