Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sgbasaraner/yeelight-cli
a low level, cross-platform command line client for Yeelight
https://github.com/sgbasaraner/yeelight-cli
cli command-line command-line-tool iot iot-application iot-device lightbulb low-level networking rust rust-crate rust-lang xiaomi yeelight
Last synced: 27 days ago
JSON representation
a low level, cross-platform command line client for Yeelight
- Host: GitHub
- URL: https://github.com/sgbasaraner/yeelight-cli
- Owner: sgbasaraner
- License: mit
- Created: 2018-04-04T11:16:11.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-07-01T15:09:06.000Z (over 1 year ago)
- Last Synced: 2024-10-31T11:39:20.586Z (about 2 months ago)
- Topics: cli, command-line, command-line-tool, iot, iot-application, iot-device, lightbulb, low-level, networking, rust, rust-crate, rust-lang, xiaomi, yeelight
- Language: Rust
- Size: 42 KB
- Stars: 55
- Watchers: 6
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# yeelight-cli
cargo install yee
This is a cross-platform command line client for Xiaomi's Yeelight. It is a very low-level implementation, and I believe it is possible to build something on top of this, maybe even a GUI. This still needs a lot of work to be full-featured, however, I believe it is usable at this stage.
# Usage
You can use any method in [Yeelight Specification](http://www.yeelight.com/download/Yeelight_Inter-Operation_Spec.pdf) as long as your device supports it, as this program is essentially a wrapper around it.
You need to enable LAN Control using the official Yeelight mobile app before attempting to use this, or any other 3rd party client.
# Using with command line arguments
You can also use this program with command line arguments, this is useful for performing simple operations such as turning the light off and on. To use with command line arguments, you need to know your light bulb's assigned name, or if you haven't assigned a name yet, you have to assign it.
For example:
yee mybulb toggle
would look for a lightbulb named "mybulb", and toggle it.
# Intent
I encountered many difficulties developing this as the only source codes I was able to found was from non-English speaking developers and it made reading comments and grasping difficult parts hard. I believe this can act as a guide for developers who are new to writing programs for this kind of devices, especially Yeelight.