Sistem pencahayaan Philips Hue memungkinkan Anda untuk mengontrol pencahayaan di rumah Anda dari aplikasi seluler, atau dari aplikasi apa pun yang Anda tulis sendiri yang dapat terhubung ke internet. Pusat sistem adalah Hue Bridge, perangkat yang terhubung dengan Ethernet yang berkomunikasi dengan lampu yang kompatibel melalui protokol radio Zigbee HA. Philips membuat berbagai lampu yang kompatibel dengan rona, dan banyak lampu pihak ketiga bekerja dengan protokol yang sama. Iconnecthue memelihara daftar lampu yang kompatibel dengan rona. Sebagian besar pasar-Euro-market, tetapi masih sangat berguna.
Setiap jembatan Hue adalah server web HTTP sendiri, dan dapat dikontrol menggunakan Hue REST API. Ada perpustakaan untuk mengontrol rona yang tersedia dalam banyak bahasa pemrograman. Tutorial di sini semuanya ada di JavaScript sisi klien menggunakan P5.js, JavaScript biasa, atau sisi server menggunakan Node.js, atau berbasis micrcontroller untuk Arduino.
Hue API V2 baru -baru ini dirilis, dan akhirnya akan menggantikan V1. Catatan ini saat ini merujuk ke V1 (19 Jan 2021) dan masih berfungsi. Hue API V2 menampilkan https, serta beberapa perubahan besar dari V1.
Untuk memulai aplikasi Hue pemrograman, Anda akan memerlukan akses ke jembatan rona. Anda juga ingin akun Hue. Akun pengembang gratis. Jaga agar tautan situs pengembang Hue tetap berguna.
Aplikasi Hue untuk Android atau iOS sangat membantu saat berkembang, karena berfungsi saat proyek Anda belum. Aplikasi Hue Essentials juga merupakan alternatif yang cukup membantu.
Setiap rona memiliki antarmuka debug, tersedia di http://$ADDR/debug/clip.html ganti $ADDR dengan alamat IP jembatan Anda. Saat Anda berkembang, Anda dapat menggunakan ini untuk mengirim perintah API ke jembatan untuk menguji hal -hal.
Perpustakaan Node-Hue-API Peter Murray untuk Node.js adalah yang terbaik dari berbagai pustaka node.js JavaScript yang telah saya uji untuk mengendalikan rona.
Untuk mengendalikan rona dari klien browser, P5.js melakukan pekerjaan dengan baik, karena ada API permintaan HTTP sederhana. Anda dapat menggunakan JavaScript biasa juga, tentu saja.
Perpustakaan ArduinoHttpClient dan Perpustakaan Arduino_json berguna jika Anda menggunakan salah satu papan yang berkemampuan Arduino WiFi untuk terhubung ke jembatan HUE Anda. (Catatan: Ada perpustakaan JSON lain dengan nama yang sama tanpa garis bawah. Yang itu bukan yang digunakan di sini).
Command Line Tool Curl bermanfaat untuk menguji permintaan HTTP ke jembatan Anda, jika Anda terbiasa dengan baris perintah POSIX (Linux/UNIX). Curl tidak tersedia di antarmuka perintah Windows, tetapi Anda bisa mendapatkannya melalui subsistem Windows untuk Linux di Windows 10, atau melalui Cygwin, aplikasi yang menyediakan shell Linux untuk Windows. Berikut adalah beberapa detail tentang penggunaan ikal untuk mengakses jembatan rona.
Selain ini, Anda perlu mengetahui beberapa HTML dan JavaScript, dan editor teks, antarmuka baris perintah, dan browser untuk mencoba contoh di situs ini. Contoh baris perintah yang ditampilkan di sini semua untuk Linux atau Unix, tetapi akan berfungsi pada Windows 10 menggunakan subsistem Windows untuk Linux di Windows 10.
Aplikasi Anda perlu diidentifikasi ke jembatan Anda menggunakan nama pengguna yang unik. Halaman contoh ini akan menyederhanakannya, jika Anda tahu alamat IP jembatan Anda. Anda tidak dapat menjalankan halaman ini dari server jarak jauh; Unduh dan buka file index.html di browser dari sistem file Anda. Ini karena Hue API Versi 1 menggunakan HTTP, bukan HTTPS.
Anda juga dapat mengikuti instruksi pemula situs pengembang Hue.
Ketika Anda melakukannya dengan benar, Anda harus mendapatkan tanggapan seperti ini:
[
{
"success": {
"username": "newusername"
}
}
]
Sekarang Anda siap menulis kode untuk jembatan Anda. Terlepas dari lingkungan apa yang Anda kemrogram, Anda akan menggunakan nama pengguna yang Anda buat di sini.
Antarmuka klip debug adalah halaman yang dapat Anda gunakan untuk menguji fungsi di jembatan Anda. Alamatnya adalah:
http://your.bridge.ip.address/debug/clip.html
Ini dapat digunakan untuk mengirim perintah API apa pun ke jembatan Anda. String kueri umum adalah sebagai berikut:
/api/$HUE_USER/command
Secara umum, menanyakan keadaan perangkat dilakukan dengan menggunakan perintah GET, dan mengubahnya dilakukan dengan menggunakan put. Misalnya, untuk meminta keadaan semua lampu Anda, masukkan yang berikut di bidang URL:
/api/$HUE_USER/lights
Dan klik dapatkan. Untuk menanyakan konfigurasi, masukkan:
/api/$HUE_USER/config
Dan klik dapatkan. Untuk menyalakan lampu 1, masukkan yang berikut di bidang URL:
/api/$HUE_USER/lights/1/state
Dan masukkan yang berikut di bidang Badan Pesan:
{"on":true}
Dan klik put. Cahaya harus menyala, dan jembatan harus menjawab:
[
{
"success": {
"/lights/1/state/on": true
}
}
]
Untuk informasi lebih lanjut tentang Hue API, lihat panduan Hue Getting Startes, konsep inti Hue API, dan dokumentasi API Hue penuh. Anda harus membuat akun gratis dan masuk untuk menggunakan portal pengembang.
Saat Anda menambahkan jembatan ke jaringan Anda, Anda harus dapat menggunakan aplikasi Hue atau aplikasi Hue Essentials untuk mendapatkan alamat IP. Tetapi di jaringan yang kompleks seperti jaringan sekolah, itu mungkin tidak berfungsi. Perangkat seluler Anda dan jembatan Hue Anda harus berada di jaringan lokal yang sama agar berfungsi. Misalnya, jika jaringan WiFi Anda bukan jaring lokal yang sama dengan jaringan Ethernet kabel Anda (di mana jembatan tinggal), Anda mungkin tidak bisa mendapatkan alamatnya. Tetapi jika Anda bisa mendapatkan alamat MAC jembatan, maka Anda dapat mencarinya di jaringan Anda. Begini caranya
Setiap jembatan memiliki unik Anda dapat menemukan alamat MAC di bagian bawah jembatan Anda. Ini adalah nomor enam byte dalam notasi heksadesimal seperti itu seperti:
00:17:88:0B:14:48
Beberapa jembatan hanya akan menunjukkan tiga byte terakhir. Misalnya, jembatan di atas mungkin hanya menunjukkan 0B1448. Dengan jembatan Hue yang lebih tua, tiga byte pertama akan selalu 00:17:88 . Dengan yang lebih baru, Anda mungkin juga melihat EC:B5:FA sebagai gantinya.
Untuk mencari jembatan Anda di jaringan Anda, pastikan Anda memiliki tiga digit pertama dari jaringan lokal, dan Anda dapat mengaksesnya, kemudian buka antarmuka baris perintah dan ketik:
$ ping -c 5 xxx.xxx.xxx.255
Di mana xxx.xxx.xxx adalah tiga jumlah pertama jaringan Anda. Misalnya, pada jaringan yang routernya adalah 172.16.130.1, Anda akan memasukkan 172.16.130.255. Terkadang lembaga besar akan menggunakan dua subnet yang berbeda untuk jaringan kabel vs nirkabel, tetapi mereka masih akan berada di jaringan lokal yang lebih besar yang sama.
Anda akan mendapatkan daftar tanggapan, karena perangkat di jaringan menanggapi permintaan ping Anda. Setelah selesai, ketik:
$ arp -a
Anda akan mendapatkan daftar semua perangkat di jaringan yang sama yang dapat dilihat komputer Anda. Cari yang cocok dengan alamat MAC jembatan Anda, dan alamat IP di sebelahnya akan menjadi alamat IP jembatan Anda. Tiga byte terakhir dari alamat MAC Anda dari label di bagian bawah. Tiga yang pertama kemungkinan akan menjadi 00:17:88 atau EC: B5: FA, seperti yang dijelaskan di atas. Inilah contoh khas:
$ 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]
Dalam hal ini, alamat IP HUE adalah 192.168.0.3.
Anda dapat mencari lampu baru di jembatan menggunakan aplikasi rona seluler biasa. Anda juga dapat melakukannya dari antarmuka klip debug menggunakan permintaan pos pada url berikut:
/api/$HUE_USER/lights/
Isi alamat jembatan Anda untuk $ addr dan nama pengguna Hue Anda untuk $ hue_user. Anda harus mendapatkan balasan seperti ini:
[[ { "success": { "/lights": "Searching for new devices" } }]
Setelah 90 detik, Anda dapat memindai lampu baru yang ditambahkan seperti itu:
/api/$HUE_USER/lights/new
Di Curl:
$ curl -X GET http://$ADDR/api/$HUE_USER/lights/new
Ini hanya akan mencantumkan lampu baru yang ditambahkan setelah pemindaian untuk lampu baru.
Jika Anda mencoba menambahkan lampu yang sebelumnya terhubung ke jembatan yang berbeda, Anda harus menggunakan pendekatan yang berbeda. Tempatkan lampu di dekat jembatan yang ingin Anda kendalikan (lebih dekat dari lampu lainnya, idealnya kurang dari 1 meter). Matikan semua lampu lain yang terhubung ke jembatan, atau pastikan mereka jauh lebih jauh dari yang Anda inginkan.
Kirim antarmuka klip debug berikut menggunakan permintaan put:
/api/$HUE_USER/config/
Di dalam tubuh permintaan Anda, put:
{"touchlink": true}
Dalam ikal itu:
$ curl -X PUT -d '{"touchlink": true}' http://$ADDR/api/$HUE_USER/config
Lampu harus berkedip beberapa kali, dan server akan merespons dengan pesan yang berhasil. Anda sekarang dapat menambahkan lampu menggunakan permintaan lampu baru yang dijelaskan di atas.
Jika TouchLink tidak berhasil mengatur ulang lampu, Anda mungkin perlu mengatur ulang secara manual. Ini berbeda untuk setiap produsen, tetapi pola umumnya adalah menyalakan dan mematikan lampu tiga hingga lima kali, setelah itu akan berkedip atau sedikit redup untuk menunjukkan bahwa itu telah diatur ulang. Misalnya, dengan umbi tautan ge, polanya adalah:
Untuk beberapa bohlam pihak ketiga, seperti Cree Connect atau lampu innr, Anda dapat melakukannya dengan interval 2 detik. Jika ragu, pergi dengan tiga detik.
Jika Anda memiliki salah satu kendali jarak jauh Hue, Anda dapat mengatur ulang lampu menggunakannya juga. Untuk melakukan ini, nyalakan lampu dan letakkan remote control dalam jarak enam inci dari lampu. Tekan tombol Power On dan Power Off (atau Power On dan Scene Select Tombol pada model yang lebih baru) secara bersamaan dan tahan sampai bohlam berkedip. Ini akan menempatkan lampu dalam keadaan pabrik default, siap dipasangkan dengan jembatan baru.
Anda dapat menghapus lampu dari jembatan dari antarmuka klip debug menggunakan permintaan hapus pada url berikut:
/api/$HUE_USER/lights/1
Di Curl:
$ curl -X DELETE http://$ADDR/api/$HUE_USER/lights/1
Ganti 1 dengan jumlah lampu yang ingin Anda hapus.
Untuk mendapatkan status semua lampu yang terhubung, kirim yang berikut dari antarmuka klip debug menggunakan permintaan GET:
/api/$HUE_USER/lights/
Di Curl, itu:
$ curl http://$ADDR/api/$HUE_USER/lights/
Ini harus mengembalikan daftar lampu yang tersedia, seperti itu:
{"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"}}
Untuk menyalakan lampu, Anda perlu mengetahui angka mana itu. Kemudian Anda mengubah keadaan seperti itu:
Kirim yang berikut dari antarmuka klip debug menggunakan permintaan put:
/api/$HUE_USER/lights/4/state
Di dalam tubuh permintaan Anda, put:
{"on": true}
Di Curl, itu:
$ curl -X PUT -d '{"on":true}' http://$ADDR/api/$HUE_USER/lights/4/state
Untuk mematikannya, ubah tubuh permintaan
{"on": false}
Anda dapat mengubah salah satu sifat keadaan cahaya dengan cara ini. Lihatlah, misalnya, di Light 1 dari bagian mendapatkan semua lampu di atas:
{"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},
Selama properti reachable benar, artinya jembatan mencoba mencapai lampu dan mendapat respons, Anda dapat mengubah properti lainnya. Ini adalah lampu warna, dan memiliki tiga mode, HS (untuk rona, saturasi), CT (untuk suhu warna), dan xy (untuk dimensi x dan y dalam ruang warna CIE1931). Jika Anda mengubah rona atau saturasi, colormode lampu berubah menjadi HS, dan jika Anda mengubah suhu warna, colormode berubah menjadi CT. Jika Anda mengirim nilai XY, colormode berubah ke mode XY.
Lampu yang berbeda akan memiliki sifat yang berbeda dalam variabel keadaannya yang dapat Anda ubah. Sketsa P5.JS akan memindai semua sifat masing -masing lampu di
Model MKR1000, MKR1010, dan Nano 33 IoT Arduino dapat mengontrol jembatan HUE melalui permintaan HTTP juga. Ada beberapa contoh rona Arduino, dengan catatan, di repositori ini juga.