ThingsBoard:在图表小部件中绘制带有未来时间戳的时间序列

ThingsBoard: plot timeseries with future timestamps in a chart widget

最近几天我在结核病方面遇到了一些麻烦。

我有一个通用变量(例如,假设外部温度),使用 MQTT 和 tb-gateway 实时获取测量值。我还有给定未来时间段的可变预测,通过 MQTT 从执行预测的 Python 模块获取。我希望在同一张图中绘制实时获取的数据和给定时间段内的预测趋势(比如 下一个 24 小时),使用两条不同的曲线。

现在,我利用 ThingsBoard 的时间戳映射功能成功地(通过 MQTT)上传了具有正确 未来 时间戳的预测时间序列。

在图表上绘制这些信息时,我发现 ThingsBoard 只能绘制与当前系统时间戳或过去时间戳相关的时间序列值。我正在尝试找到一种方法来在图表小部件上绘制与 未来 时间戳相关的时间序列数据。

有人遇到同样的问题并设法解决了吗?

简短回答:您需要创建一个自定义小部件来实施您的案例。


长答案:

当您使用“Realtime - Last XXX”时间 window 时,小部件实际上会为 temperature 创建订阅遥测。自创建订阅以来,Thingsboard 后端会将所有 temperature 更新发送到 UI,即使时间戳是未来的。但是标准图表小部件将拒绝所有 'from future' 的遥测数据。

您可以打开浏览器控制台 'network' 选项卡并查看 WebSocket activity - 来自未来的遥测被传输到 UI。

另一个问题是标准的 Thingsbarod 时间范围选择器不允许 select 'future' 时间范围。

同时,Thingsboard REST API 不会验证请求的 startTsendTs,因此您可以轻松地下载遥测 'from the future'.


因此,我建议创建自定义图表小部件,该小部件将包含自己的时间范围选择器,并将使用 REST API 请求数据。 https://thingsboard.io/docs/reference/rest-api/