Skip to content

techniker/MQTTBusyPy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MQTT Busylight Controller for Kuando HID Busylights

Overview

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.

Features

  • 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.

Hardware Requirements

  • Kuando Busylight UC Omega or Alpha.
  • HID library support for USB communication.

Software Requirements

  • Python 3.x
  • hid library for USB communication
  • paho-mqtt library for MQTT communication

Installation

  1. Install the required Python libraries:

    pip install hid paho-mqtt
  2. Clone or download the repository and navigate to the project directory.

Usage

Running the Controller

To run the controller, execute the script:

python busylight_controller.py

MQTT Control

Connect to your MQTT broker and send messages to control the Busylight. The MQTT topic to subscribe to is busylight/control.

Example Commands

  • Set Colors:

    • color_red
    • color_green
    • color_blue
    • color_yellow
    • color_cyan
    • color_magenta
    • color_white
    • color_orange
    • color_purple
    • color_pink
    • color_brown
  • Blink Colors:

    • blink_color_red
    • blink_color_green
    • blink_color_blue
    • blink_color_yellow
    • blink_color_cyan
    • blink_color_magenta
    • blink_color_white
    • blink_color_orange
    • blink_color_purple
    • blink_color_pink
    • blink_color_brown
  • Ringtones:

    • ring_off
    • ring_open_office
    • ring_quiet
    • ring_funky
    • ring_fairy_tale
    • ring_kuando_train
    • ring_telephone_nordic
    • ring_telephone_original
    • ring_telephone_pick_me_up
    • ring_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.

Stopping the Controller

The script can be stopped by pressing Ctrl+C in the terminal. This will ensure the device is properly turned off and closed.

Code Structure

  • 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.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

MQTT Busylight Controller for Kuando HID Busylights

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages