【问题标题】:Thingsboard shared attributes pulled from device从设备中提取的 Thingsboard 共享属性
【发布时间】:2021-06-03 03:58:59
【问题描述】:

我正在尝试从服务器获取所有共享属性 (45) 到设备 (ESP32)。我创建了一个完整的仪表板来更新/修改所有属性。但我面临两个问题:

  1. 识别设备正在接收的共享属性。
  2. 如果我的设备在属性更新时不在线怎么办?我没有找到提取所有属性的方法。

到目前为止,我收到了一个带有修改后属性的 json。但我无法确定设备接收的 45 个属性中的哪一个。 提前非常感谢

【问题讨论】:

  • 嗨,团队。我设法解决了这个明显的问题。使用 ArduinoJson 对 [link] (arduinojson.org/v6/api/jsonobject/begin_end),我现在可以管理 60 多个属性。困难的部分是在仪表板和设备 1 中分别设置它们。
  • 我也有同样的问题,请问怎么解决的?需要发布什么来获取所有共享属性的列表?

标签: json attributes thingsboard


【解决方案1】:

关于第二个问题,设备可以询问任何协议的属性。例如mqtt。主要思想是,您首先请求属性以查看当前值,然后subscribe 以查看属性是否有任何变化。

对于第一个问题,我不知道答案,因为你只是得到一个键值列表。

【讨论】:

    【解决方案2】:

    最后我设法找到了解决方案。 是的,一个正是你提到的。订阅以获取更新。

    在第一个问题上,不知道哪个是关键,并且为了避免做一个长案例,否则如果......在 ArduinoJson 中有一个名为 JsonPair 的解决方案,实际上它的作用几乎相同。获取密钥并更新先前解析的 JsonDocument 中的值(在本例中来自文件)。这是一个帮助我解决这个问题的链接,我花了很多时间试图解决这个问题。 https://arduinojson.org/v6/api/jsonobject/begin_end/

    【讨论】:

    • 作为节点用户的此线程的扩展,有一个选项可以知道哪个是即将到来的密钥......即 msg.payload.hasOwnProperty ("key") 。所以你知道你收到的是哪把钥匙……我认为这是一个好的开始。这里是找到这个的链接。 discourse.nodered.org/t/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多