Control USB connected LED lights, like a human.
Project description
BusyLight for Humans™ gives you control of USB attached LED lights from a variety of vendors. Lights can be controlled via the command-line, using a HTTP API or imported directly into your own python projects. Need a light to let you know when a host is down, or when the dog wants out? How about a light that indicates "do not disturb"?
The possibilities are literally endless.
Back to Front, Left to Right
BlyncLight, BlyncLight Plus, Busylight
Blink(1), Flag, BlinkStick
Features
- Control Lights via Command-Line
- Control Lights via Web API
- Five (5!) Supported Vendors:
- Supported on MacOS, Linux, probably Windows and BSD too!
- Tested extensively on Raspberry Pi 3b+, Zero W and 4
Basic Install
$ python3 -m pip install busylight-for-humans
Web API Install
Install uvicorn
and FastAPI
in addition to busylight
:
$ python3 -m pip install busylight-for-humans[webapi]
Linux Post-Install Activities
Linux controls access to USB devices via the udev subsystem and by default denies non-root users access to devices it doesn't recognize. I've got you covered!
You'll need root access to configure the udev rules:
$ busylight udev-rules -o 99-busylights.rules
$ sudo cp 99-busylights.rules /etc/udev/rules.d
$ sudo udevadm control -R
$ # unplug/plug your light
$ busylight on
Command-Line Examples
$ busylight on # light turns on green
$ busylight on red # now it's shining a friendly red
$ busylight on 0xff0000 # still red
$ busylight on #00ff00 # now it's blue!
$ busylight blink # it's slowly blinking on and off with a red color
$ busylight blink green fast # blinking faster green and off
$ busylight --all on # turn all lights on green
$ busylight --all off # turn all lights off
HTTP API Examples
First start the busylight
API server:
$ busylight serve
INFO: Started server process [20189]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8888 (Press CTRL+C to quit)
The API is fully documented and available @ https://localhost:8888/redoc
Now you can use the web API endpoints which return JSON payloads:
$ curl http://localhost:8888/1/lights
$ curl http://localhost:8888/1/lights/on
$ curl http://localhost:8888/1/lights/off
$ curl http://localhost:8888/1/light/0/on/purple
$ curl http://localhost:8888/1/light/0/off
$ curl http://localhost:8888/1/lights/on
$ curl http://localhost:8888/1/lights/off
$ curl http://localhost:8888/1/lights/rainbow
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for busylight-for-humans-0.8.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b6b031c40d06d3bbb40141cf0cf16ee86a3fa85847780a79cd0b3c40858d69a |
|
MD5 | 567aa81ca2a8d815aa6b1648f0edcccb |
|
BLAKE2b-256 | 0d4dd35980871acdbf256c033fd78972e23fb3341882d42b66671228fe0ff89b |
Hashes for busylight_for_humans-0.8.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 411c512a26cd90d6026c1a612d3405b802d4a0197c04a549f259298379f86b86 |
|
MD5 | 7ab49cef6e991fd1fb16153c9c8b573c |
|
BLAKE2b-256 | f8eb4f41ac857703fb28a1b891a1131620f63a9af1804e52c1fd6b70e0e80bd6 |