Professional DMX lighting control for Ctrlable Pro. Drive Art-Net, sACN (E1.31) and KiNET fixtures directly from Ctrlable Pro — configured entirely in the UI with a visual Art-Net Patch panel for laying out universes and fixtures. No YAML required.
This is the source repository (private). The installable build lives at
Ctrlable/artnet-controller. Published builds ship as obfuscated panel JS and compiled native (abi3) Python — the source here is the plain, readable original.
- UI-first — discover or add nodes, patch fixtures, and assign entities without touching a config file.
- Visual patch panel — drag fixtures onto a 512-channel grid per universe; overlaps and channel-512 overflow are flagged live.
- Every fixture is an entity — each Art-Net node becomes a device; every
patched fixture becomes a
lightentity grouped under it. - Rich color handling — independent RGB + cool/warm white + master brightness, 16-bit DMX output, and smooth transitions at the node's max FPS.
- Output correction curves — per-universe and per-fixture
linear,quadratic,cubic,quadrupleresponse for clean LED fades. - Reusable fixture profiles — save a fixture's channel layout as a named profile and reapply it across patches.
- Broad protocol + hardware support — any Art-Net, sACN (E1.31) or KiNET interface.
- Ctrlable Pro 2024.12 or newer.
- A DMX-over-IP interface (Art-Net / sACN / KiNET) reachable on the local network.
- An Artnet Controller license (issued from the Ctrlable portal). The integration runs a one-time license gate; see Licensing.
- In HACS → ⋮ → Custom repositories, add
https://github.com/Ctrlable/artnet-controllerwith category Integration. - Search for Artnet Controller, Download, and restart Ctrlable Pro.
Updates are delivered through HACS. The native modules load from a per-build cache, so in-place HACS updates apply cleanly without disrupting the running process.
Artnet Controller is a licensed Ctrlable product. On first setup, open the Art-Net Patch panel (or the integration's options) and paste the license key issued for your instance from the Ctrlable portal. The license is verified offline against an embedded public key and re-checked periodically; one license covers the whole installation (all nodes on the instance).
- Settings → Devices & Services → Add Integration → "Artnet Controller".
- Choose Scan (ArtPoll discovery) or Manual (enter the node's IP). An entry and device are created.
- Open the Art-Net Patch panel from the sidebar:
- Pick the node (or + Add to scan/create one).
- Set node options (port, protocol, max FPS, refresh).
- Add universes, then place fixtures on the 512-channel grid; overlaps and overflow past channel 512 are flagged.
- Save — the entry reloads and the
lightentities appear under the node's device.
- Fixtures can also be added/removed from the entry's Configure (options) dialog without the panel.
Removing the integration entry removes its entities and frees the node's UDP socket.
dimmer, binary, fixed, color_temp, rgb, rgbw, rgbww, xy.
A string customizing the channel layout of a fixture (entered in the panel's
fixture inspector, or as channel_setup in the options dialog). For example
Wrgb = white (unscaled), red, green, blue. Numeric entries set a static value.
d= dimmer (brightness 0 to 255)c= cool white value, scaled for brightnessC= cool white value, unscaledh= warm white value, scaled for brightnessH= warm white value, unscaledt= temperature (0 = warm, 255 = cold)T= temperature (255 = warm, 0 = cold)r= red, scaled for brightnessR= red, unscaledg= green, scaled for brightnessG= green unscaledb= blue, scaled for brightnessB= blue, unscaledw= white, scaled for brightnessW= white, unscaledu= hueU= saturationx= X value in XY color modey= Y value in XY color mode- [
0,255] = static value between the range [0, 255]
| Type | Static | Default | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| fixed | [0,255] |
0 |
|||||||||||||||||||
| binary | [0,255] |
0 |
|||||||||||||||||||
| dimmer | [0,255] |
0 |
|||||||||||||||||||
| color_temp | d |
c |
C |
h |
H |
t |
T |
[0,255] |
ch |
||||||||||||
| rgb | d |
r |
R |
g |
G |
b |
B |
w* |
W* |
u |
U |
[0,255] |
rgb |
||||||||
| rgbw | d |
r |
R |
g |
G |
b |
B |
w |
W |
u |
U |
[0,255] |
rgbw |
||||||||
| rgbww | d |
c |
C |
h |
H |
t |
T |
r |
R |
g |
G |
b |
B |
u |
U |
[0,255] |
rgbch |
||||
| xy | d |
[0,255] |
x |
y |
dxy |
* When a white channel is used on an RGB fixture, the white channel is automatically calculated.
- Color mode — independent control of RGB, cool/warm white and an overall brightness, so color and white levels can be set independently and dimmed as a whole without shifting color.
- 16-bit DMX output — 65k steps for smooth low-level fades.
- Transitions — fade to a color/value (runs at the node's max FPS).
- Brightness and color temperature (for tunable-white fixtures).
Per-universe and per-fixture output curves: linear (default), quadratic,
cubic, quadruple. Quadratic/cubic give smoother LED-strip fades.
DMX setups can produce many frequently-changing entities. To avoid database bloat, exclude them from the recorder, e.g.:
recorder:
exclude:
entity_globs:
- light.pixelstrip*- Any Art-Net, KiNET or sACN (E1.31) DMX interface.
- Tested: DMX King eDMX4, ENTTEC DIN Ethergate 2 (Art-Net); esPixelStick, Falcon F16v2 (sACN).
- No fixtures appear after saving — confirm the node is reachable (the panel shows node status) and that fixtures don't overflow past channel 512.
- Entities show as unavailable — the node isn't responding; check the IP, port and that no other controller holds the node's UDP socket.
- License prompt won't clear — re-paste the key from the portal and confirm the instance matches the one the license was issued for.
logger:
logs:
custom_components.artnet_controller: debugBased on Breina/ha-artnet-led by
corb3000 and contributors, distributed under the MIT License. Ctrlable's
config-entry conversion, patch panel, and licensing layer are additive; see
LICENSE, which retains the original copyright.
Art-Net™ Designed by and Copyright Artistic Licence Holdings Ltd.