A simple Node.js library to discover and control Xiaomi Yeelights over LAN.
This solution offers a 1:1 implementation of the official docs from Xiaomi, and also includes an SSDP implementation to retrieve the IP of your light.
# Run this in your favourite terminal
npm i yeelight-node
You can get started by running the example, which will discover and ping your lights over LAN:
node example/index.js
In your code, 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('yeelight-node')
const yeelight = new Yeelight({ ip: '0.0.0.0', port: 55443 })
yeelight.set_power('on')
yeelight.set_rgb([250, 150, 120])
yeelight.get_prop('bright').then(
data => console.log(data)
)
If you don't know the IP of your light, you can use the SSDP client to scan your network:
const { Client } = require('yeelight-node')
const client = new Client()
client.bind(yeelight => {
yeelight.set_power('on')
yeelight.set_rgb([250, 150, 120])
yeelight.get_prop('bright').then(
data => console.log(data)
)
})
You can now call any of the operations from the official docs on this instance.
Original work by @cpav3.