As a former stage technician I heavily support this! Smoke machines, moving heads, curtains, projectors, lasers and many more! Preferably with a way save sequences or shows, and start/end them with automated triggers. YES PLEASE!!!
It’s for some actual dmx lights? Not standard leds… i don’t need the sparkly for that do I?
Ah for DMX light themselves, just skip sparkly indeed.
Hi, I have installed this integration, but I can’t get it to work. I have communication with my ArtNet device on the network, and it seems that Home Assistant finds it. I have added a dimmer channel, but the ArtNet box does not receive any signals when I try to dim up or down this channel. I have attached the log from HA.
Is someone that can see what wrong in the log?
Configuration Yaml:
light:
- platform: artnet_led
host: 10.44.55.40 # IP of Art-Net Node
max_fps: 25 # Max 40 per second
refresh_every: 0 # Resend values if no fades are running every x seconds, 0 disables automatic refresh
node_type: artnet-controller # Which protocol to use
universes: # Support for multiple universes
1: # Nr of Universe (see configuration of your Art-Net Node)
send_partial_universe: False # Only send the universe which contains data
output_correction: quadratic # optional: output correction for the whole universe, will be used as default if nothing is set for the channel
devices:
# Dimmer
- channel: 1 # first channel of dmx dimmer
name: my_dimmer # name
type: dimmer # type
transition: 1 # default duration of fades in sec. Will be overridden by Transition sent from HA
output_correction: quadratic # optional: quadratic, cubic or quadruple. Apply different dimming curves to the output. Default is None which means linear dimming
channel_size: 16bit # width of the channel sent to DMX device, default "8bit", "16bit", "24bit" and "32bit" available.
Log:
<2024-03-14 12:15:44.145 WARNING (MainThread) [custom_components.artnet_led.client.artnet_server] Received Opcode None, which isn't supported yet!
2024-03-14 12:15:47.034 DEBUG (MainThread) [custom_components.artnet_led.client.artnet_server] Sending ArtPoll
2024-03-14 12:15:47.037 DEBUG (MainThread) [custom_components.artnet_led.client.artnet_server] Sleeping a few seconds before polling again...
2024-03-14 12:15:47.041 DEBUG (MainThread) [custom_components.artnet_led.client.artnet_server] Received ArtPoll from 10.44.55.91
2024-03-14 12:15:47.041 DEBUG (MainThread) [custom_components.artnet_led.client.artnet_server] Ignoring ArtPoll as it came from ourselves
2024-03-14 12:15:47.046 DEBUG (MainThread) [custom_components.artnet_led.client.artnet_server] Received ArtPollReply from ArtGate2, DMX-to-Ethernet bridge
2024-03-14 12:15:47.047 DEBUG (MainThread) [custom_components.artnet_led.client.artnet_server] 0x0001 Power-on tests successful
2024-03-14 12:15:47.047 DEBUG (MainThread) [custom_components.artnet_led.client.artnet_server] Existing node checking in 10.44.55.40@1 with 0:0:[0,1,0,0]
2024-03-14 12:15:47.047 DEBUG (MainThread) [custom_components.artnet_led.client.artnet_server] Addresses of the node at 10.44.55.40@1: {PortAddress(net=0, sub_net=0, universe=0), PortAddress(net=0, sub_net=0, universe=1)}>
Hi Nisy,
for me i uses
node_type: artnet-direct
and
channel_size: 8bit
Your log does look normal; it picks up the universe you configured.
The Art-Net controller should log when changing your dimmer;
log.debug(f"Sending ArtDmx to {ip_str}")
That, or give a warning when it won’t. We don’t see either in your logs, is it possible you grabbed your logs before changing your light entity?
Thanks for the reply. It turned out that it was the DMX input card on my dimmer that was not working. The integration works fine for me now.
I have been running into issues getting ha-artnet-led to talk to my KiNET device (a Philips Data Enabler Pro). After debugging, I’ve noticed a few differences in the UDP packets that are getting sent.
Packets and configuration in this reply, analysis and thoughts in the next.
The packet from Home Assistant looks like:
0000 04 01 dc 4a 01 00 01 01 00 00 00 00 00 00 00 00
0010 ff ff ff ff 48 ff ff ff ff ff ff ff ff ff ff ff
0020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0050 ff ff ff ff ff ff ff ff ff ff ff ff ff
while the packet from the first party software (QuickPlayPro2) looks like:
0000 04 01 dc 4a 01 00 01 01 45 ed 00 00 00 00 00 00
0010 ff ff ff ff 00 ff ff ff ff ff ff ff ff ff ff ff
0020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0050 ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0210 00 00 00 00 00
The relevant bit of my configuration.yaml file is:
light:
- platform: artnet_led
host: 192.168.0.198 # IP of Art-Net Node
node_type: kinet # Which protocol to use
universes: # Support for multiple universes
0: # Nr of Universe (see configuration of your Art-Net Node)
send_partial_universe: True # Only send the universe which contains data
devices:
- channel: 1
name: MLK Ceiling Center 1
type: rgb
transition: 0
- channel: 4
name: MLK Ceiling Center 2
type: rgb
transition: 0
- channel: 7
name: MLK Ceiling Center 3
type: rgb
transition: 0
- channel: 10
name: MLK Ceiling Center 4
type: rgb
transition: 0
- channel: 13
name: Alley Ceiling Loft 1
type: rgb
transition: 0
- channel: 16
name: Alley Ceiling Loft 2
type: rgb
transition: 0
- channel: 19
name: Alley Ceiling Loft 3
type: rgb
transition: 0
- channel: 22
name: Alley Ceiling Loft 4
type: rgb
transition: 0
- channel: 25
name: Alley Ceiling Center 1
type: rgb
transition: 0
- channel: 28
name: Alley Ceiling Center 2
type: rgb
transition: 0
- channel: 31
name: Alley Ceiling Center 3
type: rgb
transition: 0
- channel: 34
name: Alley Ceiling Center 4
type: rgb
transition: 0
- channel: 37
name: MLK Ceiling Loft 1
type: rgb
transition: 0
- channel: 40
name: MLK Ceiling Loft 2
type: rgb
transition: 0
- channel: 43
name: MLK Ceiling Loft 3
type: rgb
transition: 0
- channel: 46
name: MLK Ceiling Loft 4
type: rgb
transition: 0
- channel: 49
name: MLK Ceiling Art 1
type: rgb
transition: 0
- channel: 52
name: MLK Ceiling Art 2
type: rgb
transition: 0
- channel: 55
name: MLK Ceiling Art 3
type: rgb
transition: 0
- channel: 58
name: MLK Ceiling Art 4
type: rgb
transition: 0
- channel: 61
name: Alley Ceiling Art 1
type: rgb
transition: 0
- channel: 64
name: Alley Ceiling Art 2
type: rgb
transition: 0
- channel: 67
name: Alley Ceiling Art 3
type: rgb
transition: 0
- channel: 70
name: Alley Ceiling Art 4
type: rgb
transition: 0
Some things I have noticed:
-
The bytes sent from the QuickPlayPro2 software at positions 0008 and 0009 (‘45 ed’) are sequence numbers, which monotonically increase for each packet sent, but other Internet forums indicate that some other (correctly functioning) software packages always send ‘00 00’ as the sequence number.
-
The ha-artnet-led code sends ‘48’ in position 0014, whereas the 1st party software sends ‘00’. This is consistent across the different light patterns and commands I sent.
-
The 1st party tool always sends the entire universe
-
Changing the parameter ‘send_partial_universe’ in the yaml to “False” caused ha-artnet-led to stop sending any UDP data in my tests.
-
Changing the universe value in the YAML file did not change the UDP packet in any way I could see.
These are all the differences I noticed, but was not able to chase down where the ‘00’ vs ‘48’ was coming from. I’m happy to pull additional data or help with/test a new branch if desired!
think I might just be doing something dim here, but, I have the pknight dongle plugged into a DMX RGB floodlight thing, I’ve installed HACS, the artnet repo, and added this to my configuration yaml (I can ping the host ok):
light:
- platform: artnet_led
host: 192.168.0.100 # IP of PKnight node
max_fps: 25 # Max 40 per second
refresh_every: 0 # Resend values if no fades are running every x seconds, 0 disables automatic refresh
node_type: artnet-direct # Which protocol to use
universes: # Support for multiple universes
0: # Nr of Universe (see configuration of your Art-Net Node)
send_partial_universe: True # Only send the universe which contains data
output_correction: quadratic # optional: output correction for the whole universe, will be used as default if nothing is set for the channel
devices:
- channel: 1
name: my_rgb_lamp
type: rgb
transition: 1
channel_size: 16bit
output_correction: quadratic
I’ve added the custom rgb light card, but I can’t see the device defined above? I’m assuming it should be light.my_rgb_lamp but I can only see things I defined in esphome - is there somewhere particular it should be in the config file??
Two thoughts:
- When I update the YAML for HACS repositories, I frequently find that it requires full reboot, the YAML-only reboot is unreliable.
- For me (and I am assuming for other people), artnet_led creates entities not devices. See this article for more information
Hi niffers,
yes it should be called light.my_rgb_lamp
but i see you put a space in front of the “-” i have it lined up with “light:” i have modified what i use with what you had in your setup. give it a try.
light:
- platform: artnet_led
host: 192.168.0.100 # IP of PKnight node
max_fps: 25 # Max 40 per second
refresh_every: 0 # Resend values if no fades are running every x seconds, 0 disables automatic refresh
node_type: artnet-direct # Which protocol to use
universes: # Support for multiple universes
0: # Nr of Universe (see configuration of your Art-Net Node)
send_partial_universe: True # Only send the universe which contains data
output_correction: quadratic # optional: output correction for the whole universe, will be used as default if nothing is set for the channel
devices:
# Dimmer
- channel: 1
name: my_rgb_lamp
type: rgb
transition: 1
channel_size: 16bit
output_correction: quadratic
channel_setup: rgb # Auto-calculated white channel
Oh thankyou @SquirrelRange ! yaml will be the death of me! After that edit and a full reboot (thanks @Brian.a - yes I meant entity not device, my brain was a bit pickled - I could see sensor.hacs ), it appears.
It doesn’t do anything, so far as I can tell, but I can see the entity!
Hi, I am relatively new to the Home Assistant but I have already completed integration and Dashboards for all my devices (~100). However, I dont know much and very new to the DMX world. I bought (on transit) a new RGB line scanning laser light from KTV Lights which can be DMX controlled. I also purchased (on transit) a Pknight Wireless DMX Easynode which supports ArtNet, I plan to use this in router mode and control it over my WiFi network (there are few iOS Apps that claim support). I am hoping that I can wirelessly DMX control my laser light, to be proved of course. My laser light supports 10 channels and I know what values (1-255 = 8bit) I want to set to each channel.
Can I please check if anyone knows if I could use this HA integraton for the following:
- Connect and send DMX values from HA to the Pknight Easynode?
- In the type value should I use fixed, rgb, dimmer or something else?
- Where do I set the value for that channel, e.g. set channel 1 to a value of 128 and channel 2 to a value of 192?
- Is there a way from HA to create different scenes (e.g. a combination of channel values) and call up different scenes from HA dashboard. For example Scene 1 (Ch1=10,Ch2=20,Ch3=30…) and Scene 2 (Ch1=20,Ch2=30,Ch3=40…)
Many Thanks for any guidance here!!
Hi VasMan,
For part 1 you will need to figure out what of the 10 channels does what.
For 10 channel lights you could probably turn it into a couple controls but you will need to find out what each channel does and then brake it into different faders.
for the RGB part you can use a
- channel: 2
name: my_rgb_lamp
type: rgb
transition: 1
channel_size: 8bit
output_correction: quadratic
channel_setup: rgb
for a anything that just needs a number to be placed you can use a dimmer
- channel: 1 # first channel of dmx dimmer
name: my_number # name
type: dimmer # type
transition: 0 # default duration of fades in sec. Will be overridden by Transition sent from HA
output_correction: linear # optional: quadratic, cubic or quadruple. Apply different dimming curves to the output. Default is None which means linear dimming
channel_size: 8bit
use the type to choose what you are trying to send. like if one change is laser on/off that is pro able a fixed or binary.
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)
Part 3 if each channel has a 1-255 value then it is 8bit.
Part 4 HA has something called scenes you can assign all the controls for 1 light and then save its state to a scene and recall it at one time.
Thanks so much for your response, was very helpful! All my channels are dimmer channels
I have now created a quick dashboard and waiting for the Laser light and DMX Easynode to arrive to test it
DMX Easynode arrived in today, HA integration for all DMX channels and Scenes worked perfectly
Thanks once again!
Hello,
A reddit user mentioned that PKNight DMX Wifi node doesn’t support Artnet in Router Mode (DMX Wifi Node is connected to Access Point), is that the case? Have you connected Home Assistant directly to PKNight DMX Node?
Works fine in my setup, Pknight easynode is WiFi connected to my WiFi network and HA connects to it on the same default network (or different VLAN) using the IP assigned to it by my DHCP server, HA sets the values on the DMX channels with no issue.
If I may ask, you did DMX device addressing via RDM or manual method via device dip switches? I believe HA integration doesn’t support RDM now.
May I know of any softwares that do RDM addressing via ARTNET? There are devices like DMXCat that does RDM addressing, I’m trying to postpone their purchase for now.
ARTNet configuration / universe assignment can also be done by software, correct? Noob here, kindly help.