【问题标题】:ThingsBoard PE :Parse incoming MQTT/JSON stringThingsBoard PE:解析传入的 MQTT/JSON 字符串
【发布时间】:2020-11-04 07:12:31
【问题描述】:

我这几天一直在努力理解 TB 映射传入数据的方式。

我有一个传入的 MQTT 流,它作为密钥对被接收到 TB 中

数据:{"温度":"21.800000000000001","湿度":"51.5"}

无论我尝试什么,我都无法访问“数据”数据包中的各个密钥对。我只是想在每个参数的仪表板中绘制图表,应该没有那么难。

我正在尝试明天向客户演示此功能,但我显然看不到 TB 模型的数据,谁能帮助我?

编辑:我应该明确表示,我可以将整个数据:有效载荷数据包视为 TB 中的传入遥测数据,但我似乎无法将实际数据映射到“实体别名”,以便我可以绘制它。

【问题讨论】:

  • Thingsboard PE?我想你已经支付了官方支持的费用。使用它:) 但是,如何将数据发送到 TB? mqtt 消息是什么样的?我认为 TB 期望的是 {"temp:" 123, "hum": 321} 而不是 {"Data": {"temp:" 123, "hum": 321}}(这只是一个疯狂的猜测)
  • 感谢 lupz 的回复,不,ThingsBoard PE 也有试用版。只使用它是因为它不允许我在 CE 上开设第二个帐户。是的,你是对的,我在 JSON 字符串中有一个 JSON 字符串,但是 AFAIK 这仍然是完全有效的 JSON,所以 TB 应该能够处理这个问题,这并不是一个完全不寻常的情况。
  • 事实上,Thingsboard 能够处理您的 json,因为它已经保存了设备的遥测数据 :) 重点是:Thingsboard 将直接在遥测消息中保存它找到的所有键的值.当您发送{"temp": value1, "hum": value2} 时,它将保存两个值作为它们的键。当您发送{"data": { ... perfectly valid json ... }} 时,它将保存一个值,并由您来解释 json。

标签: json thingsboard


【解决方案1】:

遥测 API 的行为对于 CE 和 PE 版本是相同的。很可能,您正在推动

{"Data":{"Temperature":"21.800000000000001","Humidity":"51.5"}}

在这种情况下,您将插入一个名为“Data”的遥测密钥,其值为“{“Temperature”:“21.800000000000001”,“Humidity”:“51.5”}”。在这种情况下,值是 JSON 类型而不是原始类型。因此,您不能(轻松)将其用于绘图。仅用于规则引擎中的处理。我建议只发送 {"Temperature":"21.800000000000001","Humidity":"51.5"} (没有“数据”,没有嵌套的 JSON)。

如果由于设备/固件/等的限制而无法执行此操作,您可以在规则引擎中转换传入的数据并提取温度和湿度。这是使用转换规则节点完成的,该节点基本上是一个用户定义的 JS 函数。有关示例,请参阅 Docs->Guides->Transform Incoming Telemetry。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2014-01-24
    • 2021-04-25
    相关资源
    最近更新 更多