docker安装Nodered连接homeassistant

我的环境是通过docker安装了homeassistant和nodered

本文讲述我在安装配置遇到的一系列问题

主要是nodered里节点报错This node requires the Node-RED custom integration version 1.1.0+每次很烦人

安装Nodered

拉取镜像

复制代码
docker pull nodered/node-red

安装

网络要以host的方式安装,建议homeassistant和nodered都按host的网络部署

复制代码
docker run -d -it --name nodered --network host -v /home/nodered/data:/data nodered/node-red
安装完一直没起来

查看容器状态

复制代码
docker ps

查看日志

复制代码
docker logs nodered

发现permission denied

复制代码
root@raspberrypi:/home/nodered/data# docker logs nodered node:fs:3035 binding.copyFile( ^ Error: EACCES: permission denied, copyfile '/usr/src/node-red/node_modules/node-red/settings.js' -> '/data/settings.js' at Object.copyFileSync (node:fs:3035:11) at copyFile (/usr/src/node-red/node_modules/fs-extra/lib/copy/copy-sync.js:64:6) at onFile (/usr/src/node-red/node_modules/fs-extra/lib/copy/copy-sync.js:50:25) at getStats (/usr/src/node-

修改文件权限

修改你映射的位置

复制代码
sudo chmod -R a+rwx /your/nodered/path/data

nodered与连接homeassistant

首先说明一点homeassistant和nodered在部署的时候,应该放在同一个docker网络中,由于后期homeassistant我还需要做wake on lan唤醒其它主机,所以两个容器都通过host的方式部署的,如果不是host网络,wake on lan没有效果,虽然没有试试路由转发能不能通过docker网关出去

Nodered安装插件

nodered-右上角-节点管理-安装-搜索-node-red-contrib-home-assistant-websocket,有了这个插件nodered才能有homeassistant的节点面板

homeassistant安装集成

homeassistant到hacs去安装Node-RED Companion,如果没有hacs去搜一下怎么下载hacs用,推荐极速版的hacs

homeassistant配置集成

homeassistant到服务与集成-添加集成Node-RED Companion,有了集成以后,nodered才能看见homeassistant server并给这里传输nodered虚拟的设备和实体

按说完成这一步以后,nodered就应该正常了,拖动ha的节点出来。在配置里创建一些新的Entity Config,ha就可以看到了

但是我试了好多次都不行

Nodered连接不上homeassistant

打开任何节点,配置页显示报错信息

复制代码
This node requires the [Node-RED custom integration version 1.1.0+](https://github.com/zachowj/hass-node-red)  to be installed in Home Assistant for it to function.

这个报错是因为nodered没找到ha,或者说没找到Node-RED Companion给的接口

我试了好多次,最后先是把两个容器的网络状态从docker bridge都改成了host,统一网络问题

然后取消勾选使用home assistant插件,用手动的方式配置,中间还重启了好多次,感觉过程中甚至会存在浏览器缓存影响

手动配置

去homeassistant,左下角用户-安全-创建令牌,创建一个令牌并保存令牌

去nodered中,随便拖动一个homeassistant的节点,双击进入,Entity Config编辑这个实体或者新建一个,进入实体配置面板后,可以看到server后面的加号添加一个新的server

我这里试了很多步直接修改原有的那个server的信息,好多次都没成功,这一问题不仅出现在docker的ha,hassos也遇到这个问题,不知道为什么,退出最开始的界面会提示ha那面没有插件

输入homeassitant的url或者直接点击搜索按钮,如果nodered能找到ha的集成了,这里点搜索,会出现下拉框显示自己设备的ip,把令牌贴进去

nodered内部解析总是错误

一步一个坑,这里nodered获取http油价信息的时候,一直解析不了域名

复制代码
sudo docker exec -it -u root nodered bash

nano /etc/systemd/resolved.conf

把127.0.0.53的本地监听改成223.5.5.5解析服务器ip

总结

这一篇里我反复说了下host的问题,如果网络不是host,那么docker就会通过bridge自定义一个虚拟的网关,和一对网络接口(一内一外),很可能在自己的容器里,数据就找不到目标地址转发不出去,这样插件之间就容易识别不到

相关推荐
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS4 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心4 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing4 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)4 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang4 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特4 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe4 天前
docker常见命令
docker
正经教主4 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿5 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器