thingsboard mqtt 设备 api 参考 · 物联网平台-威尼斯人最新

thingskit for thingsboard二次开发 · 2020年03月14日 · 最后由 回复于 2022年08月03日 · 960 次阅读
本帖已被设为精华帖!

入门

mqtt 基础

mqtt 是一种轻量级的发布 - 订阅消息传递协议,可能使其最适合于各种 iot 设备。您可以在此处找到有关 mqtt 的更多信息。

thingsboard 服务器节点充当 mqtt 代理,该代理支持 qos 级别 0(最多一次)和 1(至少一次)以及一组预定义的主题。

客户端库设置

您可以在网上找到大量的 mqtt 客户端库。本文中的示例将基于 mosquitto 和 mqtt.js。为了设置这些工具之一,您可以使用我们的《hello world》指南中的说明。

mqtt 连接

我们将在本文中使用访问令牌设备凭证,这些凭证稍后将称为 $ access_token。应用程序需要使用包含 $ access_token 的用户名发送 mqtt connect 消息。连接序列期间可能的返回码及其原因:

0x00已连接-已成功连接到thingsboardmqtt服务器。0x04连接被拒绝,用户名或密码错误-用户名为空。0x05连接被拒绝,未经授权-用户名包含无效的$access_token。

键值格式

默认情况下,thingsboard 支持 json 中的键值内容。键始终是一个字符串,而值可以是字符串,布尔值,双精度或长整数。也可以使用自定义二进制格式或某些序列化框架。有关更多详细信息,请参见协议自定义。例如:

{"stringkey":"value1","booleankey":true,"doublekey":42.0,"longkey":73}

遥测上传 api

为了将遥测数据发布到 thingsboard 服务器节点,请将 publish 消息发送到以下主题:

v1/devices/me/telemetry

支持的最简单的数据格式是:

{"key1":"value1","key2":"value2"}

要么

[{"key1":"value1"},{"key2":"value2"}]

请注意,在这种情况下,服务器端时间戳将分配给上传的数据!

如果您的设备能够获得客户端时间戳,则可以使用以下格式:

{"ts":1451649600512,"values":{"key1":"value1","key2":"value2"}}

在上面的示例中,我们假设 “ 1451649600512” 是具有毫秒精度的 unix 时间戳。例如,值'1451649600512'对应于'星期五,2016年1月1日12:00:00.512 gmt'。

属性 api

thingsboard 属性 api 使设备能够

  • 将客户端设备属性上载到服务器。
  • 从服务器请求客户端和共享设备属性。
  • 从服务器订阅共享的设备属性。
  • 将属性更新发布到服务器

为了将客户端设备属性发布到 thingsboard 服务器节点,请将 publish 消息发送到以下主题:

v1/devices/me/attributes

从服务器请求属性值

为了向 thingsboard 服务器节点请求客户端或共享设备属性,请将 publish 消息发送到以下主题:

v1/devices/me/attributes/request/$request_id

其中 $ request_id 是您的整数请求标识符。在发送带有请求的 publish 消息之前,客户端需要订阅

v1/devices/me/attributes/response/ 

从服务器订阅属性更新

为了订阅共享设备属性更改,请发送 subscribe 消息到以下主题:

v1/devices/me/attributes

当服务器端组件之一(例如 rest api 或规则链)更改了共享属性时,客户端将收到以下更新:

{"key1":"value1"}

rpc api

服务器端 rpc

为了从服务器订阅 rpc 命令,请将 subscribe 消息发送到以下主题:

v1/devices/me/rpc/request/ 

订阅后,客户端将以发布消息的形式接收到相应主题的各个命令:

v1/devices/me/rpc/request/$request_id 其中 $ request_id 是整数请求标识符。

客户应发布对以下主题的响应:

v1/devices/me/rpc/response/$request_id

客户端 rpc

为了将 rpc 命令发送到服务器,请将 publish 消息发送到以下主题:

v1/devices/me/rpc/request/$request_id

其中 $ request_id 是整数请求标识符。来自服务器的响应将发布到以下主题:

v1/devices/me/rpc/response/$request_id

参考:

交流:https://www.iotschool.com/topics/165

欢迎大家加入 thingsboard 二次开发讨论群:121202538

thingskit 将本帖设为了精华贴 03月14日 23:06
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
网站地图