如何初始化PythonLinkSDK,将设备接入物联网平台 您所在的位置:网站首页 阿里云物联网平台设备未激活 如何初始化PythonLinkSDK,将设备接入物联网平台

如何初始化PythonLinkSDK,将设备接入物联网平台

2024-02-24 03:32| 来源: 网络整理| 查看: 265

一机一密

from linkkit import linkkit lk = linkkit.LinkKit( host_name="YourHostName", product_key="YourProductKey", device_name="YourDeviceName", device_secret="YourDeviceSecret") lk.config_mqtt(endpoint="{Your Mqtt Host Url}") lk.config_mqtt(port=8883, protocol="MQTTv311", transport="TCP", secure="TLS", keep_alive=60, clean_session=True, max_inflight_message=20, max_queued_message=0, auto_reconnect_min_sec=1, auto_reconnect_max_sec=60, check_hostname=True, cadata=None)

参数说明:

参数

示例

说明

host_name

cn-shanghai

设备接入的地域ID。

product_key

a18wP******

设备认证信息。即完成添加设备后,您保存至本地的设备证书。

您也可以在物联网平台的设备详情页查看设备的认证信息。更多信息,请参见获取设备认证信息。

device_name

LightSwitch

device_secret

uwMTmVAMnGGHaAkqmeDY6cHxxB******

endpoint

iot-cn-6ja******.mqtt.iothub.aliyuncs.com

接入域名。

您可在物联网平台控制台的实例详情页面,单击查看开发配置,获取设备接入域名。具体内容,请参见查看和配置实例终端节点信息(Endpoint)。

port

8883

端口号。

protocol

MQTTv311

设备与物联网平台建立连接的协议。

transport

TCP

传输控制协议。

secure

TLS

安全传输层协议。

keep_alive

60

保活时间,单位秒,取值范围为60~180。当设备的心跳时间不在保活时间内,物联网平台将拒绝设备的连接请求。

如果网络不稳定,建议增大该参数的值。更多信息,请参见MQTT保活。

clean_session

True

设置是否接收离线消息。取值为:

True:是

False:否

auto_reconnect_min_sec

1

设置重连的最小间隔时间,单位为秒,取值范围为1~1,200。

auto_reconnect_max_sec

60

设置重连的最大间隔时间,单位为秒,取值范围为1~1,200。

check_hostname

True

在MQTT建连时,设置TLS握手时是否需要校验域名,默认为True,表示需要校验。

如果endpoint输入的是IP地址,请将check_hostname设置为False。

一型一密预注册

说明

更多代码信息,请参见exmaple示例代码中的dynamic_register.py文件。

import time from linkkit import linkkit import logging # config log __log_format = '%(asctime)s-%(process)d-%(thread)d - %(name)s:%(module)s:%(funcName)s - %(levelname)s - %(message)s' logging.basicConfig(format=__log_format) product_key = "${YourProductKey}" device_name = "${YourDeviceName}" product_secret = "${YourProductSecret}" instance_id = "${YourInstanceId}" device_secret = "" lk_auth = linkkit.LinkKit( host_name="cn-shanghai", product_key=product_key, device_name=device_name, device_secret="", auth_type="register", instance_id=instance_id, product_secret=product_secret) def on_device_dynamic_register(rc, value, userdata): if rc == 0: global device_secret print("dynamic register device success, rc:%d, value:%s" % (rc, value)) device_secret = value else: print("dynamic register device fail,rc:%d, value:%s" % (rc, value)) lk_auth.enable_logger(logging.DEBUG) lk_auth.on_device_dynamic_register = on_device_dynamic_register lk_auth.connect_async() # 等待下行报文,一般1s内就能返回 time.sleep(5) lk_auth.destroy()

LinkKit构造参数中传入auth_type="register",表示一型一密预注册,结果在回调on_device_dynamic_register中透出。当rc值为0时,表示一型一密动态注册成功。返回的值为从物联网平台获取的设备的DeviceSecret。您需将该参数的值储存至本地,待设备接入时使用。具体操作,请参见一机一密。

如果auth_type="",则表示一种deprecated的一型一密注册方式,仅在华东2(上海)地域支持。更多信息,请参见dynamic_register_deprecated.py文件。

一型一密免预注册

说明

Python Link SDK仅支持地域为华东2(上海)、华北2(北京)的设备进行一型一密免预注册的认证方式。

更多代码信息,请参见exmaple示例代码中的dynamic_register_nwl.py文件。

import time from linkkit import linkkit import logging # config log __log_format = '%(asctime)s-%(process)d-%(thread)d - %(name)s:%(module)s:%(funcName)s - %(levelname)s - %(message)s' logging.basicConfig(format=__log_format) product_key = "${YourProductKey}" device_name = "${YourDeviceName}" product_secret = "${YourProductSecret}" instance_id = "${YourInstanceId}" lk_auth = linkkit.LinkKit( host_name="cn-shanghai", product_key=product_key, product_secret=product_secret, device_name=device_name, device_secret="", instance_id=instance_id, auth_type="regnwl") def on_device_dynamic_register_nwl_reply(code, client_id_l, user_name_l, password_l): print("code:", code) if 0 == code: print("cid:", client_id_l) print("user_name:", user_name_l) print("password:", password_l) lk_auth.enable_logger(logging.DEBUG) lk_auth.on_device_dynamic_register_nwl_reply = on_device_dynamic_register_nwl_reply lk_auth.connect_async() # 等待下行报文,一般1s内就能返回 time.sleep(5) lk_auth.destroy()

auth_type="regnwl"表示一型一密免预注册。当rc值为0时,表示一型一密免预注册动态注册成功。返回的值为从物联网平台获取的设备的username、clientId、password。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有