# -*- coding: utf-8 -*-
'''
本文件用于请求阿里云物联网设备的数据请求功能,使用阿里云SDK实现
使用其SDK可跳过token的冗杂计算
阿里云api调试工具
https://next.api.aliyun.com/api/Iot/2018-01-20/QueryDevicePropertyData?lang=PYTHON¶ms={%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)
请求阿里云物联网平台的数据
最新推荐文章于 2023-07-14 17:17:38 发布