node-yeelight is a 0 dependency solution for controlling Xiaomi Yeelights. There are already a number of other solutions available, but they were not exactly what I wanted, so I made another one to be better than all the others.
Well it has less functionality for a start. All of the other ones I saw came bundled with an SSDP solution. I already have my own SSDP solution over here so I didn't want to pull in another one. I just wanted something to interface with the lights. This solution offers a 1:1 implementation of the official docs from Xiaomi without any 3rd party dependencies.
To actually find the lights you will need an SSDP implementation of you don't know the IP of your light. As mentioned above,I have taken care of that too but because I'm not building it into this package, you can use whichever one you like. Or write your own.
Simply require and instantiate the package as a class, passing in the ip address and port of the light as an object.
const Yeelight = require('node-yeelight');
const yee1 = new Yeelight({ ip: 0.0.0.0, port: 55443 });
You can now call any of the operations from the official docs on this instance.