Ceci est un exemple d'intégration du réseau de choses avec Azure IoT Hub. Cette intégration propose des appareils dans le registre des périphériques Azure IoT Hub ainsi que l'envoi d'événements à partir de messages de liaison montante.
Cette intégration nécessite un nom de clé de stratégie d'accès partagé avec Registry Read and Write and Device Connect autorisation. Dans cet exemple, nous utilisons la stratégie iothubowner qui a ces autorisations activées par défaut.
'use strict' ;
const ttnazureiot = require ( 'ttn-azure-iothub' ) ;
// Replace with your region, app ID and access key
const region = '<insert region>' ;
const appId = '<insert app ID>' ;
const accessKey = '<insert access key>' ;
// Replace with your Azure IoT Hub name, key name and key
const hubName = '<insert hub name>' ;
const keyName = 'iothubowner' ;
const key = '<insert key>' ;
const bridge = new ttnazureiot . Bridge ( region , appId , accessKey , hubName , keyName , key ) ;
bridge . on ( 'ttn-connect' , ( ) => {
console . log ( 'TTN connected' ) ;
} ) ;
bridge . on ( 'error' , err => {
console . warn ( 'Error' , err ) ;
} ) ;
bridge . on ( 'message' , data => {
console . log ( 'Message' , data ) ;
} ) ; Lors de la création et de l'initialisation du Bridge , vous pouvez spécifier des options:
const options = { } ;
const bridge = new ttnazureiot . Bridge ( region , appID , accessKey , hubName , keyName , key , options ) ;createMessage La fonction pour créer un message. Par défaut, le message est une combinaison du résultat des fields de fonctions de charge utile, de l'ID de périphérique unique et du temps du serveur:
options . createMessage = function ( deviceId , message ) {
const metadata = {
deviceId : deviceId ,
time : message . metadata . time ,
raw : message . payload_raw
} ;
return Object . assign ( { } , message . payload_fields , metadata ) ;
} Remarque: Si le résultat de vos fonctions de charge utile contiennent les champs deviceId ou time , ces champs seront écrasés par les métadonnées. Utilisez une fonction createMessage personnalisée pour utiliser des noms de champ personnalisés.