Transform your smart home lighting with the power of SignalRGB, integrated directly into Home Assistant.
Features • Requirements • Installation • Configuration • Usage • Development • Contributing
- 🌐 Control SignalRGB as a light entity in Home Assistant
- 💡 Seamless on/off control with brightness adjustment
- 🎭 Apply lighting effects from SignalRGB's full effect library
- 🧬 Automatic effect image and color extraction
- 🧩 Select and apply per-effect presets
- 📐 Change device layouts with the layout selector
- 🪄 Navigate effects with next / previous / random buttons
- ⚡ Single-shot state polling (one API call per coordinator cycle)
Want more features? Vote for this SignalRGB feature request!
- Home Assistant 2026.4.0 or newer
- Python 3.14.2 or newer (matches Home Assistant's floor)
- SignalRGB installed and running on a Windows PC reachable from your HA instance
- SignalRGB HTTP API enabled (default port:
16038) - SignalRGB Pro subscription — the HTTP API requires Pro
This integration is in the HACS default repository:
- Open HACS in Home Assistant
- Go to Integrations and click the + button
- Search for SignalRGB and select it
- Click Download and restart Home Assistant
- Download the latest release from the releases page
- Copy the
custom_components/signalrgb/folder into your Home Assistantcustom_components/directory - Restart Home Assistant
- Open SignalRGB on your Windows PC
- Go to Settings → General → Enable HTTP API
- Note the port number (default:
16038) - If needed, allow incoming connections on that port in Windows Firewall
After installation, add the integration from the Home Assistant UI:
- Navigate to Settings → Devices & Services
- Click Add Integration and search for SignalRGB
- Enter the hostname or IP address of the PC running SignalRGB and the port number
- Click Submit
Once configured, SignalRGB exposes several entities:
- 💡 Light Entity — power, brightness, and effect selection
- 📐 Layout Selector — switch between SignalRGB device layouts
- 🧩 Effect Preset Selector — apply presets for the current effect
- 🪄 Button Entities — navigate effects (next, previous, random)
The main light entity lets you turn SignalRGB on/off, select effects, and adjust brightness — all from automations, scripts, and scenes.
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: 255Switch between SignalRGB device layouts:
service: select.select_option
target:
entity_id: select.signalrgb_layout
data:
option: "My Gaming Setup"Automation example — switch layout in the evening:
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: 200Apply presets for the current effect:
service: select.select_option
target:
entity_id: select.signalrgb_effect_preset
data:
option: "Rainbow"Movie-night script example:
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
- 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# Next effect
service: button.press
target:
entity_id: button.signalrgb_next_effect# Random effect
service: button.press
target:
entity_id: button.signalrgb_random_effectCycle effects every hour while the light is on:
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_effectDashboard button card:
type: button
name: Next Effect
icon: mdi:skip-next
tap_action:
action: call-service
service: button.press
target:
entity_id: button.signalrgb_next_effectTake your SignalRGB control to the next level with hyper-light-card — a custom Lovelace card featuring:
- 🌈 Dynamic color adaptation based on the current effect
- 📊 Detailed effect information display
- 🖼️ Effect preview images
- 🎛️ Easy effect switching and parameter control
Install via HACS as a custom repository in the Frontend category.
This project uses the Astral stack — uv for packaging, ruff for linting and formatting, and ty for type checking.
# Install uv (one-time)
curl --proto '=https' --tlsv1.2 -sSf https://astral.sh/uv/install.sh | sh
# Clone and set up
git clone https://github.com/hyperb1iss/signalrgb-homeassistant.git
cd signalrgb-homeassistant
uv sync
# Install pre-commit hooks
uv run pre-commit install| Command | What it does |
|---|---|
make test |
Run the test suite |
make coverage |
Tests with coverage (HTML report in htmlcov/) |
make lint |
ruff check + ruff format --check |
make typecheck |
ty check |
make check |
lint → typecheck → test (the full gauntlet) |
make format |
Format with ruff |
make fix |
Auto-fix lint issues + format |
All commands run through uv run — no virtualenv activation needed.
Contributions are welcome!
- Fork the repository
- Create a branch:
git checkout -b your-feature-name - Make your changes, commit using Gitmoji conventions
- Run
make checkto verify lint, types, and tests all pass - Open a pull request
Apache License 2.0 — see LICENSE 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 💜