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