提示
Victron 帮助中心
CAD 在线设计免费
Node-RED

Node-RED 中的 Victron 节点

Victron 节点库可让流程读取设备测量值、控制设备,并将非 Victron 设备添加到 GX。本文依据 node-red-contrib-victron 的 wiki 和 Venus OS Large 手册,介绍所有节点类型、常用路径,以及控制功能生效前必须完成的设置。

Victron 节点库

Node-RED 自带基础节点集。Venus OS Large 在此基础上添加了 Victron 节点库 node-red-contrib-victron,该节点库已预装。节点通过 D-Bus 工作,访问 Venus OS 提供的已连接到 GX 的设备数据。在节点中选择设备和参数;对于包含占位符的路径,例如 {tracker},编辑器会自动将其展开为已连接设备提供的可选项。

  • 更新节点库——只能随新版 Venus OS Large 一起更新。无法通过编辑器或命令行更新该节点库。即使网上已有新版节点库,也必须等待下一版 Venus OS Large;通常会在节点库更新后不久发布。
  • 节点说明——GitHub 项目 wiki 中的 Input nodes、Output nodes 和 Virtual devices 页面介绍了各节点及其路径。本页的路径和值均来自该 wiki。
  • 其他节点库——dashboard 等附加节点通过互联网安装到 GX 数据分区,因此在 Venus OS 更新后仍会保留。所需预留空间见首次运行。

节点类型

wiki 将 Victron 节点分为输入节点、控制节点和虚拟设备,另列出两个自定义(custom)节点。

类型功能数量
输入节点(input)订阅 D-Bus 上的值,并在值发生变化时发送消息。33
控制节点(Control)将 msg.payload 中传入的值写入设备。18
自定义节点(custom)读取和写入 D-Bus 上找到的任意服务和路径,用于其他节点未覆盖的功能。例如,内置的通过流程重启 GX 的示例使用了 Custom Control 节点。2
虚拟设备Virtual Device 和 Virtual Switch 在 D-Bus 上创建设备;Inject Notification 和 Inject Event 分别向 GX 发送通知或向 VRM 发送事件。4

设备节点完整列表

全部 33 个输入节点;其中 18 个也有控制版本(在 wiki 中标注“Control”)。说明依据 wiki。

节点读取来源Control
Accharger交流电池充电器是
Acload由角色设为“AC load”的电能表测量的交流负载—
Acsystem管理 Multi RS 及未来逆变充电器的服务是
Alternator处于监控模式且类型设为“Alternator”的 BMV,或连接到 Venus OS 的车辆发电机控制器是
Battery电池状态:荷电状态(SoC)、电压、电流、报警、历史记录是
DcdcOrion XS是
Dcload处于监控模式且类型设为“DC load”(直流负载)的 BMV—
Dcsource处于监控模式且类型设为“DC source”(直流电源)的 BMV—
Dcsystem系统中直流负载的测量值—
DessDynamic ESS是
DigitalinputGX 数字输入——仅限在 Settings → I/O → Digital inputs 菜单中启用的输入—
EssESS 储能系统是
Ev电动汽车——通过 VRM 集成的车辆,以及 Node-RED 创建的虚拟车辆—
Evcharger电动汽车充电桩是
Fuelcell燃料电池—
Generator通过继电器启动的发电机和 Fischer Panda 发电机是
GpsGPS 位置—
Gridmeter电网电表—
Inverter逆变器是
Meteo太阳辐照度、温度和风传感器—
E-drive电力驱动装置(motordrive 服务)—
MultiMulti RS是
Pulsemeter脉冲计数器——设为“Pulse meter”的数字输入—
Pump泵是
Pvinverter光伏并网逆变器是
RelayGX 继电器,以及电池充电器和 Multi RS 的继电器是
Settings设置——目前主要用于 Carlo Gavazzi 电表是
SolarchargerMPPT 太阳能充电控制器是
Switch通过 USB 连接的 I/O 扩展器是
系统汇总数据(com.victronenergy.system 服务):电池、光伏(PV)、交流用电、电网、发电机系统汇总数据(服务 com.victronenergy.system):电池、光伏(PV)、AC 用电量、电网、发电机—
Tank储罐液位传感器—
Temperature温度传感器——例如有线探头或通过蓝牙连接的 Ruuvi;也包括储罐传感器提供的温度—
VebusVE.Bus 设备,例如 MultiPlus 和 Quattro是

节点何时发送消息

  • 每次值发生变化时——这是输入节点的基本行为。
  • 勾选“only changes”时——仅在值发生变化时发送。
  • 未勾选“only changes”时——节点还会每隔 5 s 发送当前值,即使值没有变化。
  • 按固定时间间隔发送值——使用 change 节点将 msg.payload 保存到上下文(flow. 或 global.),再使用 inject 节点按选定的时间间隔读取。内置示例“Only Messages at Regular Intervals”就是这样工作的。
  • 重启后的上下文——默认情况下,上下文仅保存在 RAM 中,GX 重启或断电后会丢失。在文件 /data/home/nodered/.node-red/settings-user.js 中可启用磁盘存储(使用 localfilesystem 存储;手册示例每隔 300 s 写入一次)。不要过于频繁地写入,以免损耗闪存。

控制节点的工作原理

Control 节点将 msg.payload 中的值写入设备。枚举参数(enum)使用数字设置——例如,在 Victron 示例中,inject 节点向 Vebus Control 节点发送数字 3,以开启逆变充电器。各路径对应的值见下表及 wiki。

  • 定时调度——inject 节点可以在固定时间、指定日期,或在指定时间段内每隔几分钟发送一个值。Node-RED 使用 Remote Console 中设置的时区;更改时区后需要重启 Node-RED。
  • 保持状态——“Event Based Scheduling”示例将 Vebus 输入节点(/Mode)连接到控制节点,以便在计划时段内保持所选模式,即使有人意外更改了模式。
  • 特殊调度——对于节假日、随机时间偏移或日落与日出调度,Victron 建议使用附加节点 node-red-big-timer(菜单 Manage palette → Install)。

常用路径

每个参数都有对应的 D-Bus 路径。编辑器会将路径中的占位符展开为已连接设备中可用的值:

占位符含义
{type}开关输出类型:output_1、output_2、pwm_1、relay_1 等。
{tracker}光伏跟踪器编号:0、1、2、3
{phase}AC 相位:1、2、3(L1、L2、L3)
{day}历史记录日期:0 = 今天,1 = 昨天
{input}AC 输入:1、2
{channel}DC 通道:0、1
{index}序号:0、1、2、3 等。

以下是 wiki 中的部分路径,可用于根据电池状态、光伏发电量和逆变器模式实现自动化:

节点参数与路径值
Battery荷电状态(%)——/Soc数值
Battery电池电压(V)——/Dc/0/Voltage;电流(A)——/Dc/0/Current数值
Battery启动电池电压(V)——/Dc/1/Voltage数值
系统汇总数据(com.victronenergy.system 服务):电池、光伏(PV)、交流用电、电网、发电机电池 SoC(%)——/Dc/Battery/Soc;MPPT 控制器功率(W)——/Dc/Pv/Power数值
Solarcharger光伏功率(W)——/Yield/Power;光伏电压(V)——/Pv/V数值
Solarcharger、Accharger(Control)电池充电器开启/关闭——/Mode1 On,4 Off
Vebus(输入与 Control)开关位置——/Mode1 Charger Only,2 Inverter Only,3 On,4 Off
Vebus(Control)AC 输入电流限制(A)——/Ac/In/{index}/CurrentLimit数值
Ess(Control)放电最低 SoC(%)——/Settings/CGwacs/BatteryLife/MinimumSocLimit;电网功率设定值 grid set-point(W)——/Settings/CGwacs/AcPowerSetPoint整数
Generator(Control)启动发电机——/Start0 Stop,1 Start
Relay(输入与 Control)GX 继电器——/Relay/{relay}/State;电池充电器继电器(wiki 中称为“Relay on the charger”)或 Multi RS 继电器——/Relay/0/State0 Open,1 Closed
Digitalinput输入状态——/State从 0 low 到 11 stopped,取决于输入类型
Tank、Temperature液位(%)——/Level;温度(°C)——/Temperature数值

继电器:首先需要设置什么

要让 Node-RED 切换继电器,必须先将继电器设为手动控制,通常在 VictronConnect 中设置。随后由 Relay Control 节点控制继电器:1 闭合触点(Closed),0 断开触点(Open)。

继电器所需设置Node-RED
GX 设备在 GX 菜单中将继电器功能设为“Manually controlled”;Cerbo GX 继电器详见 Cerbo GX 页面是
BMV在 VictronConnect 中选择继电器选项 REM(Remote Controlled)是
Lynx Shunt VE.Can在 GX 菜单中将继电器功能设为“Manual control”是
MPPT 控制器在 VictronConnect 中将继电器工作模式设为“manual control”;仅较大型号配有继电器是
RS 系列(逆变器、Multi RS)在 VictronConnect 中将继电器设为手动控制是
Smart IP43 Charger在 VictronConnect 中设置远程控制模式。继电器仅在电池充电器开启时供电;连接 AC 但充电器关闭时,继电器不工作(230 V 和 120/240 V 型号)。这是唯一配有可控继电器的电池充电器。支持,但有限制
Lynx Smart BMS—否
Multi、Quattro(VE.Bus)报警继电器和 AC-out-2 接触器——Victron 暂无计划开放其远程控制功能否
  • 发电机继电器——在 GX 控制台中将其功能设为“Generator”,然后通过 Generator Control 节点发送启动和停止指令(/Start:1 Start,0 Stop)。对于 Fischer Panda 发电机,Generator 节点通过 D-Bus 直接启动。
  • 仪表板开关——“Relay Switching”示例通过仪表板控制继电器。要让开关同时显示其他位置(例如 GX 菜单)所做的更改,还需将 Relay 输入节点连接到开关的输入端。需要安装 node-red-dashboard 节点包——参见仪表板与远程访问。
  • 现成的流程——根据电池状态开启和关闭继电器:分步示例。

虚拟设备

虚拟设备可将 Victron 不支持的硬件或数据源接入 GX。在 Node-RED 中创建后,它会出现在 GX 中,并像真实的 Victron 设备一样运行,在 VRM 门户中也是如此。手册中的示例包括:将 API 天气数据作为虚拟气象站,将计算出的电网取电和馈电数据作为虚拟电网电表,将 GPSd 的位置数据作为虚拟 GPS,以及将 LoRa 或 MQTT 传感器作为虚拟储罐或温度传感器。

  1. 最新 Venus OS。请将 GX 更新到最新版本。
  2. Virtual Device 节点。将其添加到流程中,并选择设备类型。
  3. 数据。连接数据源或控制逻辑。向节点发送的 msg.payload 应为对象:键为不带起始斜杠的 D-Bus 路径,值为读数,例如 {"Dc/0/Voltage": 48.2, "Dc/0/Current": 12.5, "Soc": 85}。
  • D-Bus 上的名称: com.victronenergy.<类型>.virtual_<节点 id>.
  • 断开与恢复:msg.connected = false 断开设备并释放 D-Bus 上的服务名称,msg.connected = true 恢复设备连接。
  • 输出:一个端口——转发原始消息,其中 msg.connected 被设为当前的 D-Bus 连接状态。
类型(wiki)D-Bus 服务与示例路径
AC Loadcom.victronenergy.acload——/Ac/L1/Current、/Ac/Energy/Forward
Batterycom.victronenergy.battery——/Dc/0/Voltage、/Dc/0/Current、/Dc/0/Power、/Dc/0/Temperature
DC Load(直流负载)com.victronenergy.dcload — /Dc/0/Voltage,/Dc/0/Current,/Dc/0/Power
E-drivecom.victronenergy.motordrive — /Dc/0/Power,/Controller/Temperature,/Coolant/Temperature
Electric Vehicle(电动汽车)com.victronenergy.ev — /Soc,/TargetSoc,/ChargingState,/Ac/Power
Energy meter(电能表)com.victronenergy.energymeter — /Ac/Power,/Ac/Energy/Forward,/Ac/Energy/Reverse
Generatorcom.victronenergy.genset 或 com.victronenergy.dcgenset — /Start,/EnableRemoteStartMode,/Engine/CoolantTemperature
GPScom.victronenergy.gps — /Position/Latitude,/Position/Longitude,/Fix
Grid meter(电网电表)com.victronenergy.grid — /Ac/Power,/Ac/Energy/Forward,/Ac/Energy/Reverse
Meteocom.victronenergy.meteo — /Irradiance,/ExternalTemperature,/WindSpeed
Pulse meter(脉冲计量表)com.victronenergy.pulsemeter — /Count,/Aggregate
PV inverter(光伏并网逆变器)com.victronenergy.pvinverter — /Ac/Power,/Ac/Energy/Forward,/Ac/PowerLimit
Tank sensor(液位传感器)com.victronenergy.tank — /Level,/Capacity,/FluidType
Temperature sensor(温度传感器)com.victronenergy.temperature — /Temperature

虚拟开关(Virtual Switch)

创建不带实体继电器的开关,例如用于运行 Tasmota 固件的 IoT 开关,由流程根据电池状态控制。按照说明书,该开关会显示在 Venus OS 新界面的 Switch 开关面板中,可像实体开关一样开启和关闭。其状态保存在 GX 中,重启后也可保留。

  • 控制:{"SwitchableOutput/output_1/State": 1} 用于开启,{"SwitchableOutput/output_1/Dimming": 75} 将调光值设为 75%。msg.connected = false 断开开关连接。
  • 11 种类型:On/Off(0 关闭,1 开启)、Dimmable(开关及 0–100% 调光)、Temperature setpoint(以 °C 为单位的恒温器滑块)、Stepped、Basic slider、Dropdown、Numeric input、Three state(0 Off,1 On,2 Auto)、RGB color wheel、CCT wheel 和 RGB+White dimmer。
  • 输出:端口 1 传递带有 msg.connected 的消息;端口 2 在状态变化时发送新状态;端口 3 发送新的调光值或设定值(适用于调光、步进、数值和 RGB 类型)。

通知与事件

特性Inject NotificationInject Event
显示位置GX 界面中的 Venus OS 通知中心VRM 门户:Diagnostics → Event logs
D-Bus 目标com.victronenergy.platform,/Notifications/Injectcom.victronenergy.logger,/EventLogging/Inject
严重级别0 Warning(警告),1 Alarm(报警),2 Information(信息)0 Warning(警告),1 Critical(严重),2 Info(信息)
内容msg.payload;标题取自配置或 msg.title,类型取自配置或 msg.type(数字或“warning”、“alarm”、“info”)msg.payload;来源名称(App)取自配置或 msg.app,严重级别取自配置或 msg.severity(数字或“warning”、“critical”、“info”,不区分大小写)
限制标题最多 100 个字符,正文最多 500 个字符,超出部分会被截断—
输出添加了 msg.notification 的原始消息添加了 msg.event 的原始消息

内置示例

在编辑器中:右上角菜单 → Import(或 Ctrl+I)→ Examples → node-red-contrib-victron。Wiki 的 Example Flows 页面也提供相同示例。部分示例需要额外的节点包,最常用的是 node-red-dashboard。

示例演示内容
Trigger Based Scheduling在固定时间开启和关闭逆变充电器(inject + Vebus Control)
Event Based Scheduling在计划时段内保持选定的逆变器模式
Combining Inputs / Night Time Rate Battery Charging根据 Battery 节点的 SoC 选择 Quattro 模式:低于 25% 时随时充电;25–50% 时夜间充电,白天由电池供电(Inverter Only);高于 50% 时由电池供电
Brightness-Based Lamp Control通过继电器控制灯:SmartSolar 控制器的 PV 电压低于 5 V 持续 60 s 时开灯;天色不再昏暗后,延迟 30 min 关灯
Temperature Dashboard在仪表板上显示传感器温度,四舍五入至小数点后 1 位
Location Based Scheduling根据 USB GPS 提供的位置,在黄昏和黎明控制继电器(BigTimer 节点)
Monitor Disk Usage, MQTT Disk Space Monitoring通过 df 命令或 MQTT 监测 GX 存储空间占用
Relay Switching通过仪表板切换继电器
Solar Forecasting使用 forecast.solar 服务预测光伏发电量
Threshold Control超过 ON 阈值时开启输出,低于 OFF 阈值时关闭输出,并设置延时;示例来自 Victron 网络研讨会
Load Shedding and MinSOC根据电网停电预告设置 ESS 的最低 SoC(南非 EskomSePush API)
Only Messages at Regular Intervals通过上下文按固定时间间隔发送数值
Run Generator at Certain Time每天 18:00:若 SoC 低于 50%,发电机运行 45 min
Venus Reboot在流程中使用 Custom Control 节点重启 GX

资料之间的差异

  • 虚拟设备类型。Venus OS Large 说明书(第 5.8 节)列出 9 种:Battery、Generator、GPS、Grid meter、Meteo、Motor drive、PV inverter、Tank sensor 和 Temperature sensor。Wiki(Virtual devices)列出 14 种:增加了 AC Load、DC Load、Electric Vehicle、Energy meter 和 Pulse meter,且“Motor drive”称为 E-drive(服务为 com.victronenergy.motordrive)。您可在 Virtual Device 节点的类型列表中查看当前可用类型。
  • 虚拟开关的显示位置。说明书:Venus OS 新界面的开关面板。Wiki:Venus OS 将其识别为已连接的 Cerbo GX I/O 扩展器,可通过 GX 界面操作。
  • 消息接收频率。FAQ Q9 和“Only Messages at Regular Intervals”示例:每次变化时发送,未启用“only changes”时还会每隔 5 s 发送一次。“Event Based Scheduling”示例:默认每隔 5 s 发送一次,发生变化时立即发送,即“约每秒一次”。
  • “Trigger Based Scheduling”中的时间。说明文字:6:00 开启,22:00 关闭。但流程中的“Trigger 'ON' at 22:00”节点在 22:00 发送 3(On),而“Trigger 'OFF' at 6:00”在 6:00 发送 4(Off)。导入后,请检查 inject 节点中的时间和值。
  • 节点包更新。第 5.3 节和 FAQ Q2:Victron 节点包无法通过编辑器或命令行更新,只能通过新版 Venus OS Large 更新。第 5.6 节泛指安装比预装版本更新的节点包后,Node-RED 会使用较新版本。对于 Victron 节点包,说明书在 Q2 中明确指出:只能通过新版 Venus OS Large 更新。
  • 占位符。wiki 图例列出了 {type}、{tracker}、{phase}、{day}、{input}、{channel} 和 {index},但路径说明中还使用了 {relay}(/Relay/{relay}/State)、{line}(System 节点中的 /Ac/Consumption/{line}/Power)和 {historyDay}(Solarcharger 节点中的 /History/Daily/{historyDay}/Yield)。
控制会立即生效

一旦部署流程(Deploy),Control 节点就会更改逆变器模式、电流限制、ESS 设置和继电器状态。对于使用 Node-RED 实现高级功能的系统,Victron 不提供技术支持;请您在有人监护的情况下,在系统上测试新流程。导致 GX 过载的流程可在安全模式下停用:安全模式与重启。

适用设备

资料来源

内容已与 Victron Energy 文档(数据表和说明书)核对,截至 2026年9月22日。报告内容错误 · 修订记录