Thingsboard MQTT 設備 API 參考


入門

MQTT基礎

MQTT是一種輕量級的發布-訂閱消息傳遞協議,可能使其最適合於各種IoT設備。您可以在此處找到有關MQTT的更多信息。

ThingsBoard服務器節點充當MQTT代理,該代理支持QoS級別0(最多一次)和1(至少一次)以及一組預定義的主題。

客戶端庫設置

您可以在網上找到大量的MQTT客戶端庫。本文中的示例將基於Mosquitto和MQTT.js。為了設置這些工具之一,您可以使用我們的《Hello World》指南中的說明。

MQTT連接

我們將在本文中使用訪問令牌設備憑證,這些憑證稍后將稱為$ ACCESS_TOKEN。應用程序需要使用包含$ ACCESS_TOKEN的用戶名發送MQTT CONNECT消息。連接序列期間可能的返回碼及其原因:

0x00已連接 -已成功連接到ThingsBoard MQTT服務器。
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://thingsboard.io/docs/reference/mqtt-api/

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

歡迎大家加入thingsboard 二次開發討論群:121202538

thingsboard交流QQ群 121202538


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM