A Python client for SignalRGB
Project description
🌈 SignalRGB Python Client
A powerful Python client library and CLI for controlling SignalRGB Pro
Features • Installation • Usage • API Reference • Development • Contributing • License
✨ 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 the SignalRGB Python Client using pip:
pip install signalrgb
Or if you prefer to use Poetry:
poetry add signalrgb
Prerequisites
- Python 3.12 or higher
- SignalRGB Pro (required for API access)
This library uses the SignalRGB REST API, which is only available in SignalRGB Pro.
🚀 Usage
Command-line Interface
The SignalRGB Python Client 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 the SignalRGB Python Client into your own Python projects with ease:
from signalrgb 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 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:
- Clone the repository:
git clone https://github.com/hyperb1iss/signalrgb-python.git cd signalrgb-python
- Install Poetry if you haven't already:
pip install poetry
- Install dependencies:
poetry install
- Activate the virtual environment:
poetry shell
To run tests:
pytest
To run linting:
flake8
👥 Contributing
We welcome contributions from the community! Here's how you can help:
- Fork the repository
- Create a new branch:
git checkout -b feature-branch-name
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature-branch-name
- 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 helpful, consider buying me a coffee! ☕
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
File details
Details for the file signalrgb-0.2.1.tar.gz
.
File metadata
- Download URL: signalrgb-0.2.1.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/5.15.153.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5b8fbc7cbfcaa2c6b2e4d64a109cac7b81fc2583af890a02bce3cf880da4313 |
|
MD5 | 0d79aa4ea6996fc83f49fec06843b90f |
|
BLAKE2b-256 | f0bdfa96a1e60004519e7c658c7652ea387e680e235a68ffc78c574829e6420d |
File details
Details for the file signalrgb-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: signalrgb-0.2.1-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/5.15.153.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b6ce65912de81ce988383f3c3d394c7799366bdb9d63b3708ae1bc42818d173 |
|
MD5 | 748f43ffa83003248a6a6b4aff1db5ab |
|
BLAKE2b-256 | 629658d9cb85906d19c04a51e0cecf237c59f3f6f22cc28175a227435818ec31 |