bastl34 / node-yeelight-wifi Goto Github PK
View Code? Open in Web Editor NEWnode js package for xiaomi yeelight bulbs
License: MIT License
node js package for xiaomi yeelight bulbs
License: MIT License
property name is always an empty string. My E27 yeelight bulb have a name (from Yeelight app).
What is wrong?
Hello. I think with the new ES5 / 6 updates, it would be interesting to use async / await. What do you think? I can work in a PR for this.
First of thank you very for your effort in make this project available. I am using it since a couple of days now and it is working fine for me. However, I have an issue with respect to status update events.
The stateUpdate
event only provides the Yeelight object with all its members, but it does not indicate which property has changed which can have some strange side-effect with some applications which represent the actual state of light. In particular, this is a problematic on first connect as the state is incomplete at this point as can be seen in the following example:
{ type: 'unknown',
power: false,
bright: 0,
rgb: { r: 0, g: 0, b: 0 },
hsb: { h: 0, s: 0, b: 0 } }
{ type: 'color',
power: true,
bright: 0,
rgb: { r: 0, g: 0, b: 0 },
hsb: { h: 0, s: 0, b: 0 } }
{ type: 'color',
power: true,
bright: 100,
rgb: { r: 255, g: 255, b: 255 },
hsb: { h: 0, s: 0, b: 100 } }
As one can see the first two states are incomplete
My question: Is it possible to suppress the first events (the first one might be easy for me to ignore as the type is unknown
) until the bulb state is complete? Another approach might be to have status update event which contain the actual state property changed rather than the full object.
What do you think? I am happy to come up with PR based on your thoughts on the matter.
I have powered on the bulb and started the discovery code, bulb not detected
Any other thing to add up?
code I tried
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);
});
Some of the api methods aren' t implemented.
Since it is possible to call the sendCommand function, it would be nice, if you can call the function without params.
In order to keep the stability, the parameters could be checked in the implemented function and not in the sendCommand function.
For instance the setRGB method requires prameters. Therefore setRGB should verify the parameters and pass them to the setCommand function.
This would allow to use api functionality that isn' t implemented in this module. e.g. "toggle"
Another option would be to explicitly tell the sendCommand function, that you want to call it without parameters.
e.g.:
setCommand('toggle', {
params: [],
allowEmptyParams: true
})
But this would be a breaking change.
Is it possible to have a discovery timeout after a period of time? Currently, it is a forever loop.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.