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
- Supports Lights from Five Vendors
- Agile Innovations BlinkStick
- Embrava Blynclight
- Kuando BusyLight
- Luxafor Flag
- ThingM Blink1
- 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.7.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9916332340e1dd7f1462966c3be3db4648f35b88e4c7c5fbb249b0b26395f7f0 |
|
MD5 | f1cae9b18f1d031dd29e1fcce8afdc40 |
|
BLAKE2b-256 | 9753c6d935b4f513e18aa62a545ac4ba40e3fa017c4f5a981a0ed49b3f7d0fc0 |
Hashes for busylight_for_humans-0.7.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d595d2cb1e1de14aa8db7ae34c7b7e403f5274e21057a2cb034e564d9f249ac2 |
|
MD5 | a8de83bbb6da9cebd94d1314e0870349 |
|
BLAKE2b-256 | 99eb9864828d64ab5498e81cd2c4c09c5903047d199a49735f68bdbc5048ba7d |