Transform your smart home lighting with the power of SignalRGB, now integrated directly into Home Assistant!
Features โข Requirements โข Installation โข Configuration โข Usage โข Development โข Contributing โข Support
- ๐ Control SignalRGB as a light entity in Home Assistant
- โก Seamless on/off control
- ๐ญ Apply a wide range of lighting effects
- ๐ Adjust brightness of your entire SignalRGB setup
- ๐ View current effect and available effects list
- ๐งฌ Automatic effect image and color extraction
- ๐งฉ Select and apply effect presets
- ๐ Change layouts with the layout selector
- ๐ Navigate effects with next/previous/random buttons
Want more features? Vote for this SignalRGB feature request!
- Home Assistant 2025.3.0 or newer
- SignalRGB software installed and running on a Windows PC on your network
- SignalRGB HTTP API enabled (default port: 16038)
- SignalRGB Pro subscription (required for API)
- Ensure that HACS is installed in your Home Assistant instance.
- In the HACS panel, go to "Integrations".
- Click the "+" button in the bottom right corner.
- Search for "SignalRGB" and select it.
- Click "Install" and wait for the installation to complete.
- Restart Home Assistant.
Note: This component isn't in the official HACS repository yet. You can add it as a custom repository:
- Go to HACS
- Click on the three dots in the top right corner
- Select "Custom repositories"
- Enter "hyperb1iss/signalrgb-homeassistant" for the repository
- Select "Integration" for the category
- Click "Add"
- Download the
signalrgb
folder from this repository. - Copy the folder to your
custom_components
directory in your Home Assistant config directory.- If the
custom_components
directory doesn't exist, you'll need to create it.
- If the
- Restart Home Assistant.
Ensure that the SignalRGB API is enabled and accessible:
- Open SignalRGB on your Windows PC.
- Go to Settings > General > Enable HTTP API.
- Note the port number (default is 16038).
- If necessary, configure your Windows firewall to allow incoming connections on this port.
After installation, add the SignalRGB integration through the Home Assistant UI:
- Navigate to Configuration > Integrations.
- Click the "+" button to add a new integration.
- Search for "SignalRGB" and select it.
- Enter the hostname or IP address of the PC running SignalRGB and the port number.
- Click "Submit" to add the integration.
Once configured, SignalRGB will appear as several entities in Home Assistant:
- ๐ Light Entity: Control power, brightness, and effects
- ๐ Layout Selector: Change between different layouts
- โ๏ธ Effect Preset Selector: Apply presets for the current effect
- โฏ๏ธ Button Entities: Navigate through effects (next, previous, random)
The main light entity allows you to:
- ๐ก Turn it on/off
- ๐จ Select different effects from the effect list
- ๐ Adjust the brightness of your entire SignalRGB setup
- ๐ Include it in automations, scripts, and scenes
Example automation:
automation:
- alias: "Gaming Time"
trigger:
platform: state
entity_id: binary_sensor.gaming_pc_status
to: "on"
action:
- service: light.turn_on
target:
entity_id: light.signalrgb
data:
effect: "Cyberpunk 2077"
brightness: 255
The layout selector allows you to switch between different device layouts in SignalRGB:
# Example service call to change layout
service: select.select_option
target:
entity_id: select.signalrgb_layout
data:
option: "My Gaming Setup"
Example automation to switch layouts based on time of day:
automation:
- alias: "Evening Gaming Setup"
trigger:
platform: time
at: "20:00:00"
action:
- service: select.select_option
target:
entity_id: select.signalrgb_layout
data:
option: "Gaming Setup"
- service: light.turn_on
target:
entity_id: light.signalrgb
data:
effect: "Ambient Waves"
brightness: 200
Apply different presets for the current effect:
# Example service call to apply a preset
service: select.select_option
target:
entity_id: select.signalrgb_effect_preset
data:
option: "Rainbow"
Example script to set up a movie night ambiance:
script:
movie_night:
alias: "Movie Night Lighting"
sequence:
- service: light.turn_on
target:
entity_id: light.signalrgb
data:
effect: "Audio Visualizer"
- delay: 00:00:02 # Wait for effect to load
- service: select.select_option
target:
entity_id: select.signalrgb_effect_preset
data:
option: "Subtle Pulse"
- service: light.turn_on
target:
entity_id: light.signalrgb
data:
brightness: 128
Use the button entities to navigate through effects:
# Example service call to go to the next effect
service: button.press
target:
entity_id: button.signalrgb_next_effect
# Example service call to go to a random effect
service: button.press
target:
entity_id: button.signalrgb_random_effect
Example automation to cycle through effects every hour:
automation:
- alias: "Hourly Effect Change"
trigger:
platform: time_pattern
hours: "*"
condition:
- condition: state
entity_id: light.signalrgb
state: "on"
action:
- service: button.press
target:
entity_id: button.signalrgb_next_effect
Example dashboard button card configuration:
type: button
name: Next Effect
icon: mdi:skip-next
tap_action:
action: call-service
service: button.press
target:
entity_id: button.signalrgb_next_effect
To take your SignalRGB control to the next level, check out the hyper-light-card for Home Assistant! This custom card provides a beautiful, intuitive interface for controlling your SignalRGB setup, featuring:
- ๐ Dynamic color adaptation based on the current effect
- ๐ Detailed effect information display
- ๐ผ๏ธ Effect preview images
- ๐ง Easy effect switching and parameter control
To install hyper-light-card:
- Add it to HACS as a custom repository (Frontend category)
- Install it through HACS
- Add a new card to your dashboard and select "Hyper Light Card"
- Choose your SignalRGB entity
Experience the perfect blend of functionality and aesthetics with hyper-light-card and SignalRGB!
This project uses UV for dependency management and packaging. To set up the development environment:
- Install UV
curl --proto '=https' --tlsv1.2 -sSf https://astral.sh/uv/install.sh | sh
- Clone the repository:
git clone https://github.com/hyperb1iss/signalrgb-homeassistant.git
- Navigate to the project directory:
cd signalrgb-homeassistant
- Create a virtual environment and install dependencies:
uv venv .venv . .venv/bin/activate uv sync
- Install pre-commit hooks:
pre-commit install
- Run tests:
python -m pytest
- Run tests with coverage:
python -m pytest --cov=custom_components.signalrgb
- Lint code:
ruff check .
- Format code:
ruff format .
- Type check:
mypy custom_components/signalrgb/
We welcome contributions to the SignalRGB Home Assistant Integration! Here's how you can help:
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them using Gitmoji:
git commit -m ":sparkles: Add amazing feature"
- Push to the branch:
git push origin feature/your-feature-name
- Submit a pull request
Please ensure your code adheres to our style guidelines and passes all tests.
- ๐ For documentation and general questions, check out our Wiki.
- ๐ Found a bug? Open an issue.
- ๐ก Have a feature idea? Submit a feature request.
- ๐ฌ For general discussion, join our Discord community.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
This integration is not officially affiliated with or endorsed by WhirlwindFX or SignalRGB. Use at your own risk.
Created by Stefanie Jane ๐
If you find this project useful, buy me a Monster Ultra Violet! โก๏ธ