TB boy 2024-03-20 12:14 采纳率: 0%
浏览 12

thingsboard和python连接

在使用Thingsboard网站进行实例测试,本人使用python进行连接设备,传输遥测数据,但是总显示连接不上

img

其中连接认证,我使用的是'Authorization': 'Bearer ' + access_token Bearer令牌加上设备的令牌,但是结果说是提供了无效的用户名和密码
thingsboard平台上只是创建设备和仪表台,并关联客户

img

还尝试使用thingsboard库,但找不到库,无法下载
from thingsboard import TBClient, TBHTTPClient
请问,这个连接的问题应该如何解决,还有这个库如何下载导入

自己写的代码

import json
import requests

MQTT_HOST = 'http://demo.thingsboard.io'
ACCESS_TOKEN="3saw67517npg8sm8lb04"
DEVICE_ID = '2caf7c80-e5ba-11ee-899f-2b58e9dbcb96'

mqtt_data={"temperature":25}
THINGSBOARD_URL = 'http://demo.thingsboard.io'
AUTH_API_ENDPOINT = f"{THINGSBOARD_URL}/api/auth/token"

def register_device(device_id, access_token,data):
    url = f"{MQTT_HOST}/api/device/{access_token}/telemetry"

    headers = {'Content-Type': 'application/json','Authorization': 'Bearer ' + access_token}

    payload = {
        "deviceId": device_id,
        "token": access_token
    }
    response = requests.post(url, headers=headers, data=json.dumps(data))

    if response.status_code == 200:
        print("数据发送成功")
    else:
        print(f"数据发送失败,状态码:{response.status_code}")
        print(f"错误信息:{response.text}")

status_code = register_device(DEVICE_ID, ACCESS_TOKEN,mqtt_data)
  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-20 12:19
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这个连接的问题可能是由于提供的连接认证信息不正确导致的,可以检查一下access_token和设备的令牌是否正确,并且检查一下是否在设备和仪表台上进行了正确的关联;如果尝试使用thingsboard库,则需要先安装该库,可以使用pip install thingsboard进行安装,然后可以在代码中使用from thingsboard import TBClient, TBHTTPClient进行导入。下面是修改后的代码示例:
    import json
    import requests
    from thingsboard import TBClient, TBHTTPClient
    # 配置认证信息
    thingsboard_url = 'http://demo.thingsboard.io'
    access_token = '3saw67517npg8sm8lb04'
    tb_client = TBHTTPClient(thingsboard_url, access_token)
    # 定义设备ID和发送的数据
    device_id = '2caf7c80-e5ba-11ee-899f-2b58e9dbcb96'
    data = {'temperature': 25}
    # 发送遥测数据
    response = tb_client.send_telemetry(device_id, data)
    if response.ok:
        print('数据发送成功')
    else:
        print(f'数据发送失败,状态码:{response.status_code}')
        print(f'错误信息:{response.text}')
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月20日

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆