请求协助:将设备active服务器属性同步至关联资产
设备服务器属性同步至关联资产的规则链配置方案
问题根源
你之前的规则链只监听了遥测数据事件,但active、lastActivityTime这类服务器属性的更新属于实体属性更新事件,不会流经遥测处理的规则链分支,所以Change Originator节点根本没收到相关事件。
具体解决步骤
- 调整规则链的触发事件类型
创建或修改目标规则链,将触发事件设置为ENTITY_ATTRIBUTES_UPDATED,确保设备的属性更新事件能进入这条链。
- 调整规则链的触发事件类型
- 过滤目标事件
添加Filter Script节点,编写脚本只保留指定属性的设备更新事件,避免无关事件干扰:
return msg.entityType === 'DEVICE' && Object.keys(msg.serverAttributes).some(key => ['active', 'lastActivityTime', 'lastConnectTime'].includes(key));- 过滤目标事件
- 查询关联资产
添加Relations Query节点,配置参数:
- 实体ID:
${msg.entityId} - 关联类型:
Contains - 方向:
IN(查询包含当前设备的资产)
这样就能获取到与当前设备关联的目标资产。
- 查询关联资产
- 切换事件源并映射属性
- 用
Change Originator节点,将事件的源实体切换为查询到的资产; - 添加
Script节点,把设备的服务器属性映射到资产的属性字段:msg.serverAttributes = { active: msg.originatorServerAttributes.active, lastActivityTime: msg.originatorServerAttributes.lastActivityTime, lastConnectTime: msg.originatorServerAttributes.lastConnectTime }; return msg;
- 保存资产属性
添加Save Server Attributes节点,将处理后的属性保存到资产的服务器属性中,完成同步。
- 保存资产属性
内容的提问来源于stack exchange,提问作者Tecnicos Computrol
相关产品推荐
相关产品推荐

