首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过websocket从Thingsboard检索所有客户设备的遥测

如何通过websocket从Thingsboard检索所有客户设备的遥测
EN

Stack Overflow用户
提问于 2019-05-28 15:09:47
回答 1查看 2.6K关注 0票数 3

我想通过websocket通过API从thingsboard CE获得与单个客户相关的所有设备的最新遥测信息。这样,当收到测量数据时,我可以实时更新jquery。

在通过GUI手动为customer->device添加关系之后,最新的遥测数据现在正在流向Thingsboard中的客户entityType。

但是,返回的数据不包含任何设备属性信息,我可以使用这些信息将ws响应与生成测量的设备相匹配。

代码语言:javascript
运行
复制
{"subscriptionId":10,"errorCode":0,"errorMsg":null,"data":{"battery_voltage":[[1559065098932,"2.8623046875"]],"pressure":[[1559065098932,"0.05001525953412056"]],"relative_humidity":[[1559065098932,"53.7109375"]],"temperature":[[1559065098932,"83.78323364257812"]]},"latestValues":{"battery_voltage":1559065098932,"temperature":1559065098932,"pressure":1559065098932,"relative_humidity":1559065098932}}

Thingsboard中的端点:/api/ws/plugins/telemetry

此代码工作并返回最新的遥测更新,但它没有在返回的结果中指定哪个设备。

代码语言:javascript
运行
复制
$( document ).ready(function() { 
...
webSocket.onopen = function () {
   var object = {
       tsSubCmds: [{
           entityType: "CUSTOMER",
           entityId: "00000000-0000-0000-0000-0000...",
                        scope: "LATEST_TELEMETRY",
                        cmdId: 10
                    }
                ],
                historyCmds: [],
                attrSubCmds: []
            };
            var data = JSON.stringify(object);
            webSocket.send(data);
            console.log("Message is sent: " + data);
            console.log("socket open: ");
        };

如何使用设备属性丰富遥测时间序列数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-25 10:41:26

我发现的解决方案是更新GUI中的规则链,以便复制传入设备遥测数据的副本并将其保存到相关的客户实体中。

一步步地:

  1. 以租户管理员身份登录到thingsboard
  2. 单击Root Rule Chain
  3. 查找Save timeseries分支上的Post telemetry节点
  4. 将一个新的filter...script节点拖到画布上
  5. 将新脚本节点连接到Save timeseries分支上的Post Telemetry节点的输出
  6. 编辑筛选器脚本名称:-> Should Duplicate
  7. 编辑筛选器脚本函数-> return true;
  8. 将一个新的Transformation...change originator节点拖到画布上
  9. 将新的转换节点连接到筛选节点的输出。
  10. 编辑转换节点名称:Reassign to Customer
  11. 编辑发起人源:Customer
  12. 将一个新的Action...save timeseries节点拖到画布上
  13. 将新操作节点连接到转换节点的输出
  14. 编辑操作节点名称:Save Related Telemetry

您的根规则链现在应该类似于以下内容:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56345204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档