هذا المشروع عبارة عن جسر بين شبكة Orange Lora®* وبروتوكول OMA NGSIV1 الذي يستخدمه وسيط سياق Orion وكذلك عن طريق المكونات الأخرى للنظام الإيكولوجي Fiware.
وكيل إنترنت الأشياء هذا هو مكتبة يمكن استخدامها على سبيل المثال في تطبيق Springboot.
يسمح هذا الوكيل بما يلي:
تستخدم هذه المكتبة منصة Live Objects® (https://liveobjects.orange-business.com/#/liveobjects) لإدارة الحمولة Lora®*.
يتم توفير تطبيق NGSI V1 بواسطة مكتبة Orange-OpenSource/Fiware-NGSI-API.
إليك البنية العالمية لوكيل إنترنت الأشياء باستخدام منصة Live Objects® لإدارة حمولات الأجهزة Lora®*:
بنيان
قم بإنشاء مشروع Maven مع تبعيات Spring Boot ومكتبةنا:
< dependency >
< groupId >com.orange.fiware</ groupId >
< artifactId >openlpwa-iotagent</ artifactId >
< version >X.Y.Z</ version >
</ dependency > حيث XYZ هو إصدار المكتبة لاستخدامه (تحقق من علامات GIT).
يمكنك تعديل بعض إعدادات التطبيق إما إضافة:
src/main/resources/application.properties في التطبيق الخاص بك.هذه قائمة بخصائص التطبيق:
| اسم | وصف | القيمة الافتراضية |
|---|---|---|
| contextbroker.localurl | عنوان URL العام لهذه الحالة | http: // localhost: 8081 |
| contextbroker.remoteurl | عنوان URL للوسيط البعيد (أوريون) | http: // localhost: 8082 |
| contextbroker.remotefiwareservice | اسم خدمة الوسيط البعيد | |
| contextbroker.remotefiwareservicepath | مسار خدمة الوسيط البعيد | |
| contextbroker.remoteauthtoken | رمز OAUTH للوسيط البعيد المضمون | |
| contextbroker.remoteauthtokenuri | يستخدم URI لاسترداد رمز المصادقة | |
| contextbroker.remoteclientid | معرف عميل وسيط سياق بعيد | |
| ContextBroker.RemotEclientscret | سر عميل وسيط سياق بعيد | |
| ContextBroker.RemoteuserLogin | تسجيل دخول مستخدم وسيط سياق عن بعد | |
| ContextBroker.RemoteUserPassword | كلمة مرور مستخدم وسيط السياق البعيد | |
| OpenLpwaprovider.resturl | Live Objects® ** API url | https://lpwa.liveobjects.orange-business.com |
| OpenLpwaprovider.apikey | Live Objects® ** مفتاح API | |
| OpenLpwaprovider.mqtturi | Live Objects® ** MQTT Broker URI | TCP: //LiveObjects.orange.com: 1883 |
| OpenLpwaprovider.mqttclientid | Live Objects® ** معرف عميل MQTT Broker | fiware-itagent-client |
من أجل استخدام جهاز LORA®* مع الوكيل ، يرجى اتباع هذه الخطوات:
قبل البدء في استخدام الوكيل ، يجب عليك تسجيل الجهاز على بوابة LPWA Live Objects® (https://lpwa.liveobjects.orange.com). إذا كان جهازك مسجلاً ونشطًا بشكل صحيح ، فيجب أن ترى حمولات قادمة على الموقع الإلكتروني.
يمكن توجيه البيانات التي يتم جمعها بواسطة الكائنات المباشرة إلى قوائم قوائم الرسائل (FIFO). يتم إنشاء قاعدة توجيه في ثلاث خطوات:
يمكنك إنشاء FIFO وتحديد قواعد التوجيه الخاصة بك على بوابة Live Objects® (https://lpwa.liveobjects.orange business.com).
تدير منصة Live Objects® Lora®* حمولة سداسية عشرية. لا يمكن فك تشفير الحمولة النافعة على النظام الأساسي ، لذا يجب عليك القيام بهذه العملية عند استخدام الوكيل.
للقيام بهذه المهمة ، يجب عليك تنفيذ واجهة OpenLpwaNgsiConverter مع الطريقتين التاليتين:
public class MyOpenLpwaNgsiConverter implements OpenLpwaNgsiConverter {
@ Override
public List < ContextAttribute > decodeData ( String deviceID , String data ) {
// Decode the hexadecimal payload to build a list of NGSI context attributes
} يتم استدعاء طريقة decodeData لكل حمولة صاعدة يتم إرسالها بواسطة جهاز. يجب عليك تنفيذ هذه الطريقة لفك تشفير حمولة سداسي عشرية تم إرسالها وإنشاء قائمة بسمات سياق NGSI من أجل تحديث كيان NGSI المعين مع الجهاز (انظر بدء الوكيل).
@ Override
public String encodeDataForCommand ( String deviceID , String commandName , ContextAttribute attribute ) {
String data = attribute . getValue (). toString ();
// Build an hexadecimal payload to send a command
} يتم استدعاء الطريقة encodeDataForCommand لكل حمولة وصلة وصفية لإرسالها إلى جهاز (انظر إرسال الأمر إلى جهاز). يجب عليك تنفيذ هذه الطريقة لاسترداد الأمر في سمة سياق NGSI وترميز حمولة سداسي عشرية المقابلة لإرسالها إلى جهاز.
بدون ملء رمز أو بيانات اعتماد ، سيرسل الوكيل رسائل دون محاولة المصادقة على وسيط السياق البعيد.
باستخدام رمز مميز ، سيستخدم الوكيل هذا الرمز المميز للمصادقة على وسيط السياق البعيد قبل إرسال رسالة. إذا كان الرمز غير صالح ، فسيحاول الوكيل استخدام بيانات الاعتماد المحددة لإنشاء واحدة جديدة.
إذا تم ملء بيانات الاعتماد ، فسيستخدمها الوكيل لإنشاء رمز من URI المعطى. طالما أن الرمز المميز صالح ، سيستمر الوكيل في استخدامه. إذا لم يعد الرمز صالحًا ، فسيحاول الوكيل استبداله بأحدها جديد ، بناءً على بيانات الاعتماد المحددة.
توفر المكتبة فئة Agent لإدارة الوكيل. يجب عليك فقط استدعاء طريقة start التي تمر 3 معلمات:
AgentSuccessCallback تسمى عندما يتم بدء الوكيل بشكل صحيح.AgentFailureCallback تسمى عندما لا يتم بدء الوكيل بشكل صحيح.إليك مثال لبدء الوكيل:
@ SpringBootApplication
@ ComponentScan ( "com.orange" )
public class Application implements ApplicationListener < ApplicationReadyEvent > {
private static Logger logger = LoggerFactory . getLogger ( Application . class );
@ Autowired
private Agent agent ;
public static void main ( String [] args ) {
new SpringApplicationBuilder ()
. sources ( Application . class )
. bannerMode ( Banner . Mode . LOG )
. run ( args );
}
@ Override
public void onApplicationEvent ( ApplicationReadyEvent applicationReadyEvent ) {
agent . start ( new MyOpenLpwaNgsiConverter (),
() -> {
logger . debug ( "IoT agent started" );
},
ex -> {
logger . error ( "IoT agent not started" , ex );
}
);
}
}تحت الغطاء ، سيتصل الوكيل بـ Live Objects® MQTT Broker لاسترداد حمولات الوصلة الصاعدة خلال هذه الخطوة.
هذا المشروع تحت إصدار ترخيص Apache 2.0.