Homeassistant docker配置

Homeassistant docker配置

【说明】本系列为自用教程,记录以便下次使用
【背景】一台J1900 4G+64G的小主机,安装了OP系统,里面自带了Docker。为实现Homeassistant(简称HA)控制智能家居设备,进行如下配置。
【参考】主要基于GPT生成的教程,并基于自己的测试,进行配置。如有特殊参考,会在文中备注。
【通用账号】:能修改的使用root,不能修改的一般为admin

一、配置Portainer

Portainer 是一个用于 Docker 容器管理的可视化界面工具。方便管理容器和卷。

  1. 创建 Portainer 数据卷:
docker volume create portainer_data
  1. 运行 Portainer 容器:
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

指令的解释:
-d:表示在后台模式运行容器。
-p 9000:9000:这将宿主机的 9000 端口映射到容器的 9000 端口。
–name portainer:为容器指定一个名称。
–restart always:确保容器在任何情况下都会重新启动。
-v /var/run/docker.sock:/var/run/docker.sock:这允许 Portainer 直接访问 Docker API。
-v portainer_data:/data:将前面创建的数据卷挂载到容器内。
完成上述步骤后,你可以通过浏览器访问 http://<你的服务器IP>:9000 来使用 Portainer 界面进行 Docker 容器的管理。

  1. 配置
    访问http://<你的服务器IP>:9000,进行账密配置。

二、配置HA的docker

要在 Docker 中安装 Home Assistant,你可以使用官方的 Home Assistant Docker 映像。

  1. 创建一个数据卷 (用于存储 Home Assistant 的配置和数据):
docker volume create homeassistant_data
  1. 运行 Home Assistant 容器:
docker run -d --name="home-assistant" -v homeassistant_data:/config -e "TZ=Asia/Shanghai" --net=host homeassistant/home-assistant:stable

指令的解释:
-d:表示在后台模式运行容器。
–name=“home-assistant”:为容器指定一个名称。
-v homeassistant_data:/config:将前面创建的数据卷挂载到容器内,用于存储 Home Assistant 的配置。
-e “TZ=Asia/Shanghai”:设置时区为上海 (你可以根据需要修改为其他时区)。
–net=host:这允许 Home Assistant 使用宿主机的网络,有助于自动发现和控制本地网络上的设备。
homeassistant/home-assistant:stable:使用稳定版的 Home Assistant 映像。
完成上述步骤后,你应该可以通过浏览器访问 http://<你的服务器IP>:8123 来访问 Home Assistant 的界面,并进行初始设置。

  1. 配置
    访问http://<你的服务器IP>:8123 ,进行账密配置。其他配置在后续说明

三、配置MQTT服务器(Eclipse Mosquitto)

对于 MQTT 服务器,经常推荐使用的是 Eclipse Mosquitto。Mosquitto 是一个开源的 MQTT 代理,非常轻量级且可靠,可以很好地与 Home Assistant 和 Node-RED 配合使用。
额外参考:https://zhuanlan.zhihu.com/p/452896841

  1. 创建 Mosquitto 数据卷:
docker volume create mosquitto_config
docker volume create mosquitto_data
docker volume create mosquitto_log
  1. 配置 mosquitto.conf 文件:
    mosquitto_config下创建文件mosquitto.conf,特别注意,由于使用docker volume创建,应该是在mosquitto_config的_data文件夹下。实际路径如下:
cd /opt/docker/volumes/mosquitto_config/_data
touch mosquitto.conf
chmod 755 mosquitto.conf		# 需要给权限,因为容器可能要读写
nano mosquitto.conf

写入以下内容:

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
allow_anonymous true
listener 1883
  1. 运行 Mosquitto 容器:
docker run -d \--name mosquitto \--privileged \-p 1883:1883 \-p 9001:9001 \-v mosquitto_config:/mosquitto/config \-v mosquitto_data:/mosquitto/data \-v mosquitto_log:/mosquitto/log \--restart always \eclipse-mosquitto

三、配置MariaDB数据库

Home Assistant 默认使用 SQLite 数据库,但在大型设置或长时间使用后,使用 MariaDB 或 PostgreSQL 可能更高效。
为了长时间运行的稳定,那还是设置吧

  1. 创建一个持久化存储数据的 Docker 卷:
    MariaDB 将其数据存储在 /var/lib/mysql,所以为了确保数据的持久性,我们应该为这个路径创建一个 Docker 卷。
docker volume create mariadb_data
  1. 启动 MariaDB 容器:
    使用以下命令运行 MariaDB 容器,注意替换 password 为您自己的值。
docker run -d \--name mariadb \--privileged \--restart always \-e MYSQL_ROOT_PASSWORD=password \-e MYSQL_DATABASE=homeassistant \-e MYSQL_USER=root \-e MYSQL_PASSWORD=password \-v mariadb_data:/var/lib/mysql \-p 3306:3306 \mariadb:latest
  1. 配置 Home Assistant 使用 MariaDB:
    如之前所述,您需要更新 Home Assistant 的 configuration.yaml 文件,指向这个新的 MariaDB 实例。修改password。
recorder:db_url: mysql://root:password@127.0.0.1/homeassistant?charset=utf8
  1. 之后重启HA
    使用数据库工具DBeaver,连接这个数据库进行查看,可以看到正常。

四、配置Node-RED

Node-RED 是一个基于流的开发工具,用于连接硬件设备、API 和在线服务。

  1. 创建 Node-RED 数据卷 (用于存储 Node-RED 的配置和数据):
docker volume create nodered_data
  1. 运行 Node-RED 容器:
docker run -d --name nodered -p 1880:1880 -v nodered_data:/data --user node-red --restart always nodered/node-red:latest

指令的解释:
-d: 表示在后台模式运行容器。
–name nodered: 为容器指定一个名称。
-p 1880:1880: 这将宿主机的 1880 端口映射到容器的 1880 端口。
-v nodered_data:/data: 将前面创建的数据卷挂载到容器内,用于存储 Node-RED 的配置。
–user node-red: 以 node-red 用户身份运行 Node-RED,增加安全性。
–restart always: 确保容器在任何情况下都会重新启动。
nodered/node-red:latest: 使用最新版本的 Node-RED Docker 映像。

完成上述步骤后,你应该可以通过浏览器访问 http://<你的服务器IP>:1880 来访问 Node-RED 的界面并开始构建你的流。

五、配置ESPHome

ESPHome 是一个很好的选择,尤其是如果你计划使用 ESP8266 或 ESP32 微控制器来扩展你的 Home Assistant 设置。

  1. 创建 ESPHome 数据卷 (用于存储 ESPHome 的配置和数据):
docker volume create esphome_data
  1. 运行 ESPHome 容器:
docker run -d \--name esphome \-p 6052:6052 \-v esphome_data:/config \--restart always \esphome/esphome

完成上述步骤后,你应该可以通过浏览器访问 http://<你的服务器IP>:6052 来访问 ESPHome 的界面,并开始创建和管理你的设备配置。

六、配置Duplicati

Duplicati 是一个备份软件,用于存储加密的、增量的、压缩的备份到云或本地存储。下面是在 Docker 中安装 Duplicati 的步骤:

  1. 创建 Duplicati 的数据卷 (用于存储配置和备份数据):
docker volume create duplicati_backups
docker volume create duplicati_config
docker volume create duplicati_data
  1. 运行 Duplicati 容器:
    注意替换/opt/docker/volumes为你需要备份的文件夹。
docker run -d \--name duplicati \-p 8200:8200 \-v duplicati_backups:/backups \-v duplicati_config:/config \-v duplicati_data:/data \-v /opt/docker/volumes:/source:ro \--restart unless-stopped \duplicati/duplicati
  1. 配置
    首先在设置中设置密码。
    随后创建备份,使用onedrive或其他进行备份。

七、配置HA的HACS

参考官方:https://hacs.xyz/docs/setup/download/,使用container的教程

  1. 打开HA的bash,输入如下指令即可
wget -O - https://get.hacs.xyz | bash -
  1. 打开HA中的高级模式
  2. 添加集成HACS,并进行相应配置,即可显示HACS内容

八、配置HA的Node-Red

  1. HACS安装Node-Red
  2. 添加集成Node-Red
  3. HA导航栏添加Node-Red
    配置configuration.yaml,添加如下内容后重启HA。(顺带把ESPhome的也添加进来)
panel_iframe:nodered:title: 'Node-Red'icon: 'mdi:shuffle-variant'#填写node-red的地址url: 'http://192.168.5.1:1880/'esphome:title: 'ESPHome'icon: 'mdi:car-esp'#填写node-red的地址url: 'http://192.168.5.1:6052/'

在这里插入图片描述

九、配置Node-Red

  1. 在Node-Red中添加节点node-red-contrib-home-assistant-websocket,并安装
  2. 拖入一个HA节点,随后进行HA的配置,如下:
    在这里插入图片描述
  3. 其中的令牌在HA中创建并复制
  4. 测试一下,获取IP并显示
    在这里插入图片描述

十、配置MQTT

  1. HA添加集成MQTT,并配置如下:
    在这里插入图片描述

  2. 进行测试
    在这里插入图片描述

  3. 使用MQTT发布一个传感器给HA的教程,请参考另外一个博客。

十一、配置彩云天气

  1. HACS搜索彩云天气,安装组件和卡片
    在这里插入图片描述
  2. 添加集成Colorfuclouds,并进行相应配置
  3. 在主页中添加卡片,为了高级使用,要学会使用编辑器。
    在这里插入图片描述

十二、配置mini-graph-card

可以在主页显示好看的时序数据,比如温湿度、流量、等等

  1. HACS搜索并安装

  2. 添加如下卡片:
    在这里插入图片描述

  3. 手动添加卡片到资源中
    可能会出现卡片无法检索到,需要手动添加。
    首先在HACS的该卡片,打开源获得该卡片路径:http://192.168.5.1:8123/hacsfiles/mini-graph-card/mini-graph-card-bundle.js
    其次,在配置-仪表盘-资源(右上角选择),添加如下资源。可以看到,这里还包括的彩云天气得到资源
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车屏类产品(三):抬头显示Head-Up Display(HUD)

前言 你的下一台车,一定要考虑加装一个HUD。 汽车抬头显示器或汽车抬头显示器(也称为汽车HUD)是任何透明的显示器,它可以在汽车中显示数据,而不需要用户将视线从平时的视角移开。这个名字的由来源于飞行员能够在头部“向上”并向前看的情况下查看信息,而不是向下倾斜查…

[swift刷题模板] 树状数组(BIT/FenwickTree)

[TOC]([swift刷题模板] 树状数组(BIT/FenwickTree) ) 一、 算法&数据结构 1. 描述 [python刷题模板] 树状数组 二、 模板代码 1. 单点赋值(增加)&#xff0c;区间求和(PURQ) 例题: 307. 区域和检索 - 数组可修改 class BIT {var c: [Int]var n: Int init(_ n: Int){c…

OpenCV+QT实现的数字图像处理算法合集

源码下载地址&#xff1a; 基于OpenCV和QT的图像处理源码 图像预处理 灰度处理 灰度直方图 灰度均衡 梯度锐化 Laplace锐化 边缘检测 Roberts Sobel Laplace Prewitt canny Krisch 噪声 椒盐噪声 高斯噪声 滤波 均值滤波 中值滤波 双边滤波 形态学滤波 高斯滤波 图像变…

java--自增自减运算符

1.自增自减运算符 注意&#xff1a;、--只能操作变量&#xff0c;不能操作字面量的。 2.自增自减的使用注意事项 1.、--如果不是单独使用(如果在表达式中、或者同时有其它操作)&#xff0c;放在变量前后会存在明显区别 1.1放在变量前面&#xff0c;先对变量进行1、-1&#xff…

内网穿透的应用-如何通过TortoiseSVN+内网穿透,实现公网提交文件到内网SVN服务器?

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

北邮22级信通院数电:Verilog-FPGA(6)第六周实验:全加器

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 先抄作业&#xff01;&#xff01;&#xff01;&am…

内衣洗衣机有必要买吗?口碑好的小型洗衣机测评

在近年以来&#xff0c;由于人们对健康的认识和生活质量的不断改善&#xff0c;使得内衣洗衣机这一类的产品在近年来得到了飞速的发展&#xff0c;洗烘一体机、洗烘套装的价格总体下降&#xff0c;功能和性能都得到了改善&#xff0c;往往更多的用户会选择一台或者多台洗衣机来…

qwen大模型,推理速度慢,单卡/双卡速度慢,flash-attention安装,解决方案

场景 阿里的通义千问qwen大模型&#xff0c;推理速度慢&#xff0c;单卡/双卡速度慢。 详细&#xff1a; 1、今日在使用qwen-14b的float16版本进行推理&#xff08;BF16/FP16) 1.1 在qwen-14b-int4也会有同样的现象 2、使用3090 24G显卡两张 3、模型加载的device是auto&#x…

Cross-Modal Joint Embedding with Diverse Semantics

计算两个嵌入之间的相似度得分&#xff0c;然后利用损失函数进行联合嵌入损失最小化优化并更新参数 辅助信息 作者未提供代码

上门预约洗鞋小程序开发;

上门洗鞋小程序服务小程序是一款方便用户与服务提供者进行交流和预约的平台&#xff0c;覆盖多个行业&#xff0c;包括家政清洁、洗衣洗鞋&#xff0c;维修服务等&#xff0c;满足用户在生活中各种需求的上门服务。用户可以在小程序中选择服务项目、预约时间&#xff0c;服务人…

Android Termux安装MySQL,通过内网穿透实现公网远程访问

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f516;系列专栏&#xff1a; C语言、Linux、Cpolar ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前…

2022年京东双11母婴品类数据回顾

母婴产品作为部分家庭的刚需&#xff0c;双11期间的行业热度也节节攀升&#xff0c;2022年双11期间&#xff0c;行业中不少品类赛道势头猛进。下面&#xff0c;鲸参谋带大家一起来回顾2022年双11期间母婴行业大盘及母婴重点细分赛道的销售表现。 母婴行业大盘 2022年双11期间&a…

工业RFID厂家与您分享工业生产制造的应用案例

随着科技的不断进步&#xff0c;RFID技术在工业生产制造领域的应用越来越广泛。AGV/RGV小车运输、立体仓库、生产线、物料跟踪与管理等各行业工业自动化的使用上都有着RFID的身影。为工业生产制造智能化自动化提供了助力。下面&#xff0c;为大家分享RFID技术在工业生产制造上的…

【Gensim概念】01/3 NLP玩转 word2vec

第一部分 词法 一、说明 Gensim是一种Python库&#xff0c;用于从文档集合中提取语义主题、建立文档相似性模型和进行向量空间建模。它提供了一系列用于处理文本数据的算法和工具&#xff0c;包括主题建模、相似性计算、文本分类、聚类等。在人工智能和自然语言处理领域&…

【React】高频面试题

1. 简述下 React 的事件代理机制&#xff1f; React使用了一种称为“事件代理”&#xff08;Event Delegation&#xff09;的机制来处理事件。事件代理是指将事件处理程序绑定到组件的父级元素上&#xff0c;然后在需要处理事件的子元素上触发事件时&#xff0c;事件将被委托给…

软件外包开发迭代管理工具

软件迭代的管理工具有助于团队有效地规划、跟踪和管理迭代开发过程&#xff0c;确保项目按时交付&#xff0c;并与团队成员之间进行协作。以下是一些常用的软件迭代管理工具&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#…

10.23归并排序

课上 归并排序 最大时&#xff0c;就是两个都是完全倒序&#xff0c;但注意一定有一个序列先用完&#xff0c;此时剩一个序列只有一个元素&#xff0c;不用比较&#xff0c;直接加入&#xff0c;所以就是nn-1, 最小时&#xff0c;是都是完全有序&#xff0c;且一个序列中的元…

Python合并同类别且相交的矩形框

Python合并同类别且相交的矩形框 前言前提条件相关介绍实验环境Python合并同类别且相交的矩形框代码实现 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&#xff0c;可点击进入Python日常小操作专栏、YOLO系列专栏、自然语言处理专栏或…

大语言模型(LLM)综述(二):开发大语言模型的公开可用资源

A Survey of Large Language Models 前言3. RESOURCES OF LLMS3.1 公开可用的模型CheckPoints或 API3.2 常用语料库3.3 库资源 前言 随着人工智能和机器学习领域的迅速发展&#xff0c;语言模型已经从简单的词袋模型&#xff08;Bag-of-Words&#xff09;和N-gram模型演变为更…

图论04-【无权无向】-图的广度优先遍历BFS

文章目录 1. 代码仓库2. 广度优先遍历图解3.主要代码4. 完整代码 1. 代码仓库 https://github.com/Chufeng-Jiang/Graph-Theory 2. 广度优先遍历图解 3.主要代码 原点入队列原点出队列的同时&#xff0c;将与其相邻的顶点全部入队列下一个顶点出队列出队列的同时&#xff0c;将…