Esta es una integración de ejemplo de la red Things con Azure IoT Hub. Esta integración presenta dispositivos de creación de dispositivos en el registro de dispositivos Azure IoT Hub, así como de enviar eventos desde mensajes de enlace ascendente.
Esta integración requiere un nombre de clave de política de acceso compartido con los permisos de lectura y escritura de registro y conectores de dispositivos. En este ejemplo, utilizamos la política de IothubOwner que tiene estos permisos habilitados de forma predeterminada.
'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 ) ;
} ) ; Al crear e inicializar el Bridge , puede especificar opciones:
const options = { } ;
const bridge = new ttnazureiot . Bridge ( region , appID , accessKey , hubName , keyName , key , options ) ;createMessage La función para crear un mensaje. Por defecto, el mensaje es una combinación del resultado de los fields de funciones de carga útil, la ID de dispositivo única y el tiempo del servidor:
options . createMessage = function ( deviceId , message ) {
const metadata = {
deviceId : deviceId ,
time : message . metadata . time ,
raw : message . payload_raw
} ;
return Object . assign ( { } , message . payload_fields , metadata ) ;
} Nota: Si el resultado de sus funciones de carga útil contiene los campos deviceId o time , estos campos serán sobrescritos por los metadatos. Use una función createMessage personalizada para usar nombres de campo personalizados.