状态变化节点用于监听其他节点的状态变化,并将状态信息作为消息输出。许多节点(如MQTT、TCP等网络节点)会在运行过程中更新自身状态(如"已连接"、"已断开"等),状态变化节点可以捕获这些变化,用于实现连接监控、状态告警等功能。比如断网重连发送注册包,断网后数据本地存储等等。
1. 输入
#无输入口
2. 输出
msg.status.text
#状态变化的文本信息
msg.status.source.id
#状态变化的节点ID
msg.status.source.type
#状态变化的节点类型
msg.status.source.name
#引发错误的节点名称
1. 监听范围
通过下拉菜单选择监听状态变化的范围:
范围 | 说明 |
所有节点 | 监听当前流程页面中所有节点的状态变化。 |
同一分组内 | 仅监听与本节点处于同一分组内的节点的状态变化。 |
指定节点 | 仅监听指定节点的状态变化。选择后会显示节点列表,可勾选要监听的具体节点。 |
1. 监控TCP连接状态
场景:当TCP节点断开连接或重新连接时,希望在调试窗口中看到状态变化。
说明:如图所示,创建了一个监控TCP节点状态的流程。点击注入节点后,TCP节点会和指定的服务器建立一个连接并发送一条数据“hello world”,服务器收到消息后,会立马断开连接。整个过程,TCP节点经历了连接成功和断开连接的过程,通过状态变化节点打印的内容可以看到,status.text分别是:common.status.connected 和 common.status.disconnected。代表的含义分别是:连接成功和断开连接。获取到此状态变化后,可以根据需要去制作后面的流程。
配置方法:
1.添加一个"状态变化"节点,范围选择"指定节点",勾选TCP节点节点。
2.将"状态变化"节点的输出连接到调试节点。
3.部署后,当TCP连接状态发生变化时(如连接成功、断开、重连),调试窗口会显示msg.status中的详细信息。

| [{"id":"cf27351f.392d88","type":"inject","z":"d152a7761163756d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"hello world","payloadType":"str","x":320,"y":200,"wires":[["18b025ee1cd40777"]]},{"id":"cd1ac74a.a149a8","type":"debug","z":"d152a7761163756d","name":"调试","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":770,"y":300,"wires":[]},{"id":"fc2e6dfc.2b0e9","type":"comment","z":"d152a7761163756d","name":"监听TCP连接状态","info":"点击注入节点,会触发TCP连接默认服务器的80端口(可设置),80端口连上后会被服务器断开。因此,状态变化节点可监听到TCP状态的变化,并打印在调试窗口。通常用于网络连接状态发生变化后执行一些逻辑处理。","x":330,"y":140,"wires":[]},{"id":"75fefe32.3e47d","type":"status","z":"d152a7761163756d","name":"","scope":["18b025ee1cd40777"],"x":530,"y":300,"wires":[["cd1ac74a.a149a8"]]},{"id":"18b025ee1cd40777","type":"tcp out","z":"d152a7761163756d","name":"","host":"139.129.229.113","port":"1883","beserver":"client","base64":false,"end":false,"tls":"","x":590,"y":200,"wires":[]}] |
并非所有节点都会产生状态变化事件。通常网络通信类节点(MQTT、TCP、HTTP等)和串口节点会更新状态。
使用"指定节点"模式可以避免接收不关心的节点的状态信息,减少不必要的消息。
配合"条件判断"节点,可以只对特定状态(如"断开")做出响应,忽略正常状态变化。
在EM系列边缘计算网关上,状态变化节点常用于监控PLC连接、MQTT通信等关键链路的运行状况。