PERINGATAN : Repositori ini saat ini tidak memiliki pengelola aktif. Karena alasan itu, pembangunannya basi. Pertimbangkan untuk menggunakan garpu aktif, seperti LIFX-LAN-Client.
Implementasi Node.js dari Protokol LIFX. Dikembangkan untuk bekerja dengan versi firmware minimum 2.0.
Perpustakaan ini tidak, dengan cara apa pun, berafiliasi atau terkait dengan Lifi Labs, Inc. Gunakan dengan risiko Anda sendiri.
$ npm install node-lifx --saveNode.js 0.12+ dan IO.JS diuji dan didukung pada Mac, Linux dan Windows.
File cli.js berisi contoh yang berfungsi.
Perpustakaan menggunakan klien untuk komunikasi jaringan. Klien ini menangani komunikasi dengan semua lampu di jaringan.
var LifxClient = require ( 'node-lifx' ) . Client ;
var client = new LifxClient ( ) ;
client . init ( ) ; Objek Client adalah acara Eventemitter dan Emmits setiap kali perubahan terjadi. Ini bisa menjadi penemuan cahaya baru, lampu yang mengirim pesan atau serupa. Klien memulai penemuan lampu tepat setelah diinisialisasi dengan metode init . Jika lampu baru ditemukan, klien itu menjadi acara light-new . Peristiwa ini berisi cahaya sebagai objek yang dapat dipanggil kemudian:
var LifxClient = require ( 'node-lifx' ) . Client ;
var client = new LifxClient ( ) ;
client . on ( 'light-new' , function ( light ) {
// Change light state here
} ) ;
client . init ( ) ;Keadaan cahaya dapat diubah dengan metode yang berbeda:
light.on([duration], [callback])Ini menyala.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
duration | int | 0 | Menyalakan akan pudar dari waktu ke waktu (dalam milidetik). |
callback | fungsi | batal | function(error) {} dipanggil setelah perintah telah mencapai cahaya atau setelah client.resendMaxTimes client.resendPacketDelay error adalah null jika terjadi keberhasilan dan diberikan jika pengiriman telah gagal. |
| Catatan: Menggunakan Callback Multiply Network Load untuk perintah ini dengan dua kali atau lebih. |
Contoh Penggunaan:
light . on ( ) ; // Turns the light on instantly
light . on ( 2000 ) ; // Fading the light on over two seconds light.off([duration], [callback])Ini mematikan lampu.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
duration | int | 0 | Mematikan akan pudar dari waktu ke waktu (dalam milidetik). |
callback | fungsi | batal | function(error) {} dipanggil setelah perintah telah mencapai cahaya atau setelah client.resendMaxTimes client.resendPacketDelay error adalah null jika terjadi keberhasilan dan diberikan jika pengiriman telah gagal. |
| Catatan: Menggunakan Callback Multiply Network Load untuk perintah ini dengan dua kali atau lebih. |
Contoh Penggunaan:
light . off ( ) ; // Turns the light off instantly
light . off ( 2000 ) ; // Fading the light off over two seconds light.color(hue, saturation, brightness, [kelvin], [duration], [callback])Mengubah warna cahaya menjadi nilai warna HSB. Ini adalah metode yang disukai untuk mengubah warna cahaya.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
hue | int | Antara 0 dan 360, mewakili rona warna dalam derajat yang mengubah warna. | |
saturation | int | Antara 0 dan 100, mewakili intensitas warna dari 0% hingga 100%. | |
brightness | int | Antara 0 dan 100, mewakili kecerahan cahaya dari 0% hingga 100%. | |
kelvin | int | 3500 | Antara 2500 dan 9000, mewakili suhu warna. |
duration | int | 0 | Memudar warna ke nilai baru dari waktu ke waktu (dalam milidetik). |
callback | fungsi | batal | function(error) {} dipanggil setelah perintah telah mencapai cahaya atau setelah client.resendMaxTimes client.resendPacketDelay error adalah null jika terjadi keberhasilan dan diberikan jika pengiriman telah gagal. |
| Catatan: Menggunakan Callback Multiply Network Load untuk perintah ini dengan dua kali atau lebih. |
Contoh Penggunaan:
light . color ( 0 , 100 , 50 ) ; // Set to red at 50% brightness
light . color ( 50 , 50 , 80 , 3500 , 2000 ) ; // Set to a light green at 80% brightness over next two seconds light.colorRgbHex(hexString, [duration], [callback]) Mengubah warna cahaya menjadi nilai warna RGB yang diberikan dalam format hex. Perhatikan bahwa RGB buruk mewakili warna cahaya, lebih memilih nilai HSBK yang diberikan melalui metode color .
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
hexString | rangkaian | String hex rgb dimulai dengan # | |
duration | int | 0 | Memudar warna ke nilai baru dari waktu ke waktu (dalam milidetik). |
callback | fungsi | batal | function(error) {} dipanggil setelah perintah telah mencapai cahaya atau setelah client.resendMaxTimes client.resendPacketDelay error adalah null jika terjadi keberhasilan dan diberikan jika pengiriman telah gagal. |
| Catatan: Menggunakan Callback Multiply Network Load untuk perintah ini dengan dua kali atau lebih. |
Contoh Penggunaan:
light . colorRgbHex ( '#F00' ) ; // Set to red
light . colorRgbHex ( '#FFFF00' ) ; // Set to yellow light.colorRgb(red, green, blue, [duration], [callback]) Mengubah warna cahaya menjadi nilai warna RGB. Perhatikan bahwa RGB buruk mewakili warna cahaya, lebih memilih nilai HSBK yang diberikan melalui metode color .
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
red | int | Amout merah berwarna dari 0 hingga 255 | |
green | int | AMOUT HIJAU WARNA DARI 0 hingga 255 | |
blue | int | AMOUT BIRU WARNA DARI 0 hingga 255 | |
duration | int | 0 | Memudar warna ke nilai baru dari waktu ke waktu (dalam milidetik). |
callback | fungsi | batal | function(error) {} dipanggil setelah perintah telah mencapai cahaya atau setelah client.resendMaxTimes client.resendPacketDelay error adalah null jika terjadi keberhasilan dan diberikan jika pengiriman telah gagal. |
| Catatan: Menggunakan Callback Multiply Network Load untuk perintah ini dengan dua kali atau lebih. |
Contoh Penggunaan:
light . colorRgb ( 255 , 0 , 0 ) ; // Set to red
light . colorRgb ( 255 , 255 , 0 ) ; // Set to yellow light.maxIR(brightness, callback)Set adalah kecerahan inframerah maksimum cahaya (hanya untuk lampu yang mendukung cahaya inframerah)
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
brightness | int | Antara 0 dan 100, mewakili kecerahan cahaya dari 0% hingga 100%. | |
callback | fungsi | function(error, data) {} |
Contoh Penggunaan:
light . maxIR ( 0 ) ; // Set's a maximum infrared brightness of 0
light . maxIR ( 25 ) ; // Set's a maximum infrared brightness of 25 light.getMaxIR(callback)Meminta kecerahan inframerah maksimum cahaya (hanya untuk lampu yang mendukung cahaya inframerah)
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
{
brightness : 25
}Info status dan spesifikasi cahaya dapat diminta dengan metode berikut:
light.getState(callback)Meminta info umum dari lampu, ini termasuk warna, label, dan status daya. Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
{
color : { hue : 120 , saturation : 0 , brightness : 100 , kelvin : 8994 } ,
power : 0 ,
label : 'Kitchen'
} light.getPower(callback)Meminta status daya saat ini (hidup atau mati). Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
0 // off light.getFirmwareVersion(callback)Meminta versi firmware dari lampu (versi minor dan utama). Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
{
majorVersion : 2 ,
minorVersion : 1
} light.getHardwareVersion(callback)Meminta versi perangkat keras dari lampu (vendor, produk dan versi). Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
{
vendorId : 1 ,
vendorName : 'LIFX' ,
productId : 1 ,
productName : 'Original 1000' ,
version : 6 ,
productFeatures : {
color : true ,
infrared : false ,
multizone : false
}
} light.getFirmwareInfo(callback)Meminta info dari unit pengontrol mikro lampu (Sinyal, TX dan RX). Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
{
signal : 0 ,
tx : 0 ,
rx : 0
} light.getWifiInfo(callback)Meminta info wifi dari lampu (sinyal, tx dan rx). Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
{
signal : 0.000009999999747378752 ,
tx : 16584 ,
rx : 12580
} light.getWifiVersion(callback)Meminta versi firmware wifi dari lampu (versi minor dan utama). Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
{
majorVersion : 2 ,
minorVersion : 1
} light.getAmbientLight(callback)Meminta nilai cahaya ambient dalam fluks dari cahaya. Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} |
Hasil contoh:
null ,
10Label lampu dapat diminta dan diatur menggunakan metode berikut:
light.getLabel(callback, [cache])Meminta label lampu. Fungsi ini tidak sinkron.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
callback | fungsi | function(error, data) {} | |
cache | Boolean | PALSU | Gunakan nilai terakhir yang diketahui untuk label dan jangan minta dari cahaya lagi |
Hasil contoh:
null ,
'Kitchen' light.setLabel(label, [callback])Menetapkan label baru untuk lampu.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
label | rangkaian | Label baru dengan ukuran maksimum 32 bit (yang panjang 32 dengan karakter non unicode). | |
callback | fungsi | batal | function(error) {} dipanggil setelah perintah telah mencapai cahaya atau setelah client.resendMaxTimes client.resendPacketDelay error adalah null jika terjadi keberhasilan dan diberikan jika pengiriman telah gagal. |
| Catatan: Menggunakan Callback Multiply Network Load untuk perintah ini dengan dua kali atau lebih. |
Contoh Penggunaan:
light . setLabel ( 'Bedroom Light' ) ;
light . setLabel ( 'Kitchen Light 4' , function ( err ) {
if ( err ) { throw err ; }
console . log ( 'New light label has been set' ) ;
} ) ;client.light(identifier)Temukan lampu dalam daftar dari semua lampu dengan IP, label atau ID.
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
identifier | rangkaian | Label Light (Case Sensitive) client.light('Kitchen') , The IP Address client.light('192.168.2.102') atau Light ID client.light('0123456789012') |
Mengembalikan objek ringan yang kemudian dapat digunakan untuk memanggil metode di atasnya. Misalnya client.light('192.168.2.102').on() .
client.lights([filter])Dapatkan daftar semua lampu yang diketahui
| Pilihan | Jenis | Bawaan | Keterangan |
|---|---|---|---|
filter | rangkaian | batal | Daftar Lampu Filter untuk Mengembalikan Hanya Aktif ( null atau 'on' ), tidak aktif ( 'off' ) atau semua ( '' ) |
Peristiwa berikut mungkin dilemparkan oleh klien.
light-new Acara ini dilemparkan ketika ada penemuan cahaya baru yang belum pernah terlihat saat runtime sebelumnya. Acara ini disediakan dengan objek cahaya baru. client.on('light-new', function(light) {});
light-offline Acara ini dilemparkan ketika lampu belum ditemukan untuk sementara waktu. Cahaya yang diberikan tidak lagi diharapkan dapat dicapai. client.on('light-offline', function(light) {});
light-online Acara ini dilemparkan ketika lampu ditemukan lagi setelah offline. client.on('light-online', function(light) {});
Penemuan untuk setiap klien dapat dimulai dan dihentikan saat runtime menggunakan perintah ini:
client.startDiscovery()Memulai proses penemuan.
client.stopDiscovery()Menghentikan proses penemuan.
Untuk inisialisasi klien, pengaturan yang berbeda dapat disediakan. Ini adalah contoh dengan opsi default:
var LifxClient = require ( 'node-lifx' ) . Client ;
var client = new LifxClient ( ) ;
// ...
client . init ( {
lightOfflineTolerance : 3 , // A light is offline if not seen for the given amount of discoveries
messageHandlerTimeout : 45000 , // in ms, if not answer in time an error is provided to get methods
startDiscovery : true , // start discovery after initialization
resendPacketDelay : 150 , // delay between packages if light did not receive a packet (for setting methods with callback)
resendMaxTimes : 3 , // resend packages x times if light did not receive a packet (for setting methods with callback)
debug : false , // logs all messages in console if turned on
address : '0.0.0.0' , // the IPv4 address to bind the udp connection to
broadcast : '255.255.255.255' , // set's the IPv4 broadcast address which is addressed to discover bulbs
lights : [ ] // Can be used provide a list of known light IPv4 ip addresses if broadcast packets in network are not allowed
// For example: ['192.168.0.112', '192.168.0.114'], this will then be addressed directly
} ) ;