【问题标题】:How to get live connection status of devices in ThingsBoard?如何在 ThingsBoard 中获取设备的实时连接状态?
【发布时间】:2021-11-29 13:44:08
【问题描述】:

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

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

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

我还查看了ThingsBoard Device Connectivity Status 页面、Create Alarm when the Device is offline 指南并进行了很长时间的研究,但无法使其发挥作用。

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

亲切的问候。

【问题讨论】:

  • 什么决定了设备的状态?我的意思是,连接状态对您意味着什么?在最后 x 分钟/秒内发布?在我的解决方案中,我通过其lastActivityTime 服务器属性表示设备的状态,该属性适合我,但可能不适合您。
  • 我想区分状态connected(基于lastConnectTimeConnectEvent)、disconnected(基于lastDisconnectTimeDisconnectEvent)和lastActivityTime也需要知道。状态所基于的变量很容易显示,但我希望将其作为二进制连接变量或一些字符串表示“已连接”/“已断开”。
  • 在你的规则链中,你可以放一个(蓝色的)Transform - Script 节点并用一些逻辑配置它吗?说,“在连接事件 -> connected = true”,然后通过保存属性节点保存?
  • 天哪!非常感谢。那成功了!我会发布一个答案,以便其他人可以应用该解决方案。

标签: thingsboard


【解决方案1】:

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

我做了什么?

  1. 创建一个蓝色的 Transform-script 节点。

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

    var newType = "POST_ATTRIBUTES_REQUEST"

    msg.connectivity = "已连接"

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

  3. 不仅仅是将其连接到规则链中的帖子属性节点,如图所示。 Link to screenshot of rule chain

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2023-02-05
    • 2012-01-28
    • 1970-01-01
    • 2023-03-24
    • 2019-01-17
    相关资源
    最近更新 更多