Tous les produits
Search
Centre de documentation

IoT Platform:Vérifier et connecter un appareil

Dernière mise à jour :Aug 10, 2026

Cette rubrique explique comment initialiser le SDK Link pour Python et connecter un appareil à IoT Platform.

Contexte

Le SDK Link pour Python prend uniquement en charge la vérification des appareils basée sur le device certificate. Le tableau suivant décrit les méthodes de vérification.

Méthode de vérification

Méthode d'enregistrement

Description

Références

Vérification par certificat unique par appareil

N/A

Un certificat d'appareil contenant un ProductKey, un DeviceName et un DeviceSecret est inscrit sur chaque appareil.

Vérification par certificat unique par appareil

Vérification par certificat unique par produit

Préenregistrement

  • Un certificat de produit contenant un ProductKey et un ProductSecret est inscrit sur tous les appareils d'un produit.

  • Activez la fonctionnalité dynamic registration pour le produit.

  • L'enregistrement dynamique permet aux appareils d'obtenir le DeviceSecret.

Vérification par certificat unique par produit

Remarque

Pour plus d'informations sur les différences entre la vérification par certificat unique par produit avec préenregistrement et celle sans préenregistrement, consultez la section Différences entre les méthodes de vérification.

Sans préenregistrement

  • Un certificat de produit contenant un ProductKey et un ProductSecret est inscrit sur tous les appareils d'un produit.

  • Activez la fonctionnalité dynamic registration pour le produit.

  • L'enregistrement dynamique permet aux appareils d'obtenir une combinaison du ClientID et du DeviceToken.

Exemple de code

  • Vérification par certificat unique par appareil

    from linkkit import linkkit
    lk = linkkit.LinkKit(
        host_name="YourHostName",
        product_key="YourProductKey",
        device_name="YourDeviceName",
        device_secret="YourDeviceSecret")          
    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,
                cadata=None)

    Le tableau suivant décrit les paramètres.

    Paramètre

    Exemple

    Description

    host_name

    cn-shanghai

    L'ID de la région où se trouve l'appareil que vous souhaitez connecter à IoT Platform.

    product_key

    a18wP

    Le certificat d'appareil utilisé pour la vérification. Ce certificat est enregistré sur votre serveur local après l'ajout de l'appareil.

    Vous pouvez également consulter le certificat d'appareil sur la page Device Details dans la console IoT Platform. Pour plus d'informations, consultez la rubrique Obtenir les informations de vérification de l'appareil.

    device_name

    LightSwitch

    device_secret

    uwMTmVAMnGGHaAkqmeDY6cHxxB

    endpoint

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

    Le point de terminaison de l'instance IoT Platform.

    Ce paramètre est requis uniquement pour les instances Enterprise Edition et les instances publiques de la nouvelle version.

    Remarque

    Si vous utilisez une instance Enterprise Edition ou une instance publique de la nouvelle version, supprimez le dièse (#) devant le code.

    port

    8883

    Le numéro de port.

    protocol

    MQTTv311

    Le protocole utilisé pour établir une connexion entre l'appareil et IoT Platform.

    transport

    TCP

    Le protocole TCP (Transmission Control Protocol).

    secure

    TLS

    Le protocole TLS (Transport Layer Security).

    keep_alive

    60

    La période de maintien de la connexion (keep-alive). Unité : secondes. Valeurs valides : 60 à 180. Si IoT Platform ne détecte pas le signal de maintien de la connexion de l'appareil durant cette période, la connexion de l'appareil est rejetée.

    Si la connexion réseau est instable, nous vous recommandons d'augmenter la valeur de ce paramètre. Pour plus d'informations, consultez la rubrique Maintien de la connexion MQTT.

    clean_session

    True

    Indique si les messages hors ligne doivent être reçus. Valeurs valides :

    • True : l'appareil reçoit les messages hors ligne.

    • False : l'appareil ne reçoit pas les messages hors ligne.

    auto_reconnect_min_sec

    1

    L'intervalle minimum entre l'échec de la connexion et la reconnexion. Unité : secondes. Valeurs valides : 1 à 1200.

    auto_reconnect_max_sec

    60

    L'intervalle maximum entre l'échec de la connexion et la reconnexion. Unité : secondes. Valeurs valides : 1 à 1200.

  • Vérification par certificat unique par produit avec préenregistrement

    Remarque

    Pour plus d'informations, consultez le fichier dynamic_register.py dans le package d'exemples de code.

    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()
    
    # Wait for a downstream message. In most cases, the downstream message is returned within 1 second.
    time.sleep(5)
    lk_auth.destroy()

    Si vous spécifiez auth_type="register" pour la fonction LinkKit, le système utilise la méthode de vérification par certificat unique par produit avec préenregistrement pour vérifier l'appareil. La fonction de rappel on_device_dynamic_register renvoie le résultat de la vérification. Si la valeur du paramètre rc est 0, l'appareil passe la vérification par certificat unique par produit avec préenregistrement. Le système renvoie le DeviceSecret obtenu depuis IoT Platform. Enregistrez le DeviceSecret sur votre serveur local. Vous pouvez utiliser le DeviceSecret pour connecter votre appareil à IoT Platform. Pour plus d'informations, consultez la rubrique Vérification par certificat unique par appareil.

    Si vous spécifiez auth_type="", le système utilise une méthode de vérification deprecated disponible uniquement dans la région Chine (Shanghai). Pour plus d'informations, consultez le fichier dynamic_register_deprecated.py.

  • Vérification par certificat unique par produit sans préenregistrement

    Remarque
    • Vous pouvez utiliser le SDK Link pour Python pour effectuer une vérification par certificat unique par produit sans préenregistrement sur les appareils uniquement dans les régions Chine (Pékin) et Chine (Shanghai).

    • Pour plus d'informations, consultez le fichier dynamic_register_nwl.py dans le package d'exemples de code.

    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()
    # Wait for a downstream message. In most cases, the downstream message is returned within 1 second.
    time.sleep(5)
    lk_auth.destroy()

    Si vous spécifiez auth_type="regnwl", le système utilise la méthode de vérification par certificat unique par produit sans préenregistrement pour vérifier l'appareil. Si la valeur du paramètre rc est 0, l'appareil passe la vérification par certificat unique par produit sans préenregistrement. Le système renvoie les valeurs username, ClientID et password obtenues depuis IoT Platform.

Fonction de rappel

Après avoir connecté un appareil à IoT Platform, utilisez la fonction de rappel on_connect pour consulter le statut de la connexion. Si l'appareil est déconnecté, écrivez la logique de traitement dans la fonction de rappel on_disconnect en fonction de votre scénario métier.

Remarque

Par défaut, le SDK Link pour Python prend en charge la reconnexion. Si un appareil est déconnecté en raison d'une instabilité du réseau ou d'autres exceptions, l'appareil lance automatiquement une demande de reconnexion en fonction des paramètres configurés, tels que le paramètre de maintien de la connexion.

Exemple de code :

def on_connect(session_flag, rc, userdata):
    print("on_connect:%d,rc:%d,userdata:" % (session_flag, rc))
    pass
def on_disconnect(rc, userdata):
    print("on_disconnect:rc:%d,userdata:" % rc)
lk.on_connect = on_connect
lk.on_disconnect = on_disconnect          

(Facultatif) Configurer l'interface de connexion réseau

Si le même certificat d'appareil contenant le ProductKey, le DeviceName et le DeviceSecret est inscrit sur plusieurs appareils, IoT Platform considère ces appareils comme un seul et même appareil. Dans ce cas, lorsqu'un appareil se connecte, un autre est déconnecté. Vous pouvez transmettre des informations sur vos interfaces de connexion à IoT Platform pour le dépannage.

lk.config_device_info("Eth|03ACDEFF0032|Eth|03ACDEFF0031")

Le tableau suivant décrit les interfaces de connexion réseau.

Type de réseau

Exemple

Description

WiFi

Eth|03ACDEFF0032|Eth|03ACDEFF0031

Si votre appareil est connecté au WiFi ou à Ethernet via l'interface réseau ascendante, définissez le type de réseau sur WiFi ou Eth et spécifiez une adresse MAC (Media Access Control). L'adresse MAC doit être en majuscules.

Ethernet (Eth)

Réseau cellulaire (Cellular)

Cellular|imei_001122|iccid_22334455|imsi_234241|msisdn_53212

Si votre appareil est connecté à un réseau cellulaire, tel que 2G, 3G ou 4G, via l'interface réseau ascendante, définissez le type de réseau sur Cellular et configurez les paramètres suivants :

  • IMEI

  • ICCID

  • IMSI

  • MSISDN

Établir une connexion

Après avoir configuré les paramètres pour la connexion MQTT (Message Queuing Telemetry Transport), la fonction de rappel et l'interface de connexion réseau, appelez la méthode connect_async pour initier une connexion.

lk.connect_async()
Important

Si un appareil est déconnecté en raison d'une instabilité du réseau ou d'autres exceptions, l'appareil lance automatiquement une demande de reconnexion en fonction des paramètres configurés, tels que le paramètre de maintien de la connexion. Il vous suffit d'appeler la méthode une seule fois.