https://github.com/sahilchaddha/yeelight-platform
Yet Another Yeelight API in node.js
https://github.com/sahilchaddha/yeelight-platform
light node xiaomi yeelight yeelight-api yeelight-node
Last synced: 12 days ago
JSON representation
Yet Another Yeelight API in node.js
- Host: GitHub
- URL: https://github.com/sahilchaddha/yeelight-platform
- Owner: sahilchaddha
- License: mit
- Created: 2018-10-31T05:21:33.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-09-20T08:18:45.000Z (over 2 years ago)
- Last Synced: 2025-03-28T20:04:28.996Z (30 days ago)
- Topics: light, node, xiaomi, yeelight, yeelight-api, yeelight-node
- Language: JavaScript
- Size: 161 KB
- Stars: 57
- Watchers: 4
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# yeelight-platform
[](https://nodei.co/npm/yeelight-platform/)
[](https://www.npmjs.com/package/yeelight-platform)
[](https://www.npmjs.com/package/yeelight-platform)
[](https://circleci.com/gh/sahilchaddha/yeelight-platform)**Yet Another Yeelight API written in JS**
## Description
This package supports discovering, connecting and controlling Yeelight Devices.
`yeelight-platform` is a zero-dependency solution for controlling Xiaomi/Yeelight Lights. 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.
![]()
## Installation
```shell
$ npm install yeelight-platform
```## Usage :
### Discover
```js
const YeeDiscovery = require('yeelight-platform').Discovery
const discoveryService = new YeeDiscovery()discoveryService.on('started', () => {
console.log('** Discovery Started **')
})discoveryService.on('didDiscoverDevice', (device) => {
console.log(device)
})discoveryService.listen()
/*
{
Location: 'yeelight://192.168.x.x:55443',
id: '0x000000000xxxxx',
model: 'bslamp1',
support:
'get_prop set_default set_power toggle set_bright start_cf stop_cf set_scene cron_add cron_get cron_del set_ct_abx set_rgb set_hsv set_adjust adjust_bright adjust_ct adjust_color set_music set_name',
power: 'off',
bright: '1',
color_mode: '1',
ct: '2752',
rgb: '16750592',
hue: '36',
sat: '100'
}
*/
```### Device
```js
const YeeDevice = require('yeelight-platform').Deviceconst device = new YeeDevice({host: "192.168.0.190", port: 55443})
device.connect()
device.on('deviceUpdate', (newProps) => {
console.log(newProps)
})
device.on('connected', () => {
device.sendCommand({
id: -1,
method: 'set_power',
params: ["on", 'smooth', 300]
})
})```
## Compatible Devices
https://www.yeelight.com/en_US/product/wifi-led-c
https://www.yeelight.com/en_US/product/luna-mc
https://www.yeelight.com/en_US/product/luna
https://www.yeelight.com/en_US/product/mijia-lamp
https://www.yeelight.com/en_US/product/lemon-color
https://www.yeelight.com/en_US/product/lemon-ct
https://www.yeelight.com/en_US/product/pitaya-plus
https://www.yeelight.com/en_US/product/eos
https://www.yeelight.com/en_US/product/cherry1s
https://www.mi.com/us/yeelight-led-light-bulb/
https://www.mi.com/us/mi-bedside-lamp/
## Lint
```shell
$ npm run lint
```## API :
Yeelight Official API Documentation
https://www.yeelight.com/download/Yeelight_Inter-Operation_Spec.pdf
### Author
Sahil Chaddha