integration azure
1.0.0
هذا مثال تكامل شبكة الأشياء مع Azure IoT Hub. يتميز هذا التكامل بإنشاء أجهزة في سجل جهاز Azure IoT Hub بالإضافة إلى إرسال الأحداث من رسائل الوصلة الصاعدة.
يتطلب هذا التكامل اسم مفتاح سياسة الوصول المشترك مع قراءة الأذونات والكتابة والكتابة. في هذا المثال ، نستخدم سياسة Iothubowner التي لديها هذه الأذونات تمكين افتراضيًا.
'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 ) ;
} ) ; عند إنشاء Bridge وتهيئته ، يمكنك تحديد الخيارات:
const options = { } ;
const bridge = new ttnazureiot . Bridge ( region , appID , accessKey , hubName , keyName , key , options ) ;createMessage الوظيفة لإنشاء رسالة. بشكل افتراضي ، فإن الرسالة هي مزيج من نتيجة fields وظائف الحمولة الصافية ومعرف الجهاز الفريد ووقت الخادم:
options . createMessage = function ( deviceId , message ) {
const metadata = {
deviceId : deviceId ,
time : message . metadata . time ,
raw : message . payload_raw
} ;
return Object . assign ( { } , message . payload_fields , metadata ) ;
} ملاحظة: إذا كانت نتيجة وظائف الحمولة الحمولة تحتوي على Fields deviceId أو time ، فسيتم كتابة هذه الحقول بواسطة البيانات الوصفية. استخدم وظيفة createMessage مخصصة لاستخدام أسماء الحقول المخصصة.