如何在 ThingsBoard 中获取设备的实时连接状态?

How to get live connection status of devices in ThingsBoard?

我最近开始在我的学士论文的背景下使用 thingsboard。没错,我正在尝试不同的功能,以检查 thingsboard 已经满足哪些要求,哪些必须由我实现。

在该过程中,我坚持要求 thingsboard 仪表板应提供有关已注册设备的连接状态(连接、断开、活动、非活动)的实时信息。

为了解决这个问题,我尝试编辑分配给相关设备的设备配置文件使用的规则链。具体来说,我使用 message type switch 并尝试通过 ConnectEvent、DisconnectEvent、ActiveEvent 和 InactiveEvent 连接到它的各种动作节点。我想要的是将设备的连接状态存储在 SERVER_SCOPE 属性中,然后显示在实体小部件中。我所做的就是在断开连接时生成警报并在(重新)连接时清除警报。我知道有一个名为 active 的服务器端属性会在设备连接时立即更改 true 但它只会在 inactivityTimeout 过期后变为 false

我还查看了 ThingsBoard Device Connectivity Status page, the Create Alarm when the Device is offline 指南并进行了长时间的研究,但无法正常工作。

你们有什么解决方案或提示吗?

此致。

在@JacksonB 的帮助下,我设法解决了我的问题。

我做了什么?

  1. 创建一个蓝色的转换脚本节点。

  2. 将消息类型更改为 POST_ATTRIBUTES_REQUEST 并添加所需的属性。 这是我的代码:

    var newType = "POST_ATTRIBUTES_REQUEST"

    msg.connectivity =“已连接”

    return {msg: msg, metadata: metadata, msgType: newType};

  3. 只需将其连接到规则链中的 post 属性节点,如图所示。 Link to screenshot of rule chain

不,我可以通过在仪表板上显示该属性的值来立即查看设备是否已连接或断开连接。