基于新版onenet的http上报设备数据python代码适用树莓派和本地

一、前言

       最近onenet也是彻底停止了多协议接入的新添产品和设备

也是想折腾一下新版onenet的接入,在搞这个东西的时候还是遇到一些问题,这个物模型设置属性貌似需要设备在线所以想试一下用http接入。

      也希望可以帮助大家

新版的http接入开发文档:OneNET - 中国移动物联网开放平台 (10086.cn)

自己跟着api应该可以学到很多东西

这里截取了官方开发文档的一部分    

二、url分析:

可以看到   属性上报地址是 adress+url       其实也是对应了代码的   

url = f"https://open.iot.10086.cn/fuse/http/device/thing/property/post?topic={topic}&protocol={protocol}"

三、请求头:

那么请求头headers:也是官方文档提到的重点:

包括两部分:Content-Type和token

Content-Type:application/json

那么还有token

token需要官方工具:token1.0

token工具的参数:

res:products/产品ID/devices/设备名字

et:时间戳,比现在的时间戳大就行,获取地址:时间戳(Unix timestamp)转换工具 - 在线工具 (tool.lu)

key:设备的密钥(不是产品的啊)

四、设备属性信息body

讲完了http的url,请求头,接下来就是body

官方开发文档中的这个就是OneJson格式:

body = {
"id": "123",
"version": "1.0",
"params": {
"temp": {"value": 27},
"RH": {"value": 84}
}
}

也是对应了代码的body  我在产品里添加的RH和temp标识符,可以看一下

五、python代码:用代码之前请关掉你的魔法工具

import requests
import json

# 直连设备属性上报
def report_device_property():
    # 设备信息
    product_id = "产品id"
    device_name = "设备名字"

    # 构造topic和protocol参数
    topic = f"$sys/{product_id}/{device_name}/thing/property/post"
    protocol = "http"

    # 构造完整的URL
    url = f"https://open.iot.10086.cn/fuse/http/device/thing/property/post?topic={topic}&protocol={protocol}"

    # 请求头部信息
    headers = {
        "Content-Type": "application/json",
        "token": "你的token"
    }

    # 设备属性信息
    body = {
        "id": "123",
        "version": "1.0",
        "params": {
            "temp": {"value": 27},
            "RH": {"value": 84}
        }
    }

    # 发送POST请求
    response = requests.post(url, headers=headers, json=body)
    print("Response:", response.json())

# 测试直连设备属性上报
report_device_property()

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式学不会不改名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值