iot - ThingsBoard 规则链将遥测重新发布到新主题
问题描述
我们依靠ThingsBoard Server和ThingsBoard Gateway来管理 IoT 设备,我们有这样一个需求:
- IoT 设备 devicesOfTypeA 将消息发布到 v1/devices/me/telemetry
- ThingsBoard Server 传输特定消息,然后将新消息发布到新主题等 v1/devices/devTypeB/request
- 订阅 v1/devices/devTypeB/# 的 IoT 设备 devicesOfTypeB 将获取新生成的消息
我们想知道我们是否可以通过配置 ThingsBoard 规则链来实现需求,看起来规则链真的是一个了不起的工具,可以做任何事情:)
有没有人碰巧有任何线索?我们是 ThingsBoard 的新手,在阅读了大部分文档后,尤其是ThingsBoard 指南文档中的“数据处理和操作”部分,我们没有发现规则链解决方案是否可行。
解决方案
第一个选项:
deviceB 订阅自己的属性(范围 = 共享)(deviceB 属性名称 = deviceATemeprature)
deviceA 发布遥测(温度=40)
规则链
- 接受来自 deviceA 的消息
- 将其保存为 DeviceA 的遥测
- 将消息发起者更改为 deviceB
- 将原始消息转换为更新属性消息(消息负载从 {"temperature":"40"} 到 {"deviceATEmeprature":"40"};)
保存属性
使用此算法,当 deviceA 遥测更新时,将通知 deviceB。
第二种选择:
类似,但 deviceB 不是订阅属性,而是订阅 RPC 主题。每次更新 deviceA 的遥测数据时,规则引擎都会向 deviceB 发送 RPC 命令。
PS:您的情况不是标准的,不清楚为什么需要如此复杂的拓扑。我不确定设备现在应该与其他设备的属性/遥测有关。更常见的情况是,当另一个设备的状态从 stateA 更改为 stateB 时,您需要触发设备上的某些功能。在这种情况下,您需要在 RuleChain 内部实现所有逻辑,在您的设备上实现 RPC API 并从规则引擎触发此 API。
推荐阅读
- c++ - 如何在 Q3DSurface 中为每个 QSurfaceDataRow 设置不同的颜色?
- apache - .htaccess 将媒体文件请求重定向到不同的域/服务器
- floating-point - 是否可以将此数字存储为具有这些限制的浮点数?
- arrays - 字符串文件,在另一个文件中找到匹配的字符串
- html - 为移动设备放置 div 和响应式设计的问题,你能检查我的代码吗?
- javascript - 使用fabric js在对象内部自由绘图
- javascript - WordPress:ServiceWorker 的 Push.js 实现会导致问题
- wso2 - 通过代码 WSO2 Identity Server 配置服务提供者
- java - 每次刷新后在java中写入文件时查看文件的大小和内容(新添加的字符串)
- php - PHP:如何修复 array_pop 和值 0