更新时间:2024-06-20 04:33:22下载pdf
涂鸦提供云端 TuyaLink 标准(MQTT)开放协议,方便您接入硬件设备。本文以一款常见的 MQTT 客户端 MQTT.fx 为例,模拟设备使用涂鸦开放的 MQTT 协议接入云端。
在 涂鸦开发者平台 创建产品,获取如下参数值。详细创建产品的过程,参考 选品类创建产品。
参数名称 | 参数说明 |
---|---|
ProductID | 产品 ID |
DeviceID | 设备的身份信息,用于连接云端授权和通信使用 |
DeviceSecret | 设备的密码信息,用于连接云端授权使用 |
下载 并安装相应操作系统版本的 MQTT.fx 客户端。
打开 MQTT.fx 软件,单击菜单栏中的 Extras 选项,并选择 Edit Connection Profiles。
在 Edit Connection Profiles 页面,填写相关参数。
参数名称 | 参数说明 |
---|---|
Profile Name | 输入您的自定义名称 |
Profile Type | MQTT 服务器连接,选择 MQTT Broker |
Broker Address | MQTT 接入域名,对应 MQTT 协议中的域名,此处以中国区域名 m1.tuyacn.com 为例 |
Broker Port | 通信端口号,设置为 8883 |
Client ID | MQTT 协议字段,格式为 tuyalink_{$deviceid} |
General | 使用默认值即可 |
选择 User Credentials 并填写相关参数。
参数名称 | 参数说明 |
---|---|
User Name | ${deviceId}|signMethod=hmacSha256,timestamp=${当前 10 位时间戳},secureMode=1,accessType=1 。例如: 6c828cba434ff40c074wF2|signMethod=hmacSha256,timestamp=1607837283,secureMode=1,accessType=1 。 |
Password | hmacSha256(content, deviceSecret) ,content 的值"deviceId=6c828cba434ff40c074wF2,timestamp=1607635284,secureMode=1,accessType=1" ,按照 deviceId 、timestamp 、secureMode 和 accessType 这个顺序组装明文内容。64 位字符的 16 进制数,不足 64 位时前面需要补零。 |
DeviceID
和 DeviceSercet
信息在开发者平台注册设备时生成,可参考 环境准备 章节找到相应参数。Password
加密信息:打开在线 Python 环境 1 或在线 Python 环境 2,复制下方代码,并修改设备的 DeviceID
和 DeviceSecret
,然后点击运行,即可获得结果。示例如下:
# 从产品开发平台获取设备相关信息
DeviceID = '6cae4****b285b5t0d2'
DeviceSecret = 'f9df8***bbaddc941'
# 默认配置
Address='m1.tuyacn.com'
Port = 8883
# 计算 Client ID
ClientID = 'tuyalink_'+DeviceID
# 计算用户名
import time
T = int(time.time())
UserName= f'''{DeviceID}|signMethod=hmacSha256,timestamp={T},secureMode=1,accessType=1'''
# 计算密码
import hmac
from hashlib import sha256
data = f'''deviceId={DeviceID},timestamp={T},secureMode=1,accessType=1'''.encode('utf-8') # 加密数据
appsecret = DeviceSecret.encode('utf-8') # 秘钥
Password = hmac.new(appsecret, data, digestmod=sha256).hexdigest()
# 打印MQTT连接所需的参数
print('-'*20)
print('Client ID:',ClientID)
print('服务器地址:',Address)
print('端口:',Port)
print('*用户名:',UserName)
print('*密码:',Password)
print('SSL/TLS: true\n证书类型: CA signed server\nSSL安全: 开启')
print('-'*20)
选择 SSL/TLS,选中 Enable SSL/TLS 并设置 Protocol 为 TLSv1.2。
单击右下角 OK 完成设置,再去主页面单击 Connect。
等待右侧指示灯变绿,表示连接成功。
在 Publish 页面输入发布的 topic,并填写 payload 信息,单击 Publish。此处以 tylink/6c855a6e81c40a91e9k5gx/thing/property/report
topic 为例进行介绍。
进入涂鸦开发者平台的 设备日志 页面,输入 DeviceID
信息,可以看到刚才发布的消息,证明上行通信已经成功。
在 Subscribe 页面输入 topic,单击 Subscribe,客户端会出现一条订阅的信息。此处以 tylink/6c855a6e81c40a91e9k5gx/thing/model/get_response
topic 为例进行介绍。
进入 Publish 页面,输入与订阅对应的 topic 信息,并单击 Publish 发布。
返回到 Subscribe 页面,可以看到刚才订阅的 topic 收到了云端的信息。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈