يتيح لك نظام الإضاءة Philips Hue التحكم في الإضاءة في منزلك من تطبيق الهاتف المحمول ، أو من أي تطبيق تكتبه بنفسك يمكنه الاتصال بالإنترنت. مركز النظام هو جسر Hue ، وهو جهاز متصل بالإيثرنت يتواصل مع مصابيح متوافقة من خلال بروتوكول راديو Zigbee HA. يصنع Philips مجموعة من المصابيح المتوافقة مع Hue ، والعديد من مصابيح الطرف الثالث تعمل مع نفس البروتوكول. يحافظ ICONNECTHUE على قائمة شاملة من المصابيح المتوافقة مع HUE. معظمها تتمحور حول السوق ، ولكن لا تزال مفيدة للغاية.
كل جسر هوى هو خادم الويب الخاص به HTTP ، ويمكن التحكم فيه باستخدام واجهة برمجة تطبيقات Hue Rest. هناك مكتبات للتحكم في اللون المتاح في العديد من لغات البرمجة. البرامج التعليمية هنا جميعها في JavaScript من جانب العميل باستخدام P5.js أو JavaScript العادي أو جانب الخادم باستخدام Node.js ، أو Microntroller المستند إلى Arduino.
تم إصدار Hue API V2 مؤخرًا ، وسيحل محل V1 في النهاية. تشير هذه الملاحظات حاليًا إلى V1 (19 يناير 2021) وما زالت تعمل. يتميز Hue API V2 HTTPS ، وكذلك بعض التغييرات المكسورة من V1.
لبدء تشغيل تطبيقات Hue Programming ، ستحتاج إلى الوصول إلى جسر Hue. ستحتاج إلى حساب Hue أيضًا. حسابات المطور مجانية. الحفاظ على رابط موقع مطوري Hue في متناول يدي.
يعد تطبيق Hue لنظام Android أو iOS مفيدًا عند التطوير ، لأنه يعمل عندما لا يعمل مشروعك بعد. تطبيق Hue Essentials هو بديل مفيد جدًا أيضًا.
كل هوى لديه واجهة تصحيح ، متوفرة على http://$ADDR/debug/clip.html
استبدال $ADDR
بعنوان IP الخاص بجسرك. عند التطوير ، يمكنك استخدام هذا لإرسال أوامر API إلى الجسر لاختبار الأشياء.
مكتبة Peter Murray's Node-Hue-API لـ Node.js هي أفضل مكتبات Node.js JavaScript التي اختبرتها للتحكم في اللون.
للتحكم في اللون من عميل المتصفح ، يقوم P5.js بعمل جيد ، حيث إنه يحتوي على واجهة برمجة تطبيقات طلب HTTP بسيط. يمكنك استخدام JavaScript العادي أيضًا ، بالطبع.
تعد مكتبة ArduinoHttpClient ومكتبة Arduino_json مفيدة إذا كنت تستخدم أي من لوحات Arduino WiFi التي تدعمها للاتصال بجسر Hue. (ملاحظة: هناك مكتبة JSON أخرى بنفس الاسم دون أي ضابط ترويدي. هذا ليس هو المكتبة المستخدمة هنا).
تساعد حليقة أداة سطر الأوامر على اختبار طلبات HTTP لجسرك ، إذا كنت على دراية بخط الأوامر POSIX (Linux/UNIX). لا تتوفر Curl في واجهة أمر Windows ، ولكن يمكنك الحصول عليها من خلال نظام Windows الفرعي لـ Linux في Windows 10 ، أو من خلال Cygwin ، وهو تطبيق يوفر قشرة Linux لنظام التشغيل Windows. فيما يلي بعض التفاصيل حول استخدام Curl للوصول إلى جسر Hue.
بخلاف هذه ، ستحتاج إلى معرفة بعض HTML و JavaScript ، ومحرر نص ، وواجهة سطر الأوامر ، ومتصفح لتجربة الأمثلة على هذا الموقع. أمثلة سطر الأوامر الموضحة هنا كلها من أجل Linux أو UNIX ، ولكنها ستعمل على نظام التشغيل Windows 10 باستخدام نظام Windows Subsystem لـ Linux في Windows 10.
سيحتاج تطبيقك إلى تحديد جسرك باستخدام اسم مستخدم فريد. ستعمل صفحة المثال هذه على تبسيط ذلك ، إذا كنت تعرف عنوان IP الخاص بجسرك. لا يمكنك تشغيل هذه الصفحة من خادم بعيد ؛ قم بتنزيله وافتح ملف index.html
في متصفح من نظام الملفات الخاص بك. وذلك لأن الإصدار 1 API Hue يستخدم HTTP ، وليس HTTPS.
يمكنك أيضًا اتباع تعليمات بدء تشغيل موقع مطور Hue.
عندما تفعل ذلك بشكل صحيح ، يجب أن تحصل على رد مثل هذا:
[
{
"success": {
"username": "newusername"
}
}
]
أنت الآن مستعد لكتابة رمز لجسرك. بغض النظر عن البيئة التي تقوم بها ، ستستخدم اسم المستخدم الذي أنشأته هنا.
واجهة مقطع التصحيح هي صفحة يمكنك استخدامها لاختبار الوظائف على الجسر. عنوانه هو:
http://your.bridge.ip.address/debug/clip.html
يمكن استخدامه لإرسال أي أمر API إلى جسرك. سلسلة الاستعلام العامة كما يلي:
/api/$HUE_USER/command
بشكل عام ، يتم الاستعلام عن حالة الجهاز باستخدام أوامر GET ، ويتم تغييرها باستخدام PUT. على سبيل المثال ، للاستعلام عن حالة جميع أضواءك ، أدخل ما يلي في حقل عنوان URL:
/api/$HUE_USER/lights
وانقر فوق الحصول. للاستعلام عن التكوين ، أدخل:
/api/$HUE_USER/config
وانقر فوق الحصول. لتشغيل الضوء 1 ، أدخل ما يلي في حقل عنوان URL:
/api/$HUE_USER/lights/1/state
وأدخل ما يلي في حقل جسم الرسالة:
{"on":true}
وانقر فوق PUT. يجب أن يأتي الضوء ، ويجب الرد على الجسر:
[
{
"success": {
"/lights/1/state/on": true
}
}
]
لمعرفة المزيد عن واجهة برمجة تطبيقات Hue ، راجع دليل البدء في Hue ، ومفاهيم Hue API الأساسية ، ووثائق API الكاملة. ستحتاج إلى إنشاء حساب مجاني وتسجيل الدخول لاستخدام بوابة المطور.
عند إضافة جسرك إلى شبكتك ، يجب أن تكون قادرًا على استخدام تطبيق Hue أو تطبيق Hue Essentials للحصول على عنوان IP. ولكن على شبكة معقدة مثل شبكة المدارس ، قد لا يعمل ذلك. يجب أن يكون جهازك المحمول وجسر Hue الخاص بك على نفس الشبكة المحلية حتى يعمل هذا. على سبيل المثال ، إذا لم تكن شبكة WiFi الخاصة بك هي نفس الشبكة المحلية مثل شبكة Ethernet السلكية (حيث يعيش الجسر) ، فقد لا تتمكن من الحصول على العنوان. ولكن إذا تمكنت من الحصول على عنوان MAC الخاص بالجسر ، فيمكنك البحث عنه على شبكتك. إليكم كيف
يحتوي كل جسر على فريدة من نوعها يمكنك العثور على عنوان MAC في الجزء السفلي من الجسر. إنه رقم ستة بايت في تدوين سداسي عشري مثل:
00:17:88:0B:14:48
سوف تظهر بعض الجسور فقط آخر ثلاثة بايت. على سبيل المثال ، قد يظهر الجسر أعلاه 0B1448 فقط. مع جسور اللون الأقدم ، ستكون البايت الثلاثة الأولى دائمًا 00:17:88
. مع الأحدث ، قد ترى أيضًا EC:B5:FA
بدلاً من ذلك.
للبحث عن جسرك على شبكتك ، تأكد من حصولك على الأرقام الثلاثة الأولى من الشبكة المحلية ، ويمكنك الوصول إليه ، ثم فتح واجهة سطر الأوامر ونصتها:
$ ping -c 5 xxx.xxx.xxx.255
حيث xxx.xxx.xxx
هي الأرقام الثلاثة الأولى من شبكتك. على سبيل المثال ، على شبكة يكون جهاز التوجيه 172.16.130.1 ، ستدخل 172.16.130.255. في بعض الأحيان ، ستستخدم المؤسسات الكبيرة شبكتين فرعيتين مختلفتين للشبكات السلكية مقابل الشبكات اللاسلكية ، لكنها ستظل على نفس الشبكة المحلية الأكبر.
ستحصل على قائمة بالاستجابات ، حيث تستجيب الأجهزة على الشبكة لطلبات Ping الخاصة بك. عندما يتم ذلك ، اكتب:
$ arp -a
ستحصل على قائمة بجميع الأجهزة على نفس الشبكة التي يمكن أن يراها جهاز الكمبيوتر الخاص بك. ابحث عن العنوان الذي يطابق عنوان MAC الخاص بجسرك ، وسيكون عنوان IP بجواره هو عنوان IP الخاص بجسرك. آخر ثلاثة بايت من عنوان MAC الخاص بك من الملصق في الأسفل. من المحتمل أن تكون الثلاثة الأولى إما 00:17:88 أو EC: B5: FA ، كما هو موضح أعلاه. إليك مثال نموذجي:
$ arp -a
? (192.168.0.1) at ac:b7:16:61:e3:77 on en0 ifscope [ethernet]
? (192.168.0.3) at 00:17:88:0B:14:48 on en0 ifscope [ethernet]
? (192.168.0.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
في هذه الحالة ، يكون عنوان IP الخاص بـ Hue هو 192.168.0.3.
يمكنك البحث عن مصابيح جديدة على الجسر باستخدام تطبيق Hue للهاتف المحمول العادي. يمكنك أيضًا القيام بذلك من واجهة مقطع التصحيح باستخدام طلب نشر على عنوان URL التالي:
/api/$HUE_USER/lights/
املأ عنوان الجسر الخاص بك لـ $ addr واسم المستخدم Hue الخاص بك لـ $ hue_user. يجب أن تحصل على رد مثل هذا:
[[ { "success": { "/lights": "Searching for new devices" } }]
بعد 90 ثانية ، يمكنك مسح المصابيح الجديدة التي تمت إضافتها مثل:
/api/$HUE_USER/lights/new
في حليقة:
$ curl -X GET http://$ADDR/api/$HUE_USER/lights/new
سيدرج هذا فقط المصابيح الجديدة المضافة بعد فحص للمصابيح الجديدة.
إذا كنت تحاول إضافة مصباح كان متصلاً مسبقًا بجسر مختلف ، فستحتاج إلى استخدام نهج مختلف. ضع المصباح بالقرب من الجسر الذي تريد التحكم فيه (أقرب من أي مصباح آخر ، أقل من 1 متر). قم بإيقاف تشغيل جميع المصابيح الأخرى المتصلة بالجسر ، أو تأكد من أنها بعيدة جدًا عن تلك التي تريدها.
أرسل ما يلي واجهة مقطع التصحيح باستخدام طلب PUT:
/api/$HUE_USER/config/
في جسم طلبك وضعت:
{"touchlink": true}
في حليقة:
$ curl -X PUT -d '{"touchlink": true}' http://$ADDR/api/$HUE_USER/config
يجب أن تومض المصباح عدة مرات ، وسيستجيب الخادم برسالة نجاح. يمكنك الآن إضافة المصباح باستخدام طلب Find New Lamps الموضح أعلاه.
إذا لم تنجح Touchlink في إعادة ضبط المصباح ، فقد تحتاج إلى إعادة ضبطه يدويًا. الأمر مختلف بالنسبة لكل شركة مصنعة ، ولكن النمط العام هو تشغيل المصباح وإيقافه ثلاث إلى خمس مرات ، وبعد ذلك سوف تومض أو خافتًا للإشارة إلى أنه تمت إعادة تعيينه. على سبيل المثال ، مع مصابيح الارتباط GE ، النمط هو:
بالنسبة لبعض مصابيح الطرف الثالث ، مثل Cree Connect أو مصابيح INNR ، يمكنك القيام بذلك مع فترات ثانيتين. عندما تكون في شك ، اذهب مع ثلاث ثوان ، على الرغم من.
إذا كان لديك أحد أدوات التحكم عن بُعد Hue ، فيمكنك إعادة تعيين مصباح باستخدامه أيضًا. للقيام بذلك ، قم بتشغيل المصباح ووضع جهاز التحكم عن بُعد في غضون ست بوصات من المصباح. اضغط على أزرار التشغيل وتوفير الأزرار (أو الطاقة والمشهد تحديد الأزرار على الطرز الأكثر حداثة) في الداخل وأمسك بها حتى تومض المصباح. سيؤدي ذلك إلى وضع المصباح في حالة المصنع الافتراضية ، جاهزًا للاقتران بجسر جديد.
يمكنك حذف مصباح من جسر من واجهة مقطع التصحيح باستخدام طلب حذف على عنوان URL التالي:
/api/$HUE_USER/lights/1
في حليقة:
$ curl -X DELETE http://$ADDR/api/$HUE_USER/lights/1
استبدل 1 بعدد الضوء الذي ترغب في حذفه.
للحصول على حالة جميع الأضواء المتصلة ، أرسل ما يلي من واجهة مقطع التصحيح باستخدام طلب الحصول على:
/api/$HUE_USER/lights/
في حليقة ، هذا:
$ curl http://$ADDR/api/$HUE_USER/lights/
يجب أن يعيد هذا قائمة الأضواء المتاحة ، مثل ذلك:
{"1":{"state":{"on":true,"bri":254,"hue":14314,"sat":172,"effect":"none","xy":[0.4791,0.4139],"ct":405,"alert":"none","colormode":"ct","reachable":true},"type":"Extended color light","name":"Hue color light 1","modelid":"LCT001","manufacturername":"Philips","uniqueid":"00:17:88:01:00:ff:9a:28-0b","swversion":"5.127.1.26581"}}
لتشغيل الضوء ، تحتاج إلى معرفة الرقم الذي هو عليه. ثم تغير حالتها مثل:
أرسل ما يلي من واجهة مقطع التصحيح باستخدام طلب PUT:
/api/$HUE_USER/lights/4/state
في جسم طلبك وضعت:
{"on": true}
في حليقة ، هذا:
$ curl -X PUT -d '{"on":true}' http://$ADDR/api/$HUE_USER/lights/4/state
لإيقاف تشغيله ، قم بتغيير جسم الطلب إلى
{"on": false}
يمكنك تغيير أي من خصائص حالة الضوء بهذه الطريقة. ألقِ نظرة ، على سبيل المثال ، على الضوء 1 من قسم الحصول على جميع الأضواء أعلاه:
{"1":{"state":{"on":true,"bri":254,"hue":14314,"sat":172,"effect":"none","xy":[0.4791,0.4139],"ct":405,"alert":"none","colormode":"ct","reachable":true},
طالما أن الخاصية reachable
صحيحة ، وهذا يعني أن الجسر حاول الوصول إلى المصباح وحصل على استجابة ، يمكنك تغيير أي من الخصائص الأخرى. هذا مصباح ملون ، ويحتوي على ثلاثة أوضاع ، HS (للصفنة ، التشبع) ، CT (لدرجة حرارة اللون) ، و XY (لأبعاد X و Y في مساحة لون CIE1931). إذا قمت بتغيير إما اللون أو التشبع ، فإن Colormode للمصباح يتغير إلى HS ، وإذا قمت بتغيير درجة حرارة اللون ، فإن ColorMode يتغير إلى CT. إذا قمت بإرسال قيم XY ، يتغير Colormode إلى وضع XY.
سيكون للأضواء المختلفة خصائص مختلفة في متغير حالتها يمكنك تغييرها. سيقوم رسم P5.js بمسح جميع خصائص كل مصباح على
يمكن لنماذج MKR1000 و MKR1010 و Nano 33 IoT Arduino التحكم في جسر Hue عبر طلبات HTTP أيضًا. هناك بعض أمثلة Arduino Hue ، مع ملاحظات ، في هذا المستودع أيضًا.