DMX lighting

Is there any update on DMX/ArtNet support in HA? Following a major water line break I’m having to remodel my entire home’s innards from the exterior walls in. The bad news is I have to fit 10 years of renovation into one. The good news is that I’ll get 10 years of renovations all at once. All lighting is new LED, either color temperature adjustable or full RGBW. I have an array of 12 2’x2’ RGBW panels forming the kitchen ceiling so it is one continuous 6’x8’ flat panel. I use DMX to control each one, so there are 48 total channels.

Now I’m working on the integration of all the lighting and am trying HA. I bought an eDMX Pro 4 ArtNet/DMX bridge to handle sending the DMX stream so HA (RPi 3) can just send an update once over ArtNet to all channels when a dimming event occurs. (I have some other small DMX flat panel arrays in other rooms and Universes.) Other modes like “disco”, “burglar repellent”, etc. are in the back of my mind as well. For now I’d be happy to just implement incandescent-like dimming, and then add the per-panel special effects.

I’m new to HA so if I need to create an add-on for DMX it will take some time. I’m willing to do it or help with development, but if someone has it worked out I’d love to give it a spin!

Perry

1 Like

I am new here in HA, and new to RPi domotica.
Last week spent on trying out OH, to find out that RaspiHats i2c isn’t supported in OpenHab it is here :wink:

But I Need Ola (DMX) also, any updates. Someone ?

Just to +1, I am also deciding between OpenHAB and HA, with DMX (ArtNet) support being a key factor. Python isn’t my first choice language but I’m happy to work through some complexity and contribute back if there’s anyone out there with a working setup to provide inspiration?

I’m completely new to home assistant, but my living room is lighted by DMX RGB lights so I’ve written a very simple HTTP server to interface with OLA and a second very simple home assistant component to control them.

If anyone wants this code to rewrite it into something configurable and useable by non-programmers, that’d be awesome. If you are a non programmer, do not expect to get this code working.

dmxserver.py

.homeassistant/custom_components/light/dmx.py

Hi all,

I’ve developed a Art-Net/DMX platform for the Light platform. This is a self contained platform to drop into the custom_components\light directory and doesn’t require third party libraries.

I’ve done some basic testing (mainly using Wireshark) so please test it out and let me know how you get on.

I may consider a push request to the Home Assistant core once it is stable and identify any issues.

The readme on the link above explains how to set it up and capabilities.

Cheers

4 Likes

This is fantastic work. Do you have a specific Art-Net controller you’d recommend that you know works with your platform? I’m excited to try it out.

I’ve been developing with a DMX King eDMX1 but given how simple the protocol is I’m fairly sure it will work with any Art-Net controller
I’ve got to dig deeper into the protocol as to what else is possible i.e. requesting the current DMX values on opening etc, some of that might be more fussy

1 Like

Hey Jnimmo i have started using your component, very nice work.
But i couldn’t get scenes to change the lights, also when you change something in the state change page it doesn’t work. did you experience the same?

Great to hear thanks for letting me know -
From what I understand the state change page doesn’t actually write back to platforms/components typically - what were you wanting to change in there?

I haven’t tried scenes yet - I’ll do some experimenting and let you know

What DMX interface are you using out of interest?

I’ve just tested the scenes on mine and is working fine -

scene:
  - name: Reset Lights
    entities:
      light.cloud_lights:
        state: on 
        brightness: 255
        transition: 0
1 Like

Thanks for the answer.
I just also got it working, had a durb by using fade_time instead of transition.

I’m using a arduino as a artnet to dmx interface.

That’s a good point - I should adjust the config to use transition instead of fade_time as I made the same mistake at first

Wow, this is great!

Coincidentally, just last night I was finally able to create some Python scripts that will turn my DMX lights on and off using an Enttec Pro Mk ii interface and get it to successfully trigger using hassio and a ‘command_line’ based switch through much trial and error over the last month or so. I signed on here to post to the group in case anyone else needed DMX support and lo and behold, I see a much more elegant solution!

I’ll be testing it out in a few hours…

Cheers!

1 Like

Just tested it and your add-in works perfectly! Love the color wheel option and the ability to adjust the brightness… How easy would it be to add support for RGBW (four channel) lights? I looked at the code and it there a few spots to add and additional light type, some maps to the additional field values.

Cheers and fantastic job!

1 Like

Thanks for that - it’s the nice thing about just building it as a light platform as Home Assistant deals with the colour picker etc!
I’ll have a look at RGBW later should be easy enough just need to understand how they work
Is there typically a colour temperature adjustment option for RGBW?

Hi there,

Yes, typically I’ve seen a color temperature option for RGBW lights; 3K (warm), 6K (cool), etc… For the RGBW lights, they use four channels with values from 0 to 255 each. I’d have to get the values for each color temperature if it’s possible to set defaults or not sure if a slider might be possible from warm to cool.

Cheers and great work!

I’ve added support for RGBW and changed the configuration tag from ‘fade_time’ to ‘transition’ now to avoid confusion
I initially noticed HA had a ‘white level’ feature but that added another slider which probably wasn’t desired, so instead just split out the white component from colors using a HA util method.

Hey again @jnimmo,

Thanks for that. I replaced the artnet.py file and changed the light type to ‘rgbw’ in my yaml file and of course restarted HASS but don’t notice any change in behavior. I also added an additional ‘255’ to the default channel values in the ‘default_rgb:’ statment in the lights yaml ‘[255,255,255,255]’ to see if that would have any effect but that just threw an error for the component in the Dashboard and wouldn’t load the lights.

Looking at my particular lights, they have one RGB LED and one separate additional LED specifically for white for the RGBW. Using other applications such as ‘Luminair’ for IOS, all of the LED’s can be adjusted but with your plug-in, the additional white LED never lights up. I’m wondering if that additional slider you mentioned for ‘white level’ has anything to do with that. I know in other programs, that additional white channel changes the ‘character’ of the colors making them ‘pop’ more or if used with a white mix, changes the temperature of the white light…

Using the Python script I wrote, sending a value of ‘255’ to the 4th channel will light up the 2nd LED at full brightness.

Are you testing with any lights with an extra white LED by chance?

Cheers and thanks for the effort!

1 Like

RGBW type now has been modified to include a separate slider for white level (through the HA white_level attribute)
An additional type rgbw_auto hides this slider and scales/derives the white value so that if R==G==B it will use the white channel only (so the RGB LEDs can focus on adding colour rather than white)

3 Likes

Shout out, kudos and thanks to @jnimmo for this add-on; it works great for controlling lights of various types using a DMX controller over ethernet.

For anyone interested, my particular DMX setup uses:

  1. an Enttec ODE mk ii DMX controller:
  1. 4 channel DMX decoder and RGBW driver:
  1. Various LED fixtures and strips:

Cheers,

2 Likes