WatchDog(看门狗)

用于检测与网关或特定 KNX 设备的连接状况,并在出现故障时执行自动化操作。

功能

  1. 周期性发送报文并等待应答,若总线连接异常则向流程输出消息。提供两种检测级别(见下)。
  2. 通过消息修改配置节点(Config-Node)的网关参数,实现 KNX/IP 路由器/接口的切换(如主备切换)。
  3. 强制与 KNX 总线建立/断开连接。

以太网层与 KNX 双绞线层检测

WatchDog 提供两级检测:

  • 以太网级:仅检测 KNX-Ultimate 与 KNX/IP 接口(Unicast)之间的连通性。
  • 以太网 + KNX-TP:检查整条链路(以太网→TP)。需一个能响应读取请求的物理设备。

适合用于错误/连接故障告警(邮件通知、自动切换备份网关等)。

设置(SETTINGS)

属性 说明
Gateway 选择的 KNX 网关。
Group Address to monitor 用于发送与监测的组地址;DPT 必须为 1.x(布尔)。
Name 节点名称。
Auto start the watchdog timer 在部署/启动时自动启动定时器。
Check level 见上。

Check level

Ethernet:检测 KNX-Ultimate(Unicast)与 KNX/IP 接口之间的连接。

Ethernet + KNX TP:完整检测(支持路由器/接口)。向物理设备发送 Read 并等待 Response;以太网或 TP 的任何故障都会被上报。请在 ETS 中为某个执行器配置一条会响应读取的 状态 GA。

高级选项

属性 说明
Retry interval (in seconds) 以秒为单位的检测间隔。
Number of retry before giving an error 连续失败多少次后报告错误。

WatchDog 的输出

当内部检测发现故障,或某个 KNX-Ultimate 节点在流程中上报错误时,WatchDog 会输出消息。

WatchDog 自身连接问题

详见此处


msg = {
  type: "BUSError",
  checkPerformed: "Ethernet" // 或 "Eth+KNX",
  nodeid: "23HJ.2355",
  payload: true,
  description: "..."
}

你的某个 KNX-Ultimate 节点出现异常


msg = {
  type: "NodeError",
  checkPerformed: "Self KNX-Ultimate node reporting a red color status",
  nodeid: "23HJ.2355",
  payload: true,
  description: "...",
  completeError: {
    nodeid: "23HJ.2355",
    topic: "0/1/1",
    devicename: "Kitchen Light",
    GA: "0/1/1"
  }
}

通过 setGatewayConfig 修改网关配置


msg = {
  type: "setGatewayConfig",
  checkPerformed: "The Watchdog node changed the gateway configuration.",
  nodeid: "23HJ.2355",
  payload: true,
  description: "New Config issued to the gateway. IP:224.0.23.12 Port:3671 PhysicalAddress:15.15.1\nBindLocalInterface:Auto",
  completeError: ""
}

强制连接/断开


msg = {
  type: "connectGateway",
  checkPerformed: "The Watchdog issued a connection/disconnection to the gateway.",
  nodeid: "23HJ.2355",
  payload: true, // true=连接,false=断开
  description: "Connection",
  completeError: ""
}

输入消息(INPUT)

启动/停止 WatchDog


msg.start = true; return msg; // 启动
msg.start = false; return msg; // 停止

运行期修改 KNX/IP 网关设置

通过 msg.setGatewayConfig 更改 IP/Port/PhysicalAddress/Protocol 等;配置节点会应用并重连。Node-RED 重启后恢复为配置节点中的设置。所有参数均为可选。


msg.setGatewayConfig = { IP:"224.0.23.12", Port:3671, PhysicalAddress:"15.15.1", BindToEthernetInterface:"Auto",
  Protocol:"Multicast", importCSV:`"Group name" "Address" "Central" "Unfiltered" "Description" "DatapointType" "Security"
"Attuatori luci" "0/-/-" "" "" "" "" "Auto"
"Luci primo piano" "0/0/-" "" "" "" "" "Auto"
"Luce camera da letto" "0/0/1" "" "" "" "DPST-1-1" "Auto"` };
return msg;

仅更改 IP:


msg.setGatewayConfig = { IP:"224.0.23.12" }; return msg;

强制断开并禁用自动重连


msg.connectGateway = false; return msg;

强制连接并启用自动重连


msg.connectGateway = true; return msg;

参见

Sample WatchDog