容器方式安装HomeAssistant

2023-03-05 17:26:59 0点赞 28收藏 2评论

前言

前文介绍了通过hassio_supervisor的方式安装homeassistant,hassio自带扩展市场,可以很方便的安装、配置扩展。但是屠龙者终成恶龙,随着hassio版本更新,引入了不少与openwrt不兼容的特性,而官方只打算维护与debian的兼容性,对于版本更新后在openwrt上运行出现的问题并不理会。在长达1年屏蔽更新用旧版本后,我终于下定决心,改为直接跑相应容器的方式安装HomeAssistant及其扩展。

操作

挂载

首先依然是建议把Docker分区挂载到/opt并开启btrfs透明压缩功能,缓解盒子内存太小的问题,改完重启生效。

容器方式安装HomeAssistant

挂载到/opt并开启btrfs透明压缩挂载到/opt并开启btrfs透明压缩

homeassistant

docker pull homeassistant/home-assistant
docker rm -f homeassistant; docker run -d --name homeassistant --privileged --restart always -e TZ=Asia/Shanghai -v /opt/hassio/homeassistant:/config --network host homeassistant/home-assistant

安装和更新版本都可以通过以上两行命令完成,第一行命令是下载最新版,第二行命令是删除旧容器并重新运行。更新版本后记得用docker image prune删除旧版本释放空间。可以在第二行的命令里按自身需要自由添加文件映射,例如

docker rm -f homeassistant; docker run -d --name homeassistant --privileged
--restart always -e TZ=Asia/Shanghai -v /opt/hassio/homeassistant:/config
-v /opt/hassio/share:/share # 映射/share目录
-v /opt/hassio/media:/media # 映射/media目录
--network host homeassistant/home-assistant

安装后依然是访问http://ip:8123/完成后续配置和使用。

容器方式安装HomeAssistant

nodered

docker pull nodered/node-red
docker rm -f nodered; docker run -d --name nodered --restart always -u root -e TZ=Asia/Shanghai -v /opt/hassio/homeassistant/node-red:/data --network host nodered/node-red

同样套路,第一行命令下载最新版,第二行命令删除旧容器并重新运行。
默认配置下可访问http://ip:1880/进行使用。如果需要调整监听地址或者设置访问密码,参考Securing Node-RED修改/opt/hassio/homeassistant/node-red/settings.js文件。

使用hassio时,homeassistant与nodered扩展是自动关联好的,但容器方式需要我们手动关联。首先访问homeassistant侧边栏最下面的“用户资料”页面,“创建令牌”并记下其值(注意复制完整)。

创建令牌创建令牌

然后访问nodered页面,安装home_assistant节点:右上角菜单 -> 节点管理 -> 安装 -> node-red-contrib-home-assistant-websocket -> 安装。

安装homeassistant节点安装homeassistant节点

如果需要home_assistant节点排在最前面,可以修改/opt/hassio/homeassistant/node-red/settings.js文件,查找categories一行,取消注释并添加home_assistant到最前面,改完docker restart nodered重启生效:

categories: ['home_assistant', 'subflows', 'common', 'function', 'network', 'sequence', 'parser', 'storage'],

再配置home_assistant节点:拖拽任意一个home_assistant节点 -> 双击 -> Server -> 编辑,“Access Token”输入前面记下的令牌值。配置好后跟用hassio时就没什么区别了。

容器方式安装HomeAssistant

配置home_assistant节点配置home_assistant节点

zigbee2mqtt

docker pull koenkk/zigbee2mqtt
docker rm -f zigbee2mqtt; docker run -d --name zigbee2mqtt --restart always -e TZ=Asia/Shanghai --device=/dev/ttyACM0 -p 8080:8080 -v /opt/hassio/zigbee2mqtt:/app/data -v /run/udev:/run/udev:ro koenkk/zigbee2mqtt

同样套路。参考Configuration | Zigbee2MQTT修改/opt/hassio/zigbee2mqtt/configuration.yaml进行配置。

mqtt

docker pull iegomez/mosquitto-go-auth
docker rm -f mqtt; docker run -d --name mqtt --restart always -e TZ=Asia/Shanghai -v /opt/hassio/mosquitto:/etc/mosquitto -p 1883:1883 iegomez/mosquitto-go-auth

nginx

docker pull nginx
docker rm -f nginx; docker run -d --name nginx --restart always -e TZ=Asia/Shanghai -v /opt/hassio/nginx:/etc/nginx --net host nginx

总结

通过容器安装HomeAssistant及其他功能,优点一是解决hassio更新带来的各种问题,二是对于容器具有完全控制权,可以实现在hassio方式中做不到的自定义文件映射等功能,不再受限hassio;缺点当然也是有的,得自己维护扩展配置文件,相比hassio难一点点,但借助百度谷歌,都能从网上找到答案。搞定配置文件以后,安装更新都是两条命令完事,一劳永逸,相比hassio频繁引入新问题,值!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
2评论

  • 精彩
  • 最新
  • 我现在是用docker刷到core版本。加载项和应用商店弄出来了一下子,然后重启后就没有了。不知道你样是否可以跳过加载项的功能直接安装 Roden

    校验提示文案

    提交
    相应的加载项功能都通过自己运行容器来实现,常用功能需要的命令我在这篇文章有写

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
28
扫一下,分享更方便,购买更轻松