- Notifications
You must be signed in to change notification settings - Fork12
DMX lighting Integration for Home Assistant. Using the HA Color Mode update and Pyartnet library to control lights in multiple DMX universes over ethernet with the Art-Net protocol.
License
Breina/ha-artnet-led
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Updated integration Supporting the new color mode in Home Assistant. leveraged heavily formspacemanspiff2007 andjnimmoNow supports 16 bit resolution (also supports 24 bit and 32 bit but I don't know of a DMX controller that would use it)Use Brightness and RGB value separately to give more resolution to brightness to be able to make use of 16 bit resolution
The DMX integration for Home Assistant allows you to send DMX values to anArt-Net capable DMX interface. This component is a one way integration which sendsArt-Net UDP packets to the DMX interface. This integration usespyartnet libraries and requires at least Python version 3.8.
Note
This integration requiresHACS to be installed
Warning
When migrating from jnimmo or corb3000's integration:
- First remove the integration
- Comment or remove the YAML config
- Restart
- Delete the light entities
- Remove all otherCustom_repositories that are also named
ha-artnet-led
- Install this integration and re-introduce the config (also change change
custom_white
tocolor_temp
)
- Open HACS
- Open the options in the top right and selectCustom repositories
- Enter this repository's URL (
https://github.com/Breina/ha-artnet-led
) under the CategoryIntegration. - PressAdd
- + EXPLORE & DOWNLOAD REPOSITORIES
- FindArt-net LED Lighting for DMX in this list
- DOWNLOAD THIS REPOSITORY WITH HACS
- DOWNLOAD
- Restart Home Assistant (Settings >System >RESTART)
hass-dmx is a community supported Home Assistant integration, if you have any questions you can discuss with theHome Assistant DMX Community.
artnet-led lighting is configured in theconfiguration.yaml
file under thelight domain.
Example:
light:-platform:artnet_ledhost:IP# IP of Art-Net Nodemax_fps:25# Max 40 per secondrefresh_every:0# Resend values if no fades are running every x seconds, 0 disables automatic refreshnode_type:artnet-direct# Which protocol to useuniverses:# Support for multiple universes0:# Nr of Universe (see configuration of your Art-Net Node)send_partial_universe:True# Only send the universe which contains dataoutput_correction:quadratic# optional: output correction for the whole universe, will be used as default if nothing is set for the channeldevices:# Dimmer -channel:1# first channel of dmx dimmername:my_dimmer# nametype:dimmer# typetransition:1# default duration of fades in sec. Will be overridden by Transition sent from HAoutput_correction:quadratic# optional: quadratic, cubic or quadruple. Apply different dimming curves to the output. Default is None which means linear dimmingchannel_size:16bit# width of the channel sent to DMX device, default "8bit", "16bit", "24bit" and "32bit" available. -channel:3name:my_rgb_lamptype:rgbtransition:1channel_size:16bitoutput_correction:quadraticchannel_setup:rbgw# Auto-calculated white channel -channel:125type:color_tempname:"my_color_temp_lamp"min_temp:2500Kmax_temp:6500Kchannel_setup:ch -channel:41type:rgbwwname:my_rgbww_lamptransition:10 -channel:50name:sp4led_1_dimmertype:fixedchannel_setup: -255
- host (Required): Art-Net/DMX gateway address
- port (Optional; default=6454 (Art-Net), 5568 (sACN), 6038 (KiNet)): DMX gateway port. This is directly hardcoded into the respective protocols, so don't change this if you're not very certain.
- max-fps (Optional; default=25): frame rate for fade update (1 to 40 FPS)
- refresh_every (Optional; default=120): Seconds to resend values if no fades are running, 0 disables.
- node_type (Optional; default=artnet-direct): the protocol to use
- 'artnet-direct': Directly sends DMX packets to a single node's IP.
- 'artnet-controller': Auto-discovers ArtNet nodes and other controllers, can be picked up by other controllers. Will allow Home Assistant lights to be updated through DMX input.
- 'sacn': The E1.31 sACN protocol, directly sending to a node's IP.
- 'kinet': The KiNET, directly sending to a node's IP.
- universe (Required): Art-Net universe for following DMX channels.
- send_partial_universe (Optional; default=True): Some controllers only accept full DMX frames. Set to
False
to always send the full 512 channels to every universe. - output_correction (Optional; default=linear): applied to whole universe
- 'linear'
- 'quadratic' (see Graph)
- 'cubic' (see Graph)
- 'quadruple' (see Graph)
- send_partial_universe (Optional; default=True): Some controllers only accept full DMX frames. Set to
- channel (Required): The DMX channel for the light (1-512)
- name (Required): Friendly name for the light
- type (Optional; default=dimmer):
- 'fixed' (fixed single channel)
- 'binary' (single channel)
- 'dimmer' (single channel)
- 'rgb' (red, green, blue)
- 'rgbw' (red, green, blue, white)
- 'rgbww' (red, green, blue, cool-white, warm-white)
- 'color_temp' (cool-white, warm-white)
- transition (Optional; default=0): Duration in seconds of the fading animation
- output_correction (Optional; default=linear): applied to each channel, overrides universe setting.
- 'linear'
- 'quadratic' (see Graph)
- 'cubic' (see Graph)
- 'quadruple' (see Graph)
- channel_size (Optional; default= 8bit): width of the channel sent to DMX device.
- '8bit' (255 steps)
- '16bit' (65k steps)
- '24bit' (too many steps)
- '32bit' (don't ask steps)
- byte_order (Optional; default=big): For multi-byte channels, the bytes can be little-endian or big-endian.
- min_temp (Optional; default=2700K): Only applies for types 'color_temp' and 'rgbww'
- max_temp (Optional; default=6500K): Only applies for types 'color_temp' and 'rgbww'
- channel_setup (Optional; seechannel_setup)
A string or list to customize the channel layout of your light.If a list is provided, fixed numeric values may be included.
channel_setup:Wrgb
White unscaled, red, green, blue
channel_setup: -W -r -g -b
Same as above
channel_setup: -W -r -128 -b
Staticly sets the green channel on 50% brightness
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
= saturation- [
0
,255
] = static value between the range [0, 255]
Type | Default value | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 |
* In the case of a white channel being used in an RGB light fixture, the white channel is automatically calculated.
- Color-Mode.This allows full independent control over: RGB setting, RGB brightness, Cool White brightness and Warm white brightness. with a separate over all brightness control. This allows you to sent the color and white levels to any value independently and then adjust the brightness of the whole light without affecting the color of the light.
- 16 bit DMX output.taking advantage of the separate brightness settings and the overall brightness allows lights to be dimmed to very low levels and still have a smooth fade due to the 65K steps you get from 16 bit
- Transition time can be specified through services to fade to a color (for RGB fixtures) or value. This currently is set to run at 25 frames per second.
- Brightness: Once a channel is turned on brightness can be controlled through the Home Assistant interface.
- Color temperature: For dual channel warm white/cool white fixtures this tunes the white temperature.
The graph shows different output depending on the output correction.
Quadratic or cubic results in much smoother and more pleasant fades when using LED Strips.The graph shows different output depending on the output correction.
From left to right:linear (default when nothing is set), quadratic, cubic then quadruple
LEDS must be in same order as shown in channel
Notes DMX king eDMX4 Pro does not seem to work if you have send less than 16 channels. Work around just add a dummy light at channel 16 or higher
- Lights are assigned a unique ID generated from the IP addreess, Port, Universe and Channel.
- Should work with any Art-Net, KiNet or e1.31 sACN enabled DMX interface.
- Artnet interface tested on DMX King eDMX4 and ENTTEC DIN Ethergate 2.
- e1.31 sACN interface tested on esPixelStick and Falcon F16v2
Art-Net™ Designed by and Copyright Artistic Licence Holdings Ltd
To enable debug logging for this component:
logger:logs:custom_components.artnet_led:debug
Art-Net™ Designed by and Copyright Artistic Licence
About
DMX lighting Integration for Home Assistant. Using the HA Color Mode update and Pyartnet library to control lights in multiple DMX universes over ethernet with the Art-Net protocol.
Topics
Resources
License
Stars
Watchers
Forks
Packages0
Languages
- Python99.4%
- Dockerfile0.6%