Tous les produits
Search
Centre de documentation

IoT Platform:Envoyer les données des appareils vers des groupes DingTalk

Dernière mise à jour :Aug 09, 2026

Cette rubrique explique comment transmettre à un groupe DingTalk les données soumises par un appareil, en utilisant une règle de transfert de données. L'exemple présenté utilise un thermo-hygromètre.

Scénario

Les données envoyées par les thermo-hygromètres installés dans les bureaux doivent être transmises à un chatbot DingTalk.

Processus

温湿度传感器流转数据流程

Étape 1 : Créer un produit et un appareil

  1. Connectez-vous à la console IoT Platform.

  2. Sur la page Overview, repérez l'instance que vous souhaitez gérer et cliquez sur son ID ou son nom.

  3. Dans le volet de navigation de gauche, accédez à Products et créez un produit nommé thermo-hygrometer. Lors de la création du produit, définissez le paramètre Node Type sur Directly Connected Device.

    Conservez les valeurs par défaut pour les autres paramètres. Pour plus d'informations, consultez la rubrique Créer un produit.

  4. Cliquez sur Create TSL. Sous l'onglet Define Feature, cliquez sur Edit Draft. Dans la section Default Module, ajoutez des fonctionnalités personnalisées au produit.

    Dans cet exemple, les propriétés de température et d'humidité sont ajoutées au produit. Pour en savoir plus, reportez-vous à la section Ajouter manuellement un modèle TSL.物模型

  5. Dans le volet de navigation de gauche, accédez à Devices > Devices. Créez un appareil nommé TH_sensor sous le produit thermo-hygrometer. Pour plus de détails, consultez la rubrique Créer un appareil.

    Dans la boîte de dialogue The devices have been added, cliquez sur Learn More pour obtenir le certificat de l'appareil contenant le ProductKey, le DeviceName et le DeviceSecret. Conservez ce certificat en lieu sûr. Il sert d'identifiant principal pour la communication entre l'appareil et IoT Platform.

  6. Sous l'onglet Device List, repérez l'appareil que vous venez de créer et cliquez sur View dans la colonne Actions. La page device details s'affiche. Dans la section Tag Information, cliquez sur Edit pour ajouter des tags à l'appareil.

    Dans cet exemple, les tags décrits dans le tableau suivant sont ajoutés. Pour plus d'informations, consultez la rubrique Tags.

    Key

    Value

    Description

    tag

    Room 00XS, Floor F, Building X, YY Town

    L'emplacement de l'appareil.

    deviceISN

    T20180102X

    Le numéro de série (SN) de l'appareil.

Étape 2 : Configurer Function Compute

Function Compute est un service de calcul entièrement géré et piloté par les événements. Il prend en charge Java, Node.js et Python. Pour en savoir plus, consultez la rubrique Utiliser Function Compute.

  1. Spécifiez l'URL webhook d'un chatbot DingTalk.

    1. Connectez-vous à DingTalk depuis votre ordinateur.

    2. Dans la fenêtre de conversation DingTalk, cliquez sur l'icône 群设置. Dans le panneau qui s'affiche, cliquez sur Group Assistant.

    3. Cliquez sur Add Robot, puis sur l'icône 添加机器人.

    4. Cliquez sur Custom, puis sur Add.

    5. Configurez les paramètres Chatbot name et Security Settings, cochez la case I have read and accepted <DingTalk Custom Robot Service Terms of Service>, puis cliquez sur Finished.

    6. Cliquez sur Copy pour enregistrer l'URL webhook sur votre ordinateur.

  2. Rédigez un script Function Compute.

    Dans cet exemple, l'environnement d'exécution Node.js est utilisé. La fonction récupère les données de l'appareil depuis IoT Platform, les traite selon le format de message DingTalk spécifié, puis les envoie à l'URL webhook du chatbot DingTalk cible via une requête HTTPS POST. Les données de l'appareil incluent l'emplacement de l'appareil, son numéro de série, les mesures de température et d'humidité en temps réel, ainsi que l'horodatage de la soumission des données à IoT Platform.

    Une fois le script rédigé, nommez le fichier index.js, puis compressez-le dans une archive nommée index.zip. Le code ci-dessous illustre un exemple de script.

    Vous devez remplacer accessToken par la valeur du paramètre access_token figurant dans l'URL webhook.

    const https = require('https');
    const accessToken = 'Specify the value of the access_token parameter in the webhook URL.'
    module.exports.handler = function(event, context, callback) {
    var eventJson = JSON.parse(event.toString());
    // DingTalk message format
    const postData = JSON.stringify({
    "msgtype": "markdown",
    "markdown": {
    "title": "Thermo-hygrometer",
    "text": "#### Temperature and humidity details\n" +
    "> Device location: " + eventJson.tag + "\n\n" +
    "> Device SN: " + eventJson.isn+ "\n\n" +
    "> Temperature: " + eventJson.temperature + "℃\n\n" +
    "> Humidity: " + eventJson.humidity + "%\n\n" +
    "> ###### " + eventJson.time + " published by [IoT Platform](https://www.aliyun.com/product/iot) \n"
    },
    "at": {
    "isAtAll": false
    }
    });
    const options = {
    hostname: 'oapi.dingtalk.com',
    port: 443,
    path: '/robot/send?access_token=' + accessToken,
    method: 'POST',
    headers: {
    'Content-Type': 'application/json',
    'Content-Length': Buffer.byteLength(postData)
    }
    };
    const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    res.on('data', (chunk) => {});
    res.on('end', () => {
    callback(null, 'success');
    });
    });
    // Return an error.
    req.on('error', (e) => {
    callback(e);
    });
    // Write the data.
    req.write(postData);
    req.end();
    };
  3. Créez un service et une fonction.

    1. Activez Alibaba Cloud Function Compute. Pour plus d'informations, consultez la rubrique Activer Function Compute.

    2. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, cliquez sur Services & Functions.

    3. Cliquez sur Create Service, définissez le paramètre Name sur IoT_Service, puis cliquez sur OK.

    4. Sur la page Services, cliquez sur IoT_Service, puis sur Create Function.

    5. Sur la page Create Function, sélectionnez Use Built-in Runtime.

    6. Configurez les paramètres indiqués dans les captures d'écran ci-dessous. Conservez les valeurs par défaut pour les autres paramètres, puis cliquez sur Create.

      • Basic Settings

        Définissez le paramètre Function Name sur pushData2DingTalk et le paramètre Request Type sur Event Requests, comme illustré ci-dessous.

        基本设置

      • Code

        Sélectionnez Node.js 14 dans la liste déroulante Runtime Environments, puis téléchargez le fichier index.zip que vous avez créé, comme indiqué ci-dessous.

        函数代码

Étape 3 : Transférer les données vers Function Compute

Configurez une règle de transfert de données pour acheminer les données de température et d'humidité soumises par l'appareil TH_sensor vers la fonction pushData2DingTalk.

  1. Accédez à la console IoT Platform console IoT Platform, puis à la page de détails de votre instance. Dans le volet de navigation de gauche, accédez à Data Forwarding, puis cliquez sur Create Rule. Saisissez le nom de la règle Temperature_humidity_forwarding et cliquez sur OK.

    Important

    Si la page Data Forwarding de la dernière version s'affiche, cliquez sur Back to Previous Version en haut à droite de la page. Lorsque la page Data Forwarding de la version précédente apparaît, cliquez sur Create Rule.

  2. Sur la page Data Forwarding Rules, cliquez sur Write SQL Statement pour rédiger l'instruction SQL utilisée pour traiter les données.

    Dans cet exemple, les champs suivants sont spécifiés pour filtrer les données :

    • Les champs définissant les informations de l'appareil : deviceName, tag et deviceISN.

    • Les champs définissant les données soumises : temperature et humidity.

    Exemple d'instruction SQL :

    SELECT 
    deviceName() as deviceName, 
    attribute('tag') as tag, attribute('deviceISN') as isn, 
    items.temperature.value as temperature, items.humidity.value as humidity, 
    timestamp('yyyy-MM-dd HH:mm:ss') as time 
    FROM 
    "/g5j3o***/TH_sensorthing/event/property/post"

    编写SQL

  3. Sur la page Data Forwarding Rules, cliquez sur Add Operation pour transférer les données vers Function Compute.

    Dans cet exemple, le service IoT_Service et la fonction pushData2DingTalk sont sélectionnés. Pour plus d'informations, consultez la rubrique Transférer des données vers Function Compute (FC).转发数据

  4. Sur la page Data Forwarding, repérez la règle Temperature_humidity_forwarding que vous avez créée, puis cliquez sur Start dans la colonne Actions pour activer la règle.

Étape 4 : Connecter le thermo-hygromètre à IoT Platform et soumettre les données de température et d'humidité

Connectez l'appareil à IoT Platform via MQTT en utilisant le certificat de l'appareil. Ensuite, simulez la soumission des données de température et d'humidité.

  1. Téléchargez et installez Node.js sur Windows ou Linux. Dans cet exemple, Windows 10 (64 bits) est utilisé. Téléchargez le package d'installation node-v14.15.1-x64.msi.

  2. Ouvrez une invite de commandes et exécutez la commande suivante pour afficher la version de Node :

    node --version

    Si le package est installé, le numéro de version suivant s'affiche :

    v14.15.1
  3. Créez un fichier JavaScript, par exemple iot_device.js, sur votre ordinateur pour y stocker l'exemple de code Node.js.

    L'exemple de code Node.js ci-dessous montre comment connecter l'appareil à IoT Platform et soumettre les données.

    const mqtt = require('aliyun-iot-mqtt');
    // 1. Specify the device certificate information.
    var options = {
        productKey: "g18l***",
        deviceName: "TH_sensor",
        deviceSecret: "b2e6e4f102458d84***",
        host: "iot-cn-***.mqtt.iothub.aliyuncs.com"
    };
    
    // 2. Establish an MQTT connection.
    const client = mqtt.getAliyunIotMqttClient(options);
    // Subscribe to the topic that is used to receive commands from IoT Platform.
    client.subscribe(`/${options.productKey}/${options.deviceName}/user/get`)
    client.on('message', function(topic, message) {
        console.log("topic " + topic)
        console.log("message " + message)
    })
    
    setInterval(function() {
        // 3. Submit the temperature and humidity data at a specified interval.
        client.publish(`/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`, getPostData(), { qos: 0 });
    }, 5 * 1000);
    
    function getPostData() {
        const payloadJson = {
            id: Date.now(),
            version: "1.0",
            params: {
                temperature: Math.floor((Math.random() * 20) + 10),
                humidity: Math.floor((Math.random() * 20) + 10)
            },
            method: "thing.event.property.post"
    
        }
        console.log("payloadJson " + JSON.stringify(payloadJson))
        return JSON.stringify(payloadJson);
    }

    Parameter

    Example

    Description

    productKey

    g18l***

    Les informations du certificat de l'appareil que vous avez enregistrées après sa création.

    Vous pouvez consulter ces informations sur la page Device Details de l'appareil TH_sensor dans la console IoT Platform.

    deviceName

    TH_sensor

    deviceSecret

    b2e6e4f102458d84***

    host

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

    L'endpoint utilisé par l'appareil pour accéder à IoT Platform via MQTT.

    Pour savoir comment obtenir l'endpoint, consultez la rubrique Gérer les endpoints des instances.

  4. Ouvrez l'invite de commandes et exécutez la commande cd pour accéder au répertoire contenant le fichier iot_device.js. Dans ce répertoire, exécutez la commande npm pour télécharger la bibliothèque aliyun-iot-mqtt. La capture d'écran ci-dessous montre le fichier de bibliothèque téléchargé.

    npm install aliyun-iot-mqtt -Saliyun-iot-mqtt

  5. Une fois la bibliothèque MQTT téléchargée, saisissez la commande suivante dans l'invite de commandes et exécutez le code iot_device.js pour démarrer l'appareil :

    node iot_device.js

Résultat

La réponse suivante indique que l'appareil est connecté à IoT Platform et que les données ont été soumises :

payloadJson {"id":161848***,"version":"1.0","params":{"temperature":22,"humidity":15},"method":"thing.event.property.post"}

La capture d'écran ci-dessous montre le message reçu par le chatbot DingTalk.

钉钉机器人