当前位置: 首页 > news >正文

阿里云物联网获取设备属性api接口:QueryDevicePropertyData

阿里云物联网接口:QueryDevicePropertyData
 说明:调用该接口查询指定设备或数字孪生节点,在指定时间段内,单个属性的数据

比如提取上传到物联网的温度数据

api文档:QueryDevicePropertyData_物联网平台_API文档-阿里云OpenAPI开发者门户QueryDevicePropertyData调用该接口查询指定设备或数字孪生节点,在指定时间段内,单个属性的数据。是物联网平台的API文档,是阿里云OpenAPI开发者门户提供的OpenAPI开发手册,包括云产品的OpenAPI、出入参、错误码、变更历史。https://next.api.aliyun.com/document/Iot/2018-01-20/QueryDevicePropertyData


阿里云物联网平台云端SDK下载:

    物联网平台SDK下载地址和示例_物联网平台(IoT)-阿里云帮助中心物联网平台云端SDK支持Java、Python、PHP、Node.js、.NET、Go和Swift语言,用于调用云端API,以实现物联网平台的云端能力,如产品管理、设备管理、Topic管理、数据流转规则管理、消息通信等。本文介绍云端SDK的下载地址及使用示例。https://help.aliyun.com/zh/iot/developer-reference/download-iot-platform-sdks-2

    搞了好久才搞出来:

    • 1、java实现:

    • QueryDeviceTempData.java

    package com.example.iot;import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.iot.model.v20180120.QueryDevicePropertyDataRequest;
    import com.aliyuncs.iot.model.v20180120.QueryDevicePropertyDataResponse;
    import com.aliyuncs.profile.DefaultProfile;
    import com.aliyuncs.profile.IClientProfile;public class QueryDeviceTempData {public static void main(String[] args) {// 阿里云访问密钥String accessKeyId = "**";String accessKeySecret = "**";String regionId = "cn-shanghai";// 设备信息String productKey = "**";String deviceName = "**";// 初始化客户端IClientProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);IAcsClient client = new DefaultAcsClient(profile);// 创建请求QueryDevicePropertyDataRequest request = new QueryDevicePropertyDataRequest();request.setProductKey(productKey);request.setDeviceName(deviceName);request.setIdentifier("indate"); // 温度属性标识符request.setStartTime(System.currentTimeMillis() - 3600 * 1000); // 查询过去一小时的数据request.setEndTime(System.currentTimeMillis());request.setAsc(1); // 按时间升序排列request.setPageSize(10); // 每页返回的数据条数try {// 发送请求并获取响应QueryDevicePropertyDataResponse response = client.getAcsResponse(request);System.out.println("Response: " + response);// 解析响应if (response != null && response.getData() != null) {for (QueryDevicePropertyDataResponse.Data.PropertyInfo propertyInfo : response.getData().getList()) {System.out.println("Time: " + propertyInfo.getTime() + ", Value: " + propertyInfo.getValue());}}} catch (ClientException e) {e.printStackTrace();}}
    }

    • pom.xml文件:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>QueryDevicePropertyData</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- 阿里云核心库 --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.3</version></dependency><!-- 阿里云物联网平台SDK --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-iot</artifactId><version>7.4.0</version></dependency></dependencies></project>
    • java项目结构
    • java输出:

    Response: com.aliyuncs.iot.model.v20180120.QueryDevicePropertyDataResponse@38d8f54a
    Time: 1740729954244, Value: 18.0
    Time: 1740730254422, Value: 18.0
    Time: 1740730554592, Value: 18.0
    Time: 1740730854785, Value: 18.0
    Time: 1740731154962, Value: 17.0
     

    2、python实现

    输出json格式,想要哪些字段自行解析

    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.acs_exception.exceptions import ClientException
    from aliyunsdkcore.acs_exception.exceptions import ServerException
    from aliyunsdkiot.request.v20180120.QueryDevicePropertyDataRequest import QueryDevicePropertyDataRequest# 设置你的AccessKey ID和AccessKey Secret
    access_key_id = '**'
    access_key_secret = '**'
    region_id = 'cn-shanghai'  # 根据你的实际情况选择region# 创建AcsClient实例
    client = AcsClient(access_key_id, access_key_secret, region_id)# 创建QueryDevicePropertyDataRequest实例
    request = QueryDevicePropertyDataRequest()
    request.set_accept_format('json')# 设置请求参数
    request.set_ProductKey('**')  # 产品Key
    request.set_DeviceName('**')  # 设备名称
    request.set_Identifier('temp')  # 属性标识符
    request.set_StartTime(1740346648574)  # 开始时间,Unix时间戳,单位毫秒
    request.set_EndTime(1740357451888)  # 结束时间,Unix时间戳,单位毫秒
    request.set_PageSize(10)  # 每页记录数
    request.set_Asc(0)  # 0表示降序,1表示升序try:# 发送请求并获取响应response = client.do_action_with_exception(request)print(response.decode('utf-8'))
    except ClientException as e:print(e.get_error_code())print(e.get_error_msg())
    except ServerException as e:print(e.get_error_code())print(e.get_error_msg())

    python程序输出:{"RequestId":"036BBE41-52E9-5C5F-9312-D561C0D82282","Data":{"NextValid":false,"NextTime":1740355512752,"List":{"PropertyInfo":[{"Value":"-2.0","Time":1740357315548},{"Value":"-2.0","Time":1740357015021},{"Value":"-2.0","Time":1740356714858},{"Value":"-5.0","Time":1740356414687},{"Value":"-5.0","Time":1740356113089},{"Value":"-5.0","Time":1740355812915},{"Value":"-5.0","Time":1740355512754}]}},"Code":"","Success":true}


    http://www.mrgr.cn/news/92669.html

    相关文章:

  • ubuntu离线安装Ollama并部署Llama3.1 70B INT4并对外发布服务
  • FinRobot:一个使用大型语言模型进行金融分析的开源AI代理平台
  • AcWing 5933:爬楼梯 ← 递归 / 递推 / 高精度
  • 本地部署Deepseek+Cherry Studio
  • 自然语言处理(NLP):文本向量化从文字到数字的原理
  • PHP女程序猿学习Java的Day-10
  • 毕业项目推荐:基于yolov8/yolo11的野生菌菇检测识别系统(python+卷积神经网络)
  • Open3D的python API文档含义
  • Spring 循环依赖解析与解决方案
  • DeepSeek写俄罗斯方块手机小游戏
  • [Web 安全] 反序列化漏洞 - 学习笔记
  • 登录次数限制
  • 【每日八股】MySQL篇(四):索引(下)
  • Android OpenGLES2.0开发(十一):渲染YUV
  • 如何使用 Ollama 的 API 来生成文本
  • Qt互斥锁(QMutex)的使用、QMutexLocker的使用
  • ubuntu22.04系统如何自建2级ntp服务器
  • PySide(PyQT)重新定义contextMenuEvent()实现鼠标右键弹出菜单
  • 从“记住我”到 Web 认证:Cookie、JWT 和 Session 的故事
  • 【原创】Ubuntu 24搭建Ollama+ DeepSeek局域网服务器