首页 > 解决方案 > 我们可以从 Rule Chain 调用 External Rest API 从另一个 API 收集遥测数据吗?

问题描述

我正在尝试从外部 API 收集能源生成统计数据,例如 Watts 和 wattHour。我有可用的外部休息 API 端点。Thingsboard 中有没有一种方法使用规则链来调用外部端点并将其存储为遥测数据。稍后我想在仪表板中显示这些数据。

标签: thingsboard

解决方案


我知道它已经太久了,但是 thingsboard 缺少文档,它可能对其他人有用。

您必须使用REST API CALL外部节点(https://thingsboard.io/docs/user-guide/rule-engine-2-0/external-nodes/#rest-api-call-node

如果节点成功,它将输出包含 HTTP 响应的 OutboundMessage,元数据包含: - metadata.status - metadata.statusCode - metadata.statusReason

以及包含来自您的外部 REST 服务(即您存储的遥测数据)的响应正文的消息的有效负载。

然后,您必须使用脚本转换节点将元数据、有效负载和 msgType 格式化为POST_TELEMETRY_REQUEST消息格式,请参阅:https ://thingsboard.io/docs/user-guide/rule-engine-2-0/概述/#predefined-message-types 您的外部 REST API 应提供正确的“deviceName”和“deviceType”,以及以 UNIX 毫秒为单位的“ts”。请注意,您还需要将 messageType(msgType 返回变量)更改为“POST_TELEMETRY_REQUEST”。

最后,只需将结果传输到Save timeseries操作节点,它将作为来自指定设备的遥测数据存储。希望这可以帮助。


推荐阅读