DMX lighting

OK, so that’s effectively a maximum of ~170 pixels per universe, right? That doesn’t feel like much…

Thanks, although I’m still not sure which is the best way to wire all this up.

Am I better to do something like:

HA ---- ETHERNET -----> Decoder in window frame area ----> LED Strip

or

HA --- Decoder in Comms Rack -------------- 5-pin cable to window frame -> LED Strip

?

OK, so that’s effectively a maximum of ~170 pixels per universe, right? That doesn’t feel like much…

Yeah indeed, particularly if you go for RGBW LEDs, it’s even less.

Thanks, although I’m still not sure which is the best way to wire all this up.

Better to do the former. The decoded addressable LED signal is prone to interference and doesn’t do long distance well. For non-addressable LEDs, that’s fine though.

Be sure not to forget that your LED strip will need power as well. So in total it would look something like this:

Artnet / DMX ---- CAT6 / XLR -----> Decoder ----> LED Strip
                                      ^
                                      |
230V ----> 24V PSU -------------------/

Also always a good idea to test your setup before putting cables permanently in your wall.

3 Likes

Fantastic, thanks - this is really useful and has possibly ruled out DMX as an option for me given the number of pixels involved etc.

I’ll have a think, but it’s looking like I’ll go down another route.

If you’re going to sync it up with music, DMX is still your best choice. It’s what they use in party lighting as well. Or if you just want to make it simpler, you could use non-addressable strips and decode it in a central location.

Your diagram shows the word LED 11 times in it. Do you really need finer-grained control than those 11 areas, which would come to 44 or worst-case 55 channels total (i.e. ~10% of 1 DMX universe). Are you even going to have the LEDs on 3 sides of teh kitchen island seperately controlled?

Side note: you could be running electric blinds/curatains off DMX too, while you’re wiring out that way…

As for cabling approaches: a few ways to skin that cat, but @Breina’s schema is good. If you wanted to do the DMX on a budget, you should be able to do the whole set up for well under $300 incl LED strips, drivers, 24v psu, Artnet ->dmx bridge.

I think I may have misunderstood something here then…

The “LED” markers just show where the LED strips will be:

1 x strip along each of the L-shaped bank of cabinets (2 total)
1 x strip around the bottom of the island
1 x strip at the top of each window (2 total)

Overall, that’s 5 strips total, up to 8m in length if I’ve measured it properly!

Ideally I’m after the ability to control each pixel to create wave effects etc when sync’d to music rather that just changing the colour of the entire script, that’s why I thought I’d need multiple universes?

@Corb3000 I started looking at your implementation of DMX and adding the features I need before I can switch my house to your custom component. I need channels with a fixed value that can never change. The way I see it, this could be done in 2 ways: add a type “fixed” that gets an initial value from configuration and doesn’t respond to HA requests to turn on or off. There would still be light entities in HA, but they would be useless. Another way to do this, would be to configure initial channel values an not create any light entities. This however does not fit in well with the code and it makes it difficult in the configuration file because initialisation and DMX channels would get separated. What would be your preferred implementation? What would be the best way to initialise the DMX channels in the constructors of your ligth entities?

Another thing I’m missing, is storing and restoring state on rebooting HA. This is not too difficult, so I’ll start with that for now.

I think you should consider carefully how important it is to you to have individually addressable pixels (i.e. control of each of rgbw/w for each led/unit on a strip of many).

If you need this, then I would imagine that the wled/neopixel route is the only one open to you. I think I have come accross a DMX–>neopixel driver that unpacks dmx channels, which may be of interest. Note you are still going to have a configuration/scripting challenge, even if you buy such COTS h/w.

Also, assuming neopixel stuff is stuck in 5V land, you face a potential challenge with current, in addition to the voltage drop accross long strips.

I’ve played with neopixels before, and would ideally like to talk to every LED, but this didn’t feel like a reasonable constraint to me, so I went with DMX, 24V, and single-colour-configured strips. Now getting to the point of having whole house on this (essentially Breina’s schema), including control over fans, radiator valves, window opener etc.

hth

Hey Frank - that should be resolved now

If I want to switch from DMX implementation A to implementation B, could that be done without having new entity id’s for every channel I configured?

Probably not.
However, if the new implementation supports unique_ids you can change the entity_ids to match the old ones from UI.
Otherwise find out how it is generated from your config (probably derived from some “name” key) and rebuild the previous ids. (Remove the old ones before, else a “_1” will be appended)

Nice! Get it to work, but getting this issue, then having one of the “dmx” light in a light group…

Logger: homeassistant
Source: custom_components/artnet_led/light.py:263
Integration: artnet_led (documentation)
First occurred: 21.23.38 (1 occurrences)
Last logged: 21.23.38

Error doing job: Task exception was never retrieved

Traceback (most recent call last): File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 830, in async_request_call await coro File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 695, in _handle_entity_call await result File “/usr/src/homeassistant/homeassistant/components/light/init.py”, line 462, in async_handle_light_on_service await light.async_turn_on(**filter_turn_on_params(light, params)) File “/config/custom_components/artnet_led/light.py”, line 413, in async_turn_on await super().async_create_fade(**kwargs) File “/config/custom_components/artnet_led/light.py”, line 263, in async_create_fade self._channel.add_fade( File “/usr/local/lib/python3.9/site-packages/pyartnet/dmx_channel.py”, line 83, in add_fade assert 0 <= k.val_target <= (256 ** self._CHANNEL_SIZE) - 1 AssertionError

Found the fail.

The problem is that Phillips huge color-temperature-range is between 153 and 454.

You color-temperature profile is only in the range 153-370.

Is it possible to make it as wide as Phillips hue lamps? So I doesn’t get errors the having them in a group together…

@Corb3000 Would you please consider accepting my PR to your codebase?

I’m backlighting a marble half wall and looked into some options for per-pixel vs. per-strip control so I could create more interesting light patterns. This would involve several thousand LEDs. I decided to prototype using the “Octo” Artnet->“Neopixel/etc.” controller and was pretty pleased. Eight DMX universes gets you 1024 RGBW pixels so I’d need more than one controller. The bigger issue is that the “affordable” strips are 5V which limits strip length, complicates power distribution and potentially color consistency along the length of a strip due to voltage drop. SW can compensate somewhat but it’s just another nit to be managed.

Why don’t you use zigbee lights?

I want to buy a moving head spotlight and integrate it into HA. So it should be possible to move the light from within HA. It does not need to be responsive. Those lights are controlled by DMX. What is the best way to go? Are there lights that work with DMX over Wifi? Or do I need a adapter like this? Or just use the artnet custom component and then build a artnet->dmx bridge with an esp32?

Edit: works now. hass-dmx in HA, esp32 with artnet-wifi and esp-dmx and I can control my lixada moving head.

2 Likes

I’ve got Zigbee lighting already for my RGBCCT strips, I was after a commercial controller for addressable LED’s to create better effects, but the budget has put a stop to this idea for now anyway :frowning:

Hi Optimus: did you figure out getting the DMX-AN2 to work? If so, how?

I’ve just picked one up to replace a home-brew system I had built (which has been working fine in HA with jnimmo’s extension).

I’m able to get to the AN2’s web UI (changed over to DHCP addressing), so that much is working.

TIA

I am using the hass-dmx custom integration to send DMX commands over LAN/Wifi. And I have written a sketch for an esp32 to translate artnet commands into DMX and send it to a DMX device. This way I’m controlling a lixada wash light. In HA, I have 3 light entities, one RGBW for the LEDs, one dimmable light for pan, and one dimmable light for tilt.

2 Likes