DMX lighting

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. :slight_smile:

1 Like

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
1 Like

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
1 Like

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?

https://www.reddit.com/r/lightingdesign/comments/ztup58/review_of_a_few_cheap_dmx_lights_and_accessories/

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.