node-yeelight-wifi
"node-yeelight-wifi" is a node.js lib for controlling via wifi connected Yeelights.
It works with the RGBW bulbs, white bulbs and ceiling lights.
You need to activate "Lan control" on your lights. (see Troubleshooting)
Installation
npm install --save node-yeelight-wifi
Howto
Yeelight Lookup
You can lookup for yeelights in your local network like this:
const Lookup = require("node-yeelight-wifi").Lookup;
let look = new Lookup();
look.on("detected",(light) =>
{
console.log("new yeelight detected: id="+light.id + " name="+light.name);
});
Methods
Once you have a Yeelight
(light
) object from a lookup you can use it like this:
setPower(power,duration)
Set the power of your Yeelight (on: true
, off: false
)
light.setPower(true).then(() =>
{
console.log("success");
}).catch((error =>
{
console.log("failed",error);
}));
setRGB(rgb,duration)
Set the RGB value (r: 0-255, g: 0-255, b: 0-255)
light.setRGB([255,255,0]).then(() =>
{
console.log("success");
}).catch((error =>
{
console.log("failed",error);
}));
setHSV(hsv,duration)
Set the HSV value (hue: 0-359, sat: 0-100, value/bright=0-100)
light.setRGB([180,70,100]).then(() =>
{
console.log("success");
}).catch((error =>
{
console.log("failed",error);
}));
setCT(hsv,duration)
Set the color temp value (1700 ~ 6500)
light.setCT(5000).then(() =>
{
console.log("success");
}).catch((error =>
{
console.log("failed",error);
}));
setBright(brightness,duration)
Set the color brightness (0-100)
light.setBright(80).then(() =>
{
console.log("success");
}).catch((error =>
{
console.log("failed",error);
}));
updateState()
If you want to request a state (color,bright,power) update
light.updateState().then(() =>
{
console.log("success");
console.log(light.rgb);
}).catch((error =>
{
console.log("failed",error);
}));
Usable (public) Members of Yeelight
-Class (read only)
light.power
(true
/false
)light.type
("unknown"
,"white"
,"color"
)light.bright
(0-100
)light.rgb
(example: {r: 0, g: 0, b: 0}
)light.hsb
(example: {h: 0, s: 0, b: 0}
)
Events
A Yeelight
instance has some events:
light.on("connected",() =>{ console.log("connected"); });
light.on("disconnected",() => { console.log("disconnected"); });
light.on("stateUpdate",(light) => { console.log(light.rgb); });
light.on("failed",(error) => { console.log(error); });
Examples
Troubleshooting
- Yeelight is not detected?
Licence
Copyright (c) Bastian Karge
MIT (see License.md)