Skip to main content

A Python client for SignalRGB

Project description

🌈 signalrgb-python

CI/CD License PyPI version

A powerful Python client library and CLI for controlling SignalRGB Pro

FeaturesInstallationUsageAPI ReferenceDevelopmentContributingLicense

✨ Features

  • 📋 List available lighting effects
  • 🔍 Get detailed information about specific effects
  • 🎨 Apply effects to your devices with ease
  • 🖥️ User-friendly command-line interface
  • 🐍 Python client library for seamless integration into your projects
  • 🔐 Error handling and connection management
  • 🔄 Automatic effect caching for improved performance

💻 Installation

You can install signalrgb-python using pip:

pip install signalrgb

Or if you prefer to use Poetry:

poetry add signalrgb

Prerequisites

This library uses the SignalRGB REST API, which is only available in SignalRGB Pro.

🚀 Usage

Command-line Interface

signalrgb-python comes with an intuitive command-line interface for easy interaction with your SignalRGB setup.

# List all available effects
signalrgb list-effects

# Get details of a specific effect
signalrgb get-effect "Psychedelic Dream"

# Apply an effect
signalrgb apply-effect "Rave Visualizer"

# Get the current effect
signalrgb current-effect

You can also specify a custom host and port:

signalrgb --host hyperia.home --port 16038 list-effects

For a full list of available commands and options, use:

signalrgb --help

Python Library

Integrate signalrgb-python into your own Python projects with ease:

from signalrgb.client import SignalRGBClient

# Initialize the client
client = SignalRGBClient(host="hyperia.home", port=16038)

# List all effects
effects = client.get_effects()
for effect in effects:
    print(f"Effect: {effect.attributes.name}")

# Apply an effect
client.apply_effect_by_name("Rain")

# Get current effect
current_effect = client.get_current_effect()
print(f"Current effect: {current_effect.attributes.name}")

Error Handling

The client provides custom exceptions for different types of errors:

from signalrgb.client import SignalRGBClient, ConnectionError, APIError, EffectNotFoundError

client = SignalRGBClient()

try:
    client.apply_effect_by_name("Non-existent Effect")
except ConnectionError as e:
    print(f"Connection failed: {e}")
except EffectNotFoundError as e:
    print(f"Effect not found: {e}")
except APIError as e:
    print(f"API error occurred: {e}")

📘 API Reference

For detailed information about the available methods and classes, please refer to our API Documentation.

🛠️ Development

To set up the development environment:

  1. Clone the repository:
    git clone https://github.com/hyperb1iss/signalrgb-python.git
    cd signalrgb-python
    
  2. Install Poetry if you haven't already: pip install poetry
  3. Install dependencies: poetry install
  4. Activate the virtual environment: poetry shell

To run tests:

pytest

Check out our Development Guide for more information!

👥 Contributing

Have a fix or new feature that you want to add? That's amazing! You're amazing!

  1. Fork the repository
  2. Create a new branch: git checkout -b feature-branch-name
  3. Make your changes and commit them: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature-branch-name
  5. Submit a pull request

Please make sure to update tests as appropriate and adhere to the project's coding standards.

📄 License

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


📚 Documentation • 🐛 Report Bug • 💡 Request Feature

🙏 Acknowledgements

This project is not officially associated with SignalRGB. It's an independent client library created by the community for the community. Please do not report issues related to this client to the SignalRGB team.


Created by Stefanie Jane 🌠

If you find this project useful, consider buying me a Monster Ultra Violet!! ⚡️

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

signalrgb-0.9.5.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

signalrgb-0.9.5-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file signalrgb-0.9.5.tar.gz.

File metadata

  • Download URL: signalrgb-0.9.5.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.5.0-1024-azure

File hashes

Hashes for signalrgb-0.9.5.tar.gz
Algorithm Hash digest
SHA256 85ea72412d8dfc7d0adb2932b63dd13040f14a601ed25773ee40d2a1e660c0ab
MD5 4684976bb153aee2459294e7fc46a3d1
BLAKE2b-256 e27ded26993822d920e56e6db657f6289e44ce8f5ab77544cf97cfb93a070a2b

See more details on using hashes here.

File details

Details for the file signalrgb-0.9.5-py3-none-any.whl.

File metadata

  • Download URL: signalrgb-0.9.5-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.5.0-1024-azure

File hashes

Hashes for signalrgb-0.9.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5ff164e1b39bd736b7bf0a130068ed3d4b134e9a2ab30c1e5db7357d992d3f60
MD5 7748355165fb4fbd5e5749aa7869d920
BLAKE2b-256 88f3d61064e058bf2ea06c41143c494aed60fb53771aa6e36a66f75db63c4cf2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page