This project provides a simple and straightforward MQTT-based controller for Kuando HID-based Busylights (Alpha and Omega). The controller allows for color control, blinking, fading, and ringtone triggers through MQTT messages.
- Control Kuando Busylights via MQTT.
- Support for setting solid colors, blinking lights, and fading effects.
- Control various ringtones on the Busylight.
- Keep-alive mechanism to ensure the device stays active.
- Ability to execute custom raw color commands.
- Kuando Busylight UC Omega or Alpha.
- HID library support for USB communication.
- Python 3.x
hidlibrary for USB communicationpaho-mqttlibrary for MQTT communication
-
Install the required Python libraries:
pip install hid paho-mqtt
-
Clone or download the repository and navigate to the project directory.
To run the controller, execute the script:
python busylight_controller.pyConnect to your MQTT broker and send messages to control the Busylight. The MQTT topic to subscribe to is busylight/control.
-
Set Colors:
color_redcolor_greencolor_bluecolor_yellowcolor_cyancolor_magentacolor_whitecolor_orangecolor_purplecolor_pinkcolor_brown
-
Blink Colors:
blink_color_redblink_color_greenblink_color_blueblink_color_yellowblink_color_cyanblink_color_magentablink_color_whiteblink_color_orangeblink_color_purpleblink_color_pinkblink_color_brown
-
Ringtones:
ring_offring_open_officering_quietring_funkyring_fairy_talering_kuando_trainring_telephone_nordicring_telephone_originalring_telephone_pick_me_upring_buzz
-
Other Commands:
off- Turn off the light.rainbow_on- Start rainbow cycling.rainbow_off- Stop rainbow cycling.fade_red,fade_green,fade_blue, etc. - Start color fading.fade_off- Stop color fading.raw_color 255,0,0- Set custom raw color.reset_device- Reset the device.device_bootloader- Start bootloader mode.
The script can be stopped by pressing Ctrl+C in the terminal. This will ensure the device is properly turned off and closed.
- Main script: Initializes the device, sets up the MQTT client, and starts the keep-alive thread.
- Helper functions: Handle sending commands to the Busylight device.
- MQTT callbacks: Process incoming MQTT messages and execute appropriate commands.
- Thread management: Manages threads for rainbow cycling, fading, and keep-alive functionalities.
This project is licensed under the MIT License. See the LICENSE file for details.