如何在ThingsBoard中通过单次HTTP请求获取多设备属性及设备组数据
如何通过单次API调用获取ThingsBoard指定设备组下所有设备的全量数据
可以实现,你需要使用用户级JWT令牌调用ThingsBoard的实体查询接口,不能使用单设备的访问令牌(单设备令牌仅有权限查询对应单个设备的数据),具体操作流程如下:
操作步骤
- 首先获取目标设备组的ID:调用
GET /api/deviceGroups?pageSize=100&page=0接口,搜索你要查询的设备组,拿到对应的id字段值。 - 调用批量实体查询接口拉取全量数据,接口为
POST /api/entities/query,请求体示例如下:
{ "entityFilter": { "type": "DEVICE_GROUP", "resolveMultiple": true, "entityGroupId": "替换为你上一步获取的设备组ID" }, "latestValues": [ { "key": "attribute", "scope": "SERVER_SCOPE" }, { "key": "attribute", "scope": "SHARED_SCOPE" }, { "key": "attribute", "scope": "CLIENT_SCOPE" }, { "key": "timeseries" } ], "pageSize": 1000 }
上述配置会一次性拉取设备组内所有设备的服务端属性、共享属性、客户端属性和全量最新遥测数据。
注意事项
- 如果设备组内设备数量超过你设置的
pageSize,返回结果会携带nextPageLink参数,你可以把该参数放到请求体中调用同个接口,即可拉取下一页数据。 - 如果不需要全量属性/遥测数据,可以在
latestValues配置中指定你需要的具体字段名,减少接口响应耗时和数据体积。
内容的提问来源于stack exchange,提问作者Pallab Chowdhury
相关产品推荐
相关产品推荐

