DMX lighting

I am very new to DMX, my first ever DMX device to plug-in to my DMX capable device was the Pknight Easynode and I will probably stop there as it covers my use case, i.e. not planning to spend more time to learn about DMX or do more advanced things.

With the above in mind, I setup the DMX address on my Laser light from the unit directly and then plugged in the Pknight Easynode at the back, have not used any SW to configure DMX addresses. And then configured the below on HA conguration.yml file. So it was very simple and worked straight away.

light:
  - platform: artnet_led
    host: 192.168.0.202
    max_fps: 25                           
    refresh_every: 0                      
    node_type: artnet-direct              
    universes:                            
      0:                                  
        send_partial_universe: True       
        output_correction: linear         
        devices:
          - channel: 1
            name: laser_mode
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 2
            name: laser_mode_number
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 3
            name: laser_angle_control
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 4
            name: laser_horizontal_angle
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 5
            name: laser_vertical_angle
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 6
            name: laser_horizontal_position
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 7
            name: laser_vertical_position
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 8
            name: laser_pattern_size_control
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 9
            name: laser_color_control
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear
          - channel: 10
            name: laser_node_control
            type: dimmer
            transition: 0
            channel_size: 8bit
            output_correction: linear

My DMX Node is on the way and will try this. Thanks again.

I’m using this implementation GitHub - Breina/ha-artnet-led: 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. and works like a charm with parcans and moving heads, so HA for silly stage lighting =)

is there any option to start and stop transmitting on art net? if you have more than one controller in the network and you want to start and stop home assistant to transmit or not?

Got Ltech wireless DMX node, Ltech Artnet-DMX node, LTech DMX Decoders and noticed these two things:

  1. Delay sometimes in turning on / off - definitely inconsistent.
  2. Doesn’t turn on / off at times, no errors in logs

I’ll change wiring tomorrow to see if there’s any issue there. Even if that doesn’t help, will get another pair of wireless DMX nodes and test the setup. Not a range issue, wireless nodes are 3 meters away from each other.

I had higher expectations with this, but let down with delays / trigger errors. Otherwise, setup was super smooth and things worked with initial attempt itself.

If the option refresh_every is set to 0, then HomeAssistant won’t send anything periodically, only when calling the light service.

Further, if you have a separate ArtNet controller and use node_type: artnet-controller, your HomeAssistant will be updated when that other controller starts sending.

Yeah it does have that, sorry about that. I’m not 100% sure, but I think it’s because our integration runs asynchronously and HA doesn’t immediately run out threads. Would be better to have the ArtNet controller run as an addon, so that we have all the CPU time we could need.

I’ve ordered one of these DMX dimmer/decoders from Waveform Lighting:

This is my first exposure to DMX, aha, so still figuring this out.

If I want to control the above from HomeAssistant - it seems I need some kind of USB or Ethernet, bridge, is that right?

I was looking at either the eDMX1 Max or the ultraDMX MAX.

Which of those two would be suitable for HA control for DMX here? (The USB one is slightly cheaper - but not sure if the Ethernet version provides any special features that might be useful?)

Does the Waveform dimmer/decoder box look like it’d be accessible using the GitHub - Breina/ha-artnet-led: 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.?

I’m using the eDMX hardware, and it works great. It has been running for years with no interaction. You will want one of the ethernet devices, however, this integration doesn’t allow you to connect the USB devices to HA.

Hello Bryan,

Just to be clear; you don’t have any missed Artnet commands? For me, couple of toggle / dimming commands get lost (wired setup), and they are around 5 - 10%.

I’m using DMX for simple dimming only, no effects etc. If there are 100 steps in transitions, I understand 1 or 2 missed steps may not make difference. But for simple dimming, toggle command can’t be lost.

I haven’t noticed; I am using the interface to drive LED architectural lighting fixtures installed on the house. Usually, it’s static lighting, so I may not have noticed jerky transitions in the past.

Hello guys, i recently learned about the Midimonster plugin. It should be compatible with midi and DMX. At the moment i have no DMX stuff to test this with, but i’m curious to what you guys think of it.

I can’t get it to work.
Lookin in my firewall there are some packets sent, when HA starts, but after this, hardly traffic noticable…

The setup itself works, Q Lightcontroller does work.

Config lines are:

light:
- platform: artnet_led
  host: 192.168.128.71                              # IP of Art-Net Node
  max_fps: 40                           # 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 artnet-direct, sacn
  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: linear      # optional: output correction for the whole universe, will be used as default if nothing is set for the channel
      devices:
        - channel: 1                    # first channel of dmx dimmer
          name: 5rgbw_dimmer               # name
          type: dimmer                  # type
          transition: 1                 # 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           # width of the channel sent to DMX device, default "8bit", "16bit", "24bit" and "32bit" available.
        - channel: 2
          name: 5rgbw_strobe
          type: dimmer
          transition: 1
          channel_size: 8bit
          output_correction: linear    
....

channel size 1-24 26-32

What could it be, preventing HA from sending packages?
Rest of installation works well. Q Light Controller works flawless with artnet node.

  1. Irregular sending of packets. Sometimes pakets are sent, most time not. none of it changes the artnet node. I can’t find a pattern here.
udp 	10.10.100.16:36413 -> 192.168.128.71:6454 	510 / 0 	39 KiB / 0 B 
  1. So even when pakets are sent, the “Node 2 Eletroconcept” Artnet Node does not do anything. With signals from Q Lightconcoller it works as expected. Why do the packets not change the dmx node?

In a classic DMX-512, there are 512 channels, each of which can be commanded to have a value from 0 to 255. A device can consume several DMX channels for its control. For instance, this head uses 12 channels, to control color, pan, tilt, zoom, gobo, effect, etc.

Looking at the docs of the PyArtNet library underlying the HA component for Art-Net LED, PyArtNet — PyArtNet documentation , this simple terminology is already messed with, introducing the notion of

channel width (int) – how many values the channel has

… so the DMX Device in PyArtNet is now a Channel, and a DMX Channel in PyArtNet is one of the units making up “channel width” i.e. what in DMX is simply how many of the DMX channels a DMX device uses.

PyArtNet also adds

byte_size (int) – byte size of a value

… which with a shot of whiskey my brain recognizes as the channel BYTE depth parameter, with 1 being a BIT depth of 8 and hence the device’s value in question being able to be controlled with the precision / fidelity of 256 distinct levels, 2 being a BIT depth of 16 and hence 65,536 distinct levels, and so on.

The HA component for Art-Net LED GitHub - Breina/ha-artnet-led: 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. , however, doubles down on that confusion with

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)

… straight up conflating PyArtNet’s Channel Width (DMX channel count of a device) and PyArtNet’s Byte Size (bit depth/precision of a channel’s value) into Channel_size that’s its WIDTH but its value corresponds to STEPS (of value?). Yeah.

I suspect, folks who got this stack working at all did so by coincidence of the right bytes falling into the right places (perhaps with the DMX controller throwing away some extra bytes or whatnot). Maybe this is the root of your problem. On a hunch, in your config, going off the name “5rgbw_dimmer”, instead of “type: dimmer” try ‘rgbw’ (if one white) or ‘rgbww’ (red, green, blue, cool-white, warm-white).

Actually, scratch that, start with defining just one individual channel 1 (with the depth and width set at 1 byte =8 bits) and nothing else. See if you get anything light up. Add incrementally. If that fails to work, try setting send_partial_universe: False and just define all 512 individual channels that way and see if that gives you any response at the lights.

Best of luck!

1 Like

Thanks for your verbose answer. Hopefully I’ll have some time tomorrow, to recheck this.
the 5 rgbw_dimmer is some - surpisingly nice - light, which is configured for 24 channels. It has 5 LEDs ‘spots’, each with RGBW, which makes 20 channels alone and the other 4 are for… effects, sensitivity and such.

The ArtNet Node, is very basic (and kinda cheap), but has some nice feature: a table where it shows it’s values.
If I set them via Q Light Controller, everything works.
Trying to set them via this HA Plugin - nothing shows up.

I really wonder if the reason may have something todo with the differences Brian showed in his post on 24.03.24. :wondering:

Taking note. I promise to make this better next revision. Thanks for the write-up!

1 Like

Art-Net / DMX beginner here, looking for some config help.

My setup is as follows:
Pknight ArtNet controller5-Channel DMX512 Decoderrgbww (rgb + tunable white) LED strip

I’m confused on what my light: config for breina/ha-artnet-led should look like for this config, and would love any help or advice. I assume it will be something like the following:

light:
- platform: artnet_led
  host: !secret artnet_ip               # IP of Art-Net Node
  max_fps: 25                           # Update 25 times per minute
  refresh_every: 0                      # Resend values if no fades are running every x seconds, 0 disables automatic refresh
  node_type: artnet-direct              # No other controllers on the network
  universes:                            # Support for multiple universes
    0:                                  # Nr of Universe (see configuration of your Art-Net Node)
      output_correction: quadratic      # optional: output correction for the whole universe, will be used as default if nothing is set for the channel
      devices:
        # RGB+Tunable White LED Strip
        - channel: 1                    # first channel of dmx dimmer
          name: led_strip               # name
          type: rgbww                   # type
          transition: 1                 # default duration of fades in sec. Will be overridden by Transition sent from HA
          output_correction: quadratic  # optional: quadratic dimming curve
          channel_size: 16bit           # width of the channel sent to DMX device

Things I’m unclear about:

  • Do I only define one “channel” in the config even though the RGBWW is technically 5 channels on the DMX decoder?
  • Do I need to define channel_setup?
  • The data sheet for the DMX512 decoder has details about a lot of possible settings, including DMX Channel Setting, PWM Output Resolution, PWM Frequency and a bunch of Decoding Modes that don’t make a lot of sense to me in this context. Should I be expecting to customize these settings on the DMX Decoder to work with the HA integration?

I believe the Decoder channels are as follows:
1/ Red
2/ Green
3/ Blue
4/ Warm White
5/ Cool White

Any advice would be welcome, thanks!

Update, I figured it out! At first it was acting weird, the channels were not lining up correctly, and the fades had all kinds of weird blinking (I also had warm white and cool white wires reversed). However, when I simplified the config, everything seems to have snapped into place:

light:
  - platform: artnet_led
    host: !secret artnet_controller_ip
    max_fps: 25 
    refresh_every: 0 
    node_type: artnet-direct
    universes: 
      0: 
        output_correction: quadratic 
        devices:
          # RGB+Tunable White LED Strip
          - channel: 1
            name: dmx_rgbww_led
            type: rgbww

More testing to do, but super happy so far! Thanks for the work on this integration!

1 Like

I’m about to set up the DMX infrastructure to have literally every light in our house running on HomeAssistant and this DMX add-on :slight_smile: approx 160 dmx channels!

Question I can’t seem to figure out is, should I place all the DMX decoders in a central rack close to the 24vdc power supplies or should I place them distributed across the house, closer to the LEDs tucked away in false ceiling? My decoders are a combination of LTECH32, BINCOLOUR 4ch 12ch, 24ch. All 24v

Keeping everything central takes up substancial rack space but allows for easier configuration and troubleshooting, closer proximity to power supplies. Will it work either way or should I follow specifc approach?

I have both, I’ll share my experiences with them.

Rack

I have a bunch of these BINCOLORs mounted on a DIN rail. I use the outputs freely, ignoring any ‘RGBWW’ channel markings it has.

Each one of them gets 4 meanwell 24V power supplies, which can be tuned to compensate for DC voltage loss.

Advantages

  • Light wiring all in one place, which means it easier to switch technologies.
  • Switching settings (bit depth, PWM frequency, …) is all in one place.

Disadvantages

  • PWM signal may cause a long wire to act as antenna (idk how to quantify this, I chose to ignore it).
  • I don’t think a ws2812b signal (addressable LED) will stay intact.

In-place

In some places, I pull a DMX wire to the destination like you discribe.

Advantages

  • Flexible. You don’t have to decide right now.
  • Doesn’t require rack space.

Disadvantages

  • Takes some care to hide your LED driver and power supply.
  • Need both DMX and power wires to this place.
  • Branching a DMX signal requires a DMX splitter.