경고 :이 저장소에는 현재 활성 관리자가 없습니다. 이런 이유로 개발은 부실합니다. Lifx-Lan-Client와 같은 활성 포크 사용을 고려하십시오.
Lifx 프로토콜의 Node.js 구현. 최소 펌웨어 버전 2.0으로 작동하도록 개발되었습니다.
이 라이브러리는 어떤 식 으로든 Lifi Labs, Inc와 관련이 있거나 관련이 없습니다. 자신의 위험에 따라 사용하십시오.
$ npm install node-lifx --saveNode.js 0.12+ 및 io.js는 Mac, Linux 및 Windows에서 테스트 및 지원됩니다.
cli.js 파일에는 작업 예제가 포함되어 있습니다.
라이브러리는 네트워크 통신을 위해 클라이언트를 사용합니다. 이 클라이언트는 네트워크의 모든 조명과 통신을 처리합니다.
var LifxClient = require ( 'node-lifx' ) . Client ;
var client = new LifxClient ( ) ;
client . init ( ) ; Client 객체는 이벤트 미터이며 변경 될 때마다 이벤트를 감정합니다. 이것은 새로운 가벼운 발견, 메시지를 보내는 빛이 될 수 있습니다. 클라이언트는 init 메소드로 초기화 된 직후 조명을 발견하기 시작합니다. 새로운 조명이 발견되면 클라이언트가 light-new 이벤트를 감정합니다. 이 이벤트에는 빛이 포함되어 있습니다.
var LifxClient = require ( 'node-lifx' ) . Client ;
var client = new LifxClient ( ) ;
client . on ( 'light-new' , function ( light ) {
// Change light state here
} ) ;
client . init ( ) ;빛의 상태는 다른 방법으로 변경 될 수 있습니다.
light.on([duration], [callback])이것은 빛이 켜집니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
duration | int | 0 | 시간이 지남에 따라 (밀리 초)에 켜집니다. |
callback | 기능 | 널 | function(error) {} 명령이 Light에 도달 한 후 또는 client.resendMaxTimes 가 client.resendPacketDelay 사용하지 않은 경우 호출됩니다. 성공의 경우 error 가 null 이며 전송이 실패한 경우 주어집니다. |
| 참고 : 콜백을 사용하면이 명령의 네트워크로드가 두 번 이상 곱해집니다. |
사용 예제 :
light . on ( ) ; // Turns the light on instantly
light . on ( 2000 ) ; // Fading the light on over two seconds light.off([duration], [callback])이것은 빛이 꺼집니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
duration | int | 0 | 시간이 지남에 따라 (밀리 초)로 끄면 꺼집니다. |
callback | 기능 | 널 | function(error) {} 명령이 Light에 도달 한 후 또는 client.resendMaxTimes 가 client.resendPacketDelay 사용하지 않은 경우 호출됩니다. 성공의 경우 error 가 null 이며 전송이 실패한 경우 주어집니다. |
| 참고 : 콜백을 사용하면이 명령의 네트워크로드가 두 번 이상 곱해집니다. |
사용 예제 :
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])빛의 색상을 HSB 색상 값으로 변경합니다. 이것은 빛의 색을 바꾸는 것이 선호되는 방법입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
hue | int | 0에서 360 사이에서 색상이 색상을 나타내는 색상을 나타냅니다. | |
saturation | int | 0%에서 100 사이에서, 0%에서 100%의 색상 강도를 나타냅니다. | |
brightness | int | 0 ~ 100 사이에서, 0%에서 100%의 광 밝기를 나타냅니다. | |
kelvin | int | 3500 | 색 온도를 나타내는 2500에서 9000 사이. |
duration | int | 0 | 시간이 지남에 따라 새로운 값으로 색상을 희미 해집니다 (밀리 초). |
callback | 기능 | 널 | function(error) {} 명령이 Light에 도달 한 후 또는 client.resendMaxTimes 가 client.resendPacketDelay 사용하지 않은 경우 호출됩니다. 성공의 경우 error 가 null 이며 전송이 실패한 경우 주어집니다. |
| 참고 : 콜백을 사용하면이 명령의 네트워크로드가 두 번 이상 곱해집니다. |
사용 예제 :
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]) 빛의 색상을 166 진수 형식으로 주어진 RGB 색상으로 변경합니다. RGB는 빛의 색상을 잘못 나타내며 color 방법을 통해 주어진 HSBK 값을 선호합니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
hexString | 끈 | # 로 시작하는 16 진 RGB 문자열 | |
duration | int | 0 | 시간이 지남에 따라 새로운 값으로 색상을 희미 해집니다 (밀리 초). |
callback | 기능 | 널 | function(error) {} 명령이 Light에 도달 한 후 또는 client.resendMaxTimes 가 client.resendPacketDelay 사용하지 않은 경우 호출됩니다. 성공의 경우 error 가 null 이며 전송이 실패한 경우 주어집니다. |
| 참고 : 콜백을 사용하면이 명령의 네트워크로드가 두 번 이상 곱해집니다. |
사용 예제 :
light . colorRgbHex ( '#F00' ) ; // Set to red
light . colorRgbHex ( '#FFFF00' ) ; // Set to yellow light.colorRgb(red, green, blue, [duration], [callback]) 빛의 색상을 RGB 색상 값으로 변경합니다. RGB는 빛의 색상을 잘못 나타내며 color 방법을 통해 주어진 HSBK 값을 선호합니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
red | int | 0에서 255까지의 빨간색의 색상 | |
green | int | 0에서 255 사이의 녹색의 색상 | |
blue | int | 0에서 255까지의 파란색의 색상 | |
duration | int | 0 | 시간이 지남에 따라 새로운 값으로 색상을 희미 해집니다 (밀리 초). |
callback | 기능 | 널 | function(error) {} 명령이 Light에 도달 한 후 또는 client.resendMaxTimes 가 client.resendPacketDelay 사용하지 않은 경우 호출됩니다. 성공의 경우 error 가 null 이며 전송이 실패한 경우 주어집니다. |
| 참고 : 콜백을 사용하면이 명령의 네트워크로드가 두 번 이상 곱해집니다. |
사용 예제 :
light . colorRgb ( 255 , 0 , 0 ) ; // Set to red
light . colorRgb ( 255 , 255 , 0 ) ; // Set to yellow light.maxIR(brightness, callback)조명의 최대 적외선 밝기 (적외선을지지하는 조명에만 해당)
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
brightness | int | 0 ~ 100 사이에서, 0%에서 100%의 광 밝기를 나타냅니다. | |
callback | 기능 | function(error, data) {} |
사용 예제 :
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)빛의 최대 적외선 밝기를 요청합니다 (적외선을지지하는 조명에만 해당)
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
{
brightness : 25
}상태의 정보와 빛의 사양은 다음 방법으로 요청할 수 있습니다.
light.getState(callback)빛에서 일반 정보를 요청합니다. 여기에는 색상, 레이블 및 전력 상태가 포함됩니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
{
color : { hue : 120 , saturation : 0 , brightness : 100 , kelvin : 8994 } ,
power : 0 ,
label : 'Kitchen'
} light.getPower(callback)현재 전력 상태 (켜짐 또는 끄기)를 요청합니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
0 // off light.getFirmwareVersion(callback)Light (Minor and Major 버전)에서 펌웨어 버전을 요청합니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
{
majorVersion : 2 ,
minorVersion : 1
} light.getHardwareVersion(callback)Light (공급 업체, 제품 및 버전)에서 하드웨어 버전을 요청합니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
{
vendorId : 1 ,
vendorName : 'LIFX' ,
productId : 1 ,
productName : 'Original 1000' ,
version : 6 ,
productFeatures : {
color : true ,
infrared : false ,
multizone : false
}
} light.getFirmwareInfo(callback)Light의 마이크로 컨트롤러 단위 (신호, TX 및 RX)의 정보를 요청합니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
{
signal : 0 ,
tx : 0 ,
rx : 0
} light.getWifiInfo(callback)Light (Signal, TX 및 RX)에서 WiFi 정보를 요청합니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
{
signal : 0.000009999999747378752 ,
tx : 16584 ,
rx : 12580
} light.getWifiVersion(callback)Light (Minor and Major 버전)에서 Wi -Fi 펌웨어 버전을 요청합니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
{
majorVersion : 2 ,
minorVersion : 1
} light.getAmbientLight(callback)조명에서 플럭스의 주변 광 값을 요청합니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} |
예 : 결과 :
null ,
10다음 방법을 사용하여 조명 레이블을 요청하고 설정할 수 있습니다.
light.getLabel(callback, [cache])빛의 레이블을 요청합니다. 이 기능은 비동기입니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
callback | 기능 | function(error, data) {} | |
cache | 부울 | 거짓 | 레이블에 마지막으로 알려진 값을 사용하고 빛으로부터 다시 요청하지 마십시오. |
예 : 결과 :
null ,
'Kitchen' light.setLabel(label, [callback])빛에 대한 새 레이블을 설정합니다.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
label | 끈 | 최대 32 비트 크기의 새 레이블 (유니 코드가 아닌 32의 길이). | |
callback | 기능 | 널 | function(error) {} 명령이 Light에 도달 한 후 또는 client.resendMaxTimes 가 client.resendPacketDelay 사용하지 않은 경우 호출됩니다. 성공의 경우 error 가 null 이며 전송이 실패한 경우 주어집니다. |
| 참고 : 콜백을 사용하면이 명령의 네트워크로드가 두 번 이상 곱해집니다. |
사용 예제 :
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)IP, 레이블 또는 ID로 모든 조명 목록에서 조명을 찾으십시오.
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
identifier | 끈 | Light Label (Case Sensitive) client.light('Kitchen') , IP 주소 client.light('192.168.2.102') 또는 Light ID client.light('0123456789012') |
그런 다음 가벼운 물체를 반환하여 메소드를 호출하는 데 사용할 수 있습니다. 예를 들어 client.light('192.168.2.102').on() .
client.lights([filter])알려진 모든 조명 목록을 얻으십시오
| 옵션 | 유형 | 기본 | 설명 |
|---|---|---|---|
filter | 끈 | 널 | 활성화 ( null 또는 'on' ), 비활성 ( 'off' ) 또는 모두 ( '' ) 만 반환 할 조명 목록 |
다음 이벤트는 고객이 던질 수 있습니다.
light-new 이 이벤트는 이전에 런타임에 보이지 않는 새로운 조명 발견이있을 때 발생합니다. 이 이벤트에는 새로운 라이트 객체가 제공됩니다. client.on('light-new', function(light) {});
light-offline 이 사건은 한동안 빛이 발견되지 않았을 때 발생합니다. 주어진 빛은 더 이상 도달 할 수 없을 것으로 예상됩니다. client.on('light-offline', function(light) {});
light-online 이 이벤트는 오프라인 후 빛이 다시 발견되면 발생합니다. client.on('light-online', function(light) {});
각 클라이언트에 대한 검색은 이러한 명령을 사용하여 런타임에 시작하여 중지 할 수 있습니다.
client.startDiscovery()발견 과정을 시작합니다.
client.stopDiscovery()발견 과정을 중지합니다.
클라이언트의 초기화를 위해 다른 설정을 제공 할 수 있습니다. 기본 옵션이있는 예입니다.
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
} ) ;