Node-Red
node-red for teslamate
给node-red安装模块
高级版
bash <(curl -sSL http://flush.119he.com/teslamate/v6.0.0/add-nr-modules.sh)
###########################################
# Node-Red模块安装脚本
# 2025.2.3 v1.1.0
# netfun2000@foxmail.com
###########################################
#!/bin/sh
# 定义颜色常量,用于输出提示
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 定义需要安装的Node-RED模块列表
MODULES="node-red-contrib-calc
node-red-contrib-simpletime
node-red-dashboard
node-red-node-email
node-red-contrib-gotify-notification
node-red-node-ui-table"
# 开启命令执行调试输出(可删除,用于查看执行过程)
# set -x
# 核心修改:查找包含"node-red"关键字的运行中容器,仅输出容器名
# --filter "name=node-red":过滤容器名包含node-red的容器
# --format "{{.Names}}":仅格式化输出容器名称,不输出其他冗余信息
NODE_RED_CONTAINERS=$(docker ps --filter "name=node-red" --format "{{.Names}}")
# 健壮性判断:如果未找到符合条件的容器,报错并退出脚本
if [ -z "$NODE_RED_CONTAINERS" ]; then
echo "错误:未找到包含 'node-red' 关键字的运行中容器!"
exit 1
fi
# 循环处理每个找到的Node-RED容器(支持多个符合条件的容器)
for CONTAINER in $NODE_RED_CONTAINERS
do
echo -e "${GREEN}正在为容器 $CONTAINER 安装Node-RED模块...${NC}"
# 执行模块安装(替换原硬编码容器名为动态获取的容器名)
docker exec -i "$CONTAINER" npm install --no-audit --no-update-notifier --no-fund --save --prefix=/data --omit=dev $MODULES
echo -e "${YELLOW}模块:\n$MODULES\n安装完毕!${NC}"
# 安装完成后重启当前容器
echo -e "${GREEN}正在重启容器 $CONTAINER...${NC}"
docker restart "$CONTAINER"
done
echo "所有符合条件的Node-RED容器处理完成!"
基础版
#!/bin/sh MODULES="node-red-contrib-calc node-red-contrib-simpletime node-red-dashboard node-red-node-email node-red-contrib-gotify-notification node-red-node-ui-table" set -x for MODULE in $MODULES do docker exec -i teslamatecn-node-red-1 npm install --no-audit --no-update-notifier --no-fund --save --prefix=/data --omit=dev $MODULE done docker restart teslamatecn-node-red-1