请求阿里云物联网平台的数据

# -*- coding: utf-8 -*-
'''
本文件用于请求阿里云物联网设备的数据请求功能,使用阿里云SDK实现
使用其SDK可跳过token的冗杂计算

阿里云api调试工具
https://next.api.aliyun.com/api/Iot/2018-01-20/QueryDevicePropertyData?lang=PYTHON&params={%22DeviceName%22:%22deviceGps%22,%22ProductKey%22:%22ihkybth4H9h%22,%22IotInstanceId%22:%22iot-06z00h7j96ltk77%22,%22StartTime%22:1579249499000,%22Identifier%22:%22test%22,%22Asc%22:1,%22EndTime%22:2579249499000,%22PageSize%22:10}&tab=DEMO

'''
from alibabacloud_iot20180120.client import Client as Iot20180120Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_iot20180120 import models as iot_20180120_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class RequestDataFromDevice_aliyun(object):
    def __init__(self):
        self.AccessKeyId = ''  # 账号
        self.AccessKeySecret = ''  # 密码

        self.endpoint = ''  # url

        self.device_name = ''  # 设备名称
        self.product_key = ''  # ProductKey
        self.iot_instance_id = ''  # 实例ID
        self.start_time = 1579249499000  # 开始时间
        self.identifier = ''  # 物理模型的标识ID
        self.asc = 0  # 0是倒叙,1是正序   倒叙是指从今到古,正序是指时间从古到今
        self.end_time = 2579249499000  # 结束时间
        self.page_size = 10  # 返回数据数量

    def create_client(self, access_key_id: str, access_key_secret: str, ) -> Iot20180120Client:
        """
        使用AK&SK初始化账号Client
        @param access_key_id:
        @param access_key_secret:
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config(
            # 必填,您的 AccessKey ID,
            access_key_id=access_key_id,
            # 必填,您的 AccessKey Secret,
            access_key_secret=access_key_secret
        )
        # 访问的域名
        config.endpoint = self.endpoint
        return Iot20180120Client(config)

    def getData(self):
        client = self.create_client(self.AccessKeyId, self.AccessKeySecret)
        query_device_property_data_request = iot_20180120_models.QueryDevicePropertyDataRequest(
            device_name=self.device_name,
            product_key=self.product_key,
            iot_instance_id=self.iot_instance_id,
            start_time=self.start_time,
            identifier=self.identifier,
            asc=self.asc,
            end_time=self.end_time,
            page_size=self.page_size
        )
        runtime = util_models.RuntimeOptions()
        try:
            # 复制代码运行请自行打印 API 的返回值
            # client.query_device_property_data_with_options(query_device_property_data_request, runtime)
            # print(client.query_device_property_data_with_options(query_device_property_data_request, runtime))
            return client.query_device_property_data_with_options(query_device_property_data_request, runtime)
        except Exception as error:
            # 如有需要,请打印 error
            print(f'error:{UtilClient.assert_as_string(error.message)}')
            # UtilClient.assert_as_string(error.message)

    def dataParse(self):
        data = self.getData()
        lst = []
        for i in data.body.data.list.property_info:
            lst.append(i.value)
        return lst
a = RequestDataFromDevice_aliyun().dataParse()
print(a)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值