thingsBoard簡單運用


參考: http://www.ithingsboard.com/docs/user-guide/rpc/

  • 設備單方面發送數據到 thingsBoard 平台

    設備將屬性上傳至 thingsBoard:

    v1/devices/me/attributes
    

    設備將遙測數據上傳至 thingsBoard:

    v1/devices/me/telemetry
    

    thingsBoard 可以在規則鏈中配置,將設備上傳的數據發送到 kafka 。

  • 遠程 RPC (分為兩種)

    一種是服務器端(后端)發送給設備數據,設備不用做出回應。

    這種情況下,服務端需要以 http(s) 的格式發送 RPC 請求給 thingsBoard,並指明需要進行連接的設備 id 號。

    http(s)://host:port/api/plugins/rpc/oneway/{deviceId}
    

    該請求的參數必須具備以下格式:

    {
      "method": "",
      "params": {
      
      }
    }
    
    必填參數:
    
    method - 表示json字符串格式的方法名
    params - 表示json字符串格式的對象參數列表
    

    對應的,設備需要先訂閱主題 v1/devices/me/rpc/request/+ ,表明自己可以接收來自 thingsBoard 的請求。

    訂閱該主題后,如果有來自服務端發送的請求到 thingsBoard 上,那么 thingsBoard 會向設備發送一條命令,具備以下格式:

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

    $request_id 表示請求的整型標識符。

    還一種是服務器端(后端)發送給設備數據,設備需要做出回應的。


    服務端發送的請求地址變為(只是將 oneway 改成了 twoway):

    http(s)://host:port/api/plugins/rpc/twoway/{deviceId}
    

    在服務端發送到 thingsBoard,thingsBoard 發送到設備的過程與上述一樣,只不過在這種模式下,設備需要對該請求做出應答。

    在設備收到對應的指令 v1/devices/me/rpc/request/$request_id 后,作為回應,設備需要在以下主題上發布數據:

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

    $request_id 為對應請求的整型標識符。

  • 設備發出請求

    上述 RPC 都是服務端發起的,那么設備如果要發起 RPC 到服務端需要以下步驟:

    1、設備將數據發送到以下主題:

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

    2、服務端需要將響應發送到對應主題:

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

    **$request_id ** 表示請求的整型標識符。

    3、若設備需要接收服務端發來的響應,則需要訂閱以下主題:

    v1/devices/me/rpc/response/+
    
  • 總結

    與一般的發布訂閱模式相同,對與 MQTT 協議,當一端發送請求到 request 主題上時,另外一端需要發送相應的響應數據到對應的 response 主題上。若發起端需要獲得該響應,則必須在之前就訂閱 response/+ 主題來為以后接收響應做准備。

  • 服務端調用 Java API

    https://repo.thingsboard.io/artifactory/libs-release-public
    // 依賴包網址
    

    需要在 pom.xml 中加入以下配置:

    <dependency>
        <groupId>org.thingsboard</groupId>
        <artifactId>rest-client</artifactId>
        <version>3.2.0</version>
    </dependency>
    
    //上面的依賴將從下面的網址中導入
    <repositories>
        <repository>
            <id>thingsboard</id>
            <url>https://repo.thingsboard.io/artifactory/libs-release-public</url>
        </repository>
    </repositories>
    

    若要使 repository 配置成功,則必須保證本地 maven 倉庫配置中允許導入外部倉庫。

    需要在本地 maven 倉庫的 settings.xml 中配置:

    里的 * 后面追加 !spring-milestones ,保存退出並重啟 IDEA 即可。


免責聲明!

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



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