عناوين الدرس

جولة حول العقد الأساسية (الجزء الثاني)

مبتدئ

مجموعة عقدFRED :

تضيف خدمة FRED  عدد من العقد إلى المجموعة الإفتراضية القياسية . وهذه العقد الجديدة ، إما أن تكون كتبت لـ FRED أو تم تجميعها من العامة، كما أنها توفر وظائف مفيدة والتي توسع قدرات مجموعة عقد vanilla.

ملاحظة : تتوفر هذه العقد في FRED عن طريق تثبيتها باستخدام لوحة تركيب FRED  . لمعرفة كيفية تثبيت العقدة الإطلاع على هذا الدرس.

كما ستلاحظ، الغالبية العظمى من هذه العقد الإضافية تركز على الخدمات و القدرات التي تتناسب مع طبيعة FRED ، أي الخدمات التي تعتمد على السحابه. في كثير من الحالات  تركز على استخدام Node-RED  للدمج مع شبكة الإنترنت أو للوصول إلى الخدمات على مستوى المشاريع .

the-extended-fred-node-set
the-extended-fred-node-set

المجموعة الموسعة من عقد وسائل الاعلام الاجتماعية  :

كما تلاحظ، يضيف خدمة FRED  عدد كبير من عقد وسائل الاعلام الاجتماعية التي تتراوح بين Pushbullet إلى Slackbot إلى الانستجرام (Instagram) .

اسم العقدة الوصف
 pushbullet in يتصل بخدمة Pushbullet  ويتلقى عناصر البيانات Pushbullet  من جميع الأجهزة المتصلة . تدعم البيانات، و الملفات ، و الروابط.
pushbullet out يسمح لك بإرسال رسائل Pushbuttet  لجميع الأجهزة التي تحتوي على تطبيق Pushbullet  .
 XMPP in يتلقى رسائل من خادم الرسائل الفورية XMPP  . ويشير حقل الأصدقاء (buddy)إلى الأصدقاء أو الغرفة الذي يتلقون منها. يتم تسليم معلومات التواجد على خط الإنتاج الثاني.
XMPP out يرسل رسائل إلى خدمة الرسائل الفورية XMPP  . يستخدم الموضوعات لإرسالها إلى الغرف (القنوات) ويدعم مشاركة التنبيهات.
slack عقدة توفر طريقة بسيطة للإضافة على قناة slack  المحددة بواسطة webhook URL الخاص بها. يمكن تهيئة إسم المستخدم و الرمز التعبيري و دعم المرفقات .
slackbot in العقدة لإستخدام bot التي قمت بإنشائها على Slack   ويوفر مستمع في أي قناة يكون بها Slack bot عضوا. إخراج msg.payload مثل الرسالة الواردة . و إخراج msg.SlackObj  مع تفاصيل رسالة Slack كاملة .
slackbot out العقدة لإستخدام bot  التي قمت بإنشائها على Slack  ويرسل msg.payload إلى Slack إعتمادا على أساس الرمز المميز Bot API  . يمكنك تجاوز القناة المقصودة إذا لزم الأمر – سواء في محرر الحوار (edit dialogue) أو بواسطة msg.channel  .
delicious القعدة لحفظ المواقع المفضلة لحساب Delicious  الخاص بك . الحمولة payload يجب أن تحتوي على URL  للحفظ، و msg.title  يحتوي على اسم الإشارة المرجعية للموقع المفضل.ويمكنك وضع وصفا في حقل الوصف الإختياري.
pinboard القعدة لحفظ المواقع المفضلة لحساب Pinboard   الخاص بك . الحمولة payload يجب أن تحتوي على URL  للحفظ، و msg.title  يحتوي على اسم الإشارة المرجعية للموقع المفضل.ويمكنك وضع وصفا في حقل الوصف الإختياري.
flickr يحفظ الصور إلى حساب Flickr الذي تم إعداده. msg.payload   تتطلب buffer مع الصورة ، ويمكن وضع عنوان و وصف و علامة للخصائص.
foursquare يستعلم حساب Foursquare  الخاص بك للحصول على الأماكن الموصى بها اعتمادا على موقعك . يتم ترجيع النتيجة كرسالة أو مجموعة من الرسائل .
swarm in العقدة للإستطلاع كل 15 دقيقة لـ Foursquare storm check-ins . ويتم إرجاع النتيجة ككائن JSON .
swarm out عقدة استعلام Swarm التي يمكن استخدامها للبحث عن كافة Swarm check-ins من قبل المستخدم .
instagram in يستعلم من حساب الانستجرام الذي تم إعداده كل 15 دقيقة عن الصور الجديدة التي يتم تسليمها واحدة لكل رسالة ، إما كـ كائن Buffer أو URLs .
instagram نفس عقدة Instagram in ، إلا أنها يتم تشغيلها بواسطة الرسالة الواردة .

المجموعة الموسعة من عقد التخزين (storage nodes) :

 

اسم العقدة الوصف
 amazonS3 watch عقدة Amazon S3 watch ،  تعمل على مراقبة ملف الأحداث . افتراضيا، يتم الإبلاغ عن جميع ملف الأحداث، ولكن نمط اسم الملف يمكن توفيره للحد من الاحداث على الملفات التي لها أسماء كاملة والتي تتطابق مع نمط glob. تتكون رسائل الحدث من اسم الملف الكامل في خصائص msg.payload ، واسم الملف msg.file ، ونوع الحدث في msg.event  .
amazonS3 in عقدة الإدخال Amazon S3 ، تحميل المحتوى من Amazon  S3 bucket  . يمكن تحديد اسم  bucket  في خصائص عقدة bucket  أو من خلال msg.bucket . و اسم الملف الذي سيتم تحميله يتم أخذه من خصائص عقدة filename  او من msg.filename  .  المحتوى الذي تم تحميله يتم ارساله كـ msg.payload .  إذا فشلت عملية التحميل ، فإن msg.payload   سوف تحتوي على error  .
amazonS3 out عقدة الإخراج Amazon S3 . لرفع المحتوى إلى Amazon S3 bucket  . يمكن تحديد اسم  bucket في خصائص عقدة  bucket أو من خلال msg.bucket  . واسم الملف يتم أخذه من خصائص عقدةfilename    او من msg.filename   . يؤخذ المحتوى من خصائص عقدة localFilename أو من خاصية msg.localFilename أو من msg.payload .
box watch Box هو نسخة من Dropbox  . هذة العقدة تراقب أحداث الملف على Box  . افتراضيا يتم الإبلاغ عن جميع أحداث الملف . ولكن نمط الملف يمكن توفره للحد من أحداث على الملفات التي تتطابق اسمائها الكاملة مع نمط glob  وتتكون أحداث الرسائل من اسم الملف كامل في خاصية  msg.payload  ،  اسم الملف في msg.file ، و نوع الحدث في msg.event  ودخول الأحداث كاملة من خلال حدث API في msg.data  .
box in عقدة الإدخال Box  . لتحميل المحتوى من Box  . اسم الملف على Box  يتم أخذه من خاصية عقدة filename  أو من خاصية msg.filename  . يتم ارسال المحتوى كـ msg.payload .
box out عقدة الإخراج Box  . لرفع المحتوى إلى Box  . اسم الملف على Box   يتم أخذه من خاصية عقدة filename  أو من خاصية msg.filename  . يتم أخذ المحتوى من خاصية عقدة  localFilename ، أو من msg.localFilename   أو من خاصية msg.payload   .
dropbox watch لمراقبة أحداث الملف على Dropbox  .
إفتراضيا يتم الإبلاغ عن جميع أحداث الملف، ولكن نمط اسم الملف يمكن توفيره للحد من الأحداث على الملفات التي تتطابق اسمائها الكاملة مع نمط glob .
تتكون رسائل الحدث من اسم الملف كامل في خاصية msg.payload ،  واسم الملف في msg.file ، و نوع الحدث في msg.event وكائن  dropbox.js API PulledChange  في msg.data .
dropbox in عقدة الإدخال Dropbox  . لتحميل المحتوى من Dropbox  . اسم الملف على Dropbox  يتم أخذه من خاصية عقدة filename أو من خاصية msg.filename  . يتم ارسال المحتوى الذي تم تحميله كـ msg.payload  . إذا فشل التحميل ، فإن msg.error سوف تحتوي على الخطأ .
dropbox out عقدة الإخراج Dropbox  . لرفع المحتوى إلى Dropbox .
يتم اخذ اسم الملف من خصائص عقدة filename أو من خاصية msg.filename   . يمكنك تمرير المحتوى إما بواسطة حقل localFilename  أو خاصية msg.localFilename ، أو يمكنك تمرير المحتوى مباشرة بإستخدام msg.payload  .
سيتم رفع الملف إلى دليل على Dropbox تدعى Apps/{appname}/{appfolder} ، حيث يتم تعيين {appname} ، {appfolder} عندما تقوم بإعداد مفتاح التطبيق Dropbox و token  .
MongoDB in استدعاء أسلوب التجميع MongoDB  بناء على العامل المحدد.
البحث عن استفسارات التجميع بإستخدام msg.payload  كما أن عبارة الإستعلام حسب.find() function .
Count  تقوم بإرجاع عدد أعداد الوثائق في التجميع أو التي تتطابق مع الاستعلام باستخدام msg.payload كعبارة استعلام.
Aggregate يوفر الوصول إلى خط أنابيب التجميع باستخدام msg.payload كمجموعة أنابيب.
يمكنك أيضا تعيين أسلوب التجميع في عقدة config أو msg.collection .
MongoDB out عقدة الإخراج MongoDB . يمكن حفظ، إدراج ، وتحديث و إزالة الكائنات من المجموعة المحددة.
Save  تقوم بتحديث الكائن الموجود أو إدراج كائن جديد ، إذا لم يمكن الكائن موجود مسبقا.
Insert ستقوم بإدراج كائن جديد .
Update  ستقوم بتعديل على كائن أو الكائنات الموجودة .
Remove ستزيل الكائنات التي تطابق الاستعلام في msg.payload . الاستعلام الفارغ سيزيل كافة الكائنات في المجموعة .
mysql يسمح بالوصول الأساسي لقاعدة البيانات MySQL .
تستخدم هذه العقدة عملية الاستعلام على قاعدة البيانات المهيئة. وهذا يسمح لك لإدراج (INSERTS) و حذف (DELETES) . msg.topic يجب أن تحمل الاستعلام عن قاعدة البيانات ، ويتم ارجاع النتيجة في msg.payload .
و الحمولة التي تم ارجاعها عادة تكون مجموعة من صفوف للنتيجة . إذا لم يتم إجاد شيء للحصول على المفتاح، يتم ارجاع قيمة خالية (null) .
postgres عقدة PostgreSql I/O .
ينفذ الاستعلام المحدد في msg.payload  مع معلمات (Parameters) الاستعلام الإختيارية في msg.queryParameters . يجب تحديد queryParameters  في استعلام $propertyname .
عند تلقي البيانات من الاستعلام، msg.payload على المخرج سوف تكون مجموعة JSON من السجلات التي يتم ارجاعها.

عقد IOT :

يضيف FRED  عدد من العقد للوصول إلى منصات  IOT .

اسم العقدة الوصف
wotkit in عقدة الإدخال لمستشعر WoTKit  التي تقوم بإسترداد البيانات الجديدة من مستشعر WoTKit . تولد العقدة رسالة في كل وقت يتم فيه استلام بيانات جديدة من المستشعر داخل منصة WoTKit IOT . تحتوي message.payload  على أسماء حقول الاستشعار لاستشعار القيم. تم إعداد العقدة عن طريق اعتماد المستخدم.يجب أن يكون اسم جهاز الاستشعار على شكل {username}.{sensorname} ، أو يمكن استخدام معرف رقمي (ID)  للمستشعر .
wotkit out عقدة الإخراج WoTKit  لإرسال البيانات إلى جهاز الإستشعار الذي تم تسجيله. هذه العقدة تستخدم message.payload لإنشاء كائن البيانات.
message.payload  يجب أن تحتوي على زوج من الكائن key-value مطابقة لمجالات المستشعر . يتم تهيئه العقدة عن طريق إعتماد المستخدم . اسم المستشعر يجب أن يكون في شكل  {username}.{sensorname} ، أو يمكن استخدام معرف رقمي (ID) لجهاز الاستشعار .
wotkit data عقدة البيانات التاريخية WoTKit  التي تقوم باسترداد البيانات التاريخية من جهاز استشعار WoTkit إما عن طريق عدد من العناصر أو وقت نسبي قبل الطلب. تحتوي message.payload على أسماء حقول الاستشعار لاستشعار القيم. يجب أن يكون اسم جهاز الاستشعار على شكل {username}.{sensorname} ، أو يمكن استخدام معرف رقمي (ID) للمستشعر .
wotkit control out تقدم عقدة سيطرة النتائج WoTKit  القدرة على إرسال الأحداث إلى قناة السيطرة على مستشعر/محرك WoTKit الذي تم تسجيله . هذة العقدة تستخدم كائن message.payload لإنشاء حدث السيطرة. message.payload  يجب أن تحتوي على زوج من الكائن key-value مطابقة لمجالات المستشعر . اسم المستشعر يجب أن يكون في شكل  {username}.{sensorname} ، أو يمكن استخدام معرف رقمي (ID) لجهاز الاستشعار .
wotkit control input توفر عقدة سيطرة النتائج WoTKit الوصول إلى قناة السيطرة على مستشعر/محرك WoTKit الذي تم تسجيله . عند تلقي حدث السيطرة بواسطة جهاز الاستشعار WoTKit هذه العقدة سوف تنشئ كائن message.payload التي تحتوي على الحدث. اسم المستشعر يجب أن يكون في شكل  {username}.{sensorname} ، أو يمكن استخدام معرف رقمي (ID) لجهاز الاستشعار .
dweetio in يستمع للرسائل من Dweet.io
يجب أن يكون المعرف الرقمي (ID) فريد من نوعه على مستوى العالم. من المستحسن استخدام GUID . يتم تعيين المعرف الرقمي (ID)  في msg.dweet ، و الطابع الزمني (TimeStamp)  في msg.created .
dweetio out يرسل msg.payload إلى dweet.io .
اختياريا، يمكن استخدام msg.thing لتعيين المعرف الرقمي(ID) للأشياء ، اذا م يكن بالفعل تم تعيينه في الخصائص .
أنت بحاجة للتأكد من المعرف الرقمي (ID) انه فريد من عونه – وينصح استخدام GUID .

عقد التحليل (Analysis Nodes) :

منصة FRED تضيف عدد محدد من عقد التحليل .

اسم العقدة الوصف
smooth هي عقدة بسيطة ولكنها مرنة لتوفير وظائف مختلفة في العديد من القيم السابقة، بما في ذلك الحد الأقصى max ، والحد الأدنى min ، المتوسط mean ، و مرشحات التردد المنخفضة و العالية (high\low pass filters). يعمل فقط على الأرقام وستفشل إذا لم تستطيع تحويل المدخلات إلى رقم .
wordpos تحليل msg.payload  وتصنيف جزء من الكلام من كل كلمة ، و إرجاع msg.pos  كمجموعة من الأسماء(nouns) ،و الأفعال (verbs)، و الأحوال (adverbs) .

العقد المتقدمة (advanced nodes):

يضيف FRED العقد المتقدمة التالية :

اسم العقدة الوصف
ping pings هي آلة ترجع وقت الرحلة في ميلي ثانية . ويرجع false ،إذا لم تحدث استجابة واردة في غصون 5 ثوان، أو اذا كان المضيف unresolveable .
افتراضي ping كل 20 ثانية ، ولكن يمكن إعداده .
sunrise يستخدم وحدة suncalc لتوليد النتائج عند شروق الشمس و غروبها على أساس المكان المحدد. تتوفر العديد من الخيارات لتعريف شروق الشمس و غروبها .
الإخراج الأول تنبعث msg.payload من 1 أو 0 في كل دقيقة ، وهذا يتوقف إذا كان بين أوقات محددة أم لا . الإخراج الثاني تنبعث فقط عند الانتقال بين night إلى day (->1) أو day إلى night (->0)
كما يحدد msg.topic إلى أشعة الشمس و msg.moon إلى جزء من القمر بين 0 و 1 .

X
تم إضافة المنتج إلى السلة بنجاح