之前接入onenet的教程都是老版的了,如果使用mqtt那些教程就不行了,踩坑一下午,这里记录一下。
首先进入官网创建产品和设备,我选的mqtt和数据流。
创建好使用后,mqtt.fx打开
这里有坑,name随便填就行,地址不是183那个了,换了是这个了。端口是1883,client id是你设备的名字,不是设备id!!!!!,user credentials是产品id。
接下来是密码,是使用的token生成的。
import base64
import hmac
import time
from urllib.parse import quote
def token(id,access_key):
version = '2018-10-31'
res = 'products/%s' % id # 通过产品ID访问产品API
# 用户自定义token过期时间
et = str(int(time.time()) + 3600)
# 签名方法,支持md5、sha1、sha256
method = 'sha1'
# 对access_key进行decode
key = base64.b64decode(access_key)
# 计算sign
org = et + '\n' + method + '\n' + res + '\n' + version
sign_b = hmac.new(key=key, msg=org.encode(), digestmod=method)
sign = base64.b64encode(sign_b.digest()).decode()
# value 部分进行url编码,method/res/version值较为简单无需编码
sign = quote(sign, safe='')
res = quote(res, safe='')
# token参数拼接
token = 'version=%s&res=%s&et=%s&method=%s&sign=%s' % (version, res, et, method, sign)
return token
if __name__ == '__main__':
id = '123'
access_key = '666'
print(token(id,access_key))
这里要修改id和access_key ,id是你产品id,access_key 是你产品开发中的那个key,别弄混了。