2023.8最新版onenet_基于python教程
一 python发送和接收方法:
使用get方法获取onenet数据流
授权信息可以使用onenet API的调试信息中直接获取
import requests
url = "http://iot-api.heclouds.com/datapoint/history-datapoints"
params = {
"product_id": "产品ID",
"device_name": "设备名称"
}
headers = {
"Accept": "application/json, text/plain, */*",
"authorization": "授权信息"
}
if __name__ == "__main__":
print("onenet")
# 发送GET请求
response = requests.get(url, params=params, headers=headers)
# 获取响应内容
data = response.json()
# 打印结果
#print(data)
datastreams = data['data']['datastreams']
for stream in datastreams:
stream_id = stream['id']
datapoints = stream['datapoints']
value = datapoints[0]['value'] # Assuming there is only one datapoint per id
print(f"{stream_id}: {value}")
使用post方法下发指令
import requests
url = "http://iot-api.heclouds.com/datapoint/synccmds"
headers = {
"Accept": "application/json, text/plain, */*",
"Content-Type": "application/json",
"Authorization": "授权信息"
}
query_params = {
"product_id": "产品ID",
"device_name": "设备名称",
"timeout": "10"
}
body = {
"product_id": "产品ID",
"device_name": "设备名称",
"timeout": "10",
"command": {
"dev0": 655 #需要发送的命令 得是这格式
}
}
response = requests.post(url, headers=headers, params=query_params, json=body)
if response.status_code == 200:
print("请求成功")
print(response.json()) # 如果API返回JSON响应,请根据需要处理或打印响应数据
else:
print("请求失败")
print(response.text) # 打印错误信息或其他响应内容
二 调试工具:
工具下载链接
提取码:0dql
token工具
token工具,用于生成密码。
1,在生成框中,每次生成密码先删除之前生成密码,之前生成的有些地方不会被覆盖造成错误。
2,如果遇到连接时还是错误,可以尝试在res 中手动输入产品ID和设备名,不用复制
3,et 是时间戳,就是有效期,可以理解为保质期。
懒得弄 ,et 可以直接用这 1880328113
时间戳转换工具
token模板
res
> products/产品ID/devices/设备名
*et*可以直接用这个,有效期2029年
> 1880328113
*key*是设备密匙
> 填写你自己的设备密匙,在设备详情中
## mqttfx_v1.7.1
**mqttfx_v1.7.1**,用于调试。在连接过程中出现提示账号密码错误的,大概率是token错误。
*Broken Address*
> mqtts.heclouds.com
*Broken port* 以下是无加密端口号,加密的端口需要onenet官方文档下载ssl证书。
> 1883
*Client ID* 填写设备名字就行,==不用==设备ID
> 设备名
*User Name* 是==产品ID==
> 产品ID
*Password* 是==token生成的密匙==也是最容易出错的地方,出现账号密码错误,请在token工具填写参数时尝试手动输入,不要用复制。
> token生成的密匙
==【注】MQTT version 需要选择 3.1.1==