DMX lighting

Big update!

Thanks to @spacemanspiff2007, we now have support for E1.31 sACN and KiNET (in addition to Art-Net).

Besides that, I’ve also merged in the first version of what I’m calling the ArtNet controller, which scans for nodes on the network and generally implements more of the ArtNet protocol.

I’ve released it as a beta currently, as there’s still an issue with fades. I’d appreciate people willing to test the new node-type's. Please find the release notes here:

5 Likes

Spaceman fixed that fading issue, it’s now in the latest release (v0.1.1). This should be stable and I can’t find any more issues.

Doing DMX input up next.


EDIT:

DMX Input is now a thing! :slight_smile:

Quick demo:

Be gentle with it though, updating dozens of light entities at 43 frames per second will bring Home Assistant to its knees.

Also we’re still figuring out how we’ll do reverse output correction, so the values you see may be somewhat off when using that feature.

cc: @peternguyen

2 Likes

Amazing work Breina (and others)… You’ve taken this integration a long way; I appreciate all of the work on it!

1 Like

Hi devs and folks! Thanks for all your work you are putting in!
I am about to renovate a building which was originally built in 1713, with partially very thick walls and in addition with clay plastering which is a kill factor for any wireless solutions. So I started in looking into wired solutions. To be honest I’m not into programming, more into visualization (html, js) - so I have a basic understanding but not deep knowledge of other languages (besides php).
I’m in evaluation what to install in our house. KNX, DMX, DALI? I have a testing environment for Homeassistant already and some DMX luminairs - so maybe I can experiment with that. Is it possible to use an USB connection for experimenting? I saw a mentioning in jnemmo’s git, but can’t get it compiled on my raspi, nor do I know how to install & run it.
Maybe someone can explain on how to get this kind HA->(proxy)->USB->DMX running? Or would you rather recommend starting with a ‘real ethernet-IP’ device right from the beginning?
Thanks in advance, udowsky

1 Like

If you just want to do some testing, you might have a look at The ArtNetominator - Free ArtNet DMX Monitoring and Troubleshooting Software which is a visualization tool that listens to artnet network traffic. If you already made up your mind, I’d go with a real IP-to-DMX device. They aren’t that expensive anyway. In my home, I combined KNX and DMX, with KNX mostly for inputs and blind controllers, and DMX for lights. And of course HA as the link between both ecosystems.

If you want to use that USB, you can install Open Lighting Architecture | onto an embedded device. That in turn will speak ArtNet, which can be accessed by HA.

HA → ha-artnet-led integration → OLA → USB → DMX

But far easier is to get a simple ArtNet (or E1.31 sACN) interface. Then you can go directly.

I’ve got the exact same setup as merijn, using KNX as inputs and blinds, DMX for lights, HA inbetween.

Thank you both for your response! I ordered an interface now, can’t wait to play around with the real stuff! :slight_smile:

Hello, congratulations for the excellent work.
I’ve been using this plugin for a while and it works perfectly.
I used a shelly i3 to turn on lights that are connected to a dmx controller and it works!
I was wondering one thing…
I have lights controlled by shelly, could I do the opposite? From the DMX turn them on and off?
Thank you

Thanks!

I don’t understand how your setup works exactly from your comment. But if you have an ArtNet controller as you say, you can have it send data to HomeAssistant.

Just set node_type to artnet-controller in your config. The light entities can now be updated by your ArtNet controller.

This is a very recent feature though, please be gentle with it.

Hi @Breina ,

Thanks for your amazing work with this plugin!
I am trying to setup the new DMX-input but I can’t get it working :confused:

Maybe you can help me with the following:

  1. When changing the node_type to artnet-controller, which of all the other settings have to be set or removed? (Could you maybe provide an example config?)
  2. Is it possible to assign DMX addresses to entities from other devices? or would I need a “dummy” light and a automation to control existing lights with DMX?

Thanks a lot

Thanks! :slight_smile:

  1. None of the other settings need to be removed. That should be the only change that’s needed.
  2. For now at least, you’d need a dummy light. Our integration can’t alter lights created by other integrations, HA is designed to use automations for that purpose.

As for troubleshooting, can you search the logs for artnet_led and tell me if you see any warnings or even errors?

You can also enable debug logging as such:

logger:
  logs:
    custom_components.artnet_led: debug

oh thanks for the quick reply!

  1. I have added the logger, but the only thing in the logs that shows up is this:
2023-03-12 12:25:08.644 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration artnet_led which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

My Settings look like this:

- platform: artnet_led
  host: 2.39.2.171                              # 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: 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                    # 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.
        - channel: 3
          name: my_rgb_lamp
          type: rgb
          transition: 1
          channel_size: 16bit
          output_correction: quadratic
          channel_setup: rbgw           # Auto-calculated white channel
        - channel: 125
          type: color_temp
          name: "my_color_temp_lamp"
          min_temp: 2500K
          max_temp: 6500K
          channel_setup: ch
        - channel: 41
          type: rgbww
          name: my_rgbww_lamp
          transition: 10
        - channel: 50
          name: sp4led_1_dimmer
          type: fixed
          channel_setup:
            - 255
  1. Ok no problem, thought that this would a huge feature request :slight_smile:

EDIT: The IP set is the one of my HA-Pi, as I’ve understand that it acts as an artnet receiver now?

Ah sorry that I didn’t mention it before, but after configuring the logs, a restart is required. You’re showing the logs of yesterday, before the debug option was enabled.

How are you sending DMX data? Make sure you’re sending it to universe 1.

Your IP doesn’t really matter in this mode, it’s mostly ignored. In artnet-controller mode, HA will work with ArtNet in both directions. It will send as well as receive.

Hey guys,

I’m relatively new to HA, and I’ve been really impressed with it all so far. The final piece in the jigsaw is to be able to trigger a scene on our DMX controller.

We have a Nicolaudie STICK-CW4, I’ve got it all on the network ok and can control it using their own app via Wifi, but just wondered if anyone had any experience or knowledge of whether or not Breina’s custom component will be able to control it, before I waste hours experimenting!

The LED light strips were already programmed by our supplier, so I only really need to run some functions to say “run scene 1” etc

Any help, suggestions or pointers would be massively appreciated!

All the best

Simon

Hi Simon, welcome to the forum!

From what I can see from its documentation, I think it can’t. Not using Art-Net / sACN, at least. It doesn’t even seems to read DMX input even, it just outputs.

I think your best bet is using its ‘Dry Contact Port Triggering’, with a WiFi switch (e.g. Shelly).

image

It’s going to be that, or reverse engineer its API, I’m afraid.

Ahh that’s really interesting, thank you.

I did find some documentation on TCP/UDP signals for other models in that range, I do wonder if that might be a way around it too.

Really appreciate your time! Thank you.

Hello,

I have created my first custom made ESP8266-Artnet-to-DMX-controller, using these instructions and code: GitHub - robertoostenveld/esp8266_artnet_dmx512

This works really well, which I first tested with DMX-Workshop: DMX-Workshop - Artistic Licence

Then I tried to find a good and open-source software for the full DMX/Artnet-Setup, and found QLCPLUS (QLC+): https://www.qlcplus.org/

I think this could be a great add-on to home-assistant to be run in a container, also enabling it’s web-interface: Q Light Controller Plus - Web Interface

Using ArtNet or it’s websockets, I think one could also add a full suite of Lovelace UI interfaces, to run the whole thing.
(Or one could also simply use the Artnet plugins above , eg. 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 would see the advantage in being able to set-up a whole stage and cues in QLCPLUS, and also be able to use it without HA, but if one would want to integrate it into HA, then it would be simlpy adding the QLC±add-on, and to load the project, which then could auto create all these “fixtures”.

This is all a dream for now, but I am curious what you think …
Maybe simply using 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. is enough (I have not tried yet) - but I would be seeing some benefits in the integration.

1 Like

Thanks for the well documented comment! :slight_smile:

Indeed, integrating QLC+'s API would automate that part of the setup process. However, I do think the cleaner solution to fixture discovery has to be using RDM, in which the lighting fixtures discover themselves. As this is a standardized technique, instead of specific for one application.

Currently I’m in the middle of architecting a rework that will enable more types of devices, as opposed to only lights. This would be needed for stage lighting support for sliders, strobes, smoke machines, … Also sending triggers, setting scenes, and such.

I have planned RDM support later on, which would include auto-discovery of fixtures.

3 Likes

Hello ! @Breina

Currently I’m in the middle of architecting a rework that will enable more types of devices, as opposed to only lights! :+1:

With this way, you also solve the problem with the entities so that they are not only light. ?
My December post!

I have 5 boards in total communicating via DMX, 3 of which are 16 channel dimmers and 2 are 16 channel relays. On boards with dimmers, entities with light… are perfect but on boards with relays all entities are still with light… and I have pumps, gates, power supplies, sockets connected to them and that’s why I want to change the entities from light to switch or relay.
Maybe make an implementation so we can change the device class.

Thank you very much :pray:

Thanks for the encouragement! :slight_smile:

That will indeed solve that problem. I’m taking it slowly, as it will need people to change their configuration, and would like this to be the last breaking change that we need to do.

Example of my work in progress configuration file, feel free to give feedback:

The ideas are that this new configuration will carry support for new features such as:

  • New entities such as fan, binary_sensor, number and switch.
  • ArtNet controller will become the default implementation, with the previous artnet-direct becoming a compatibility option.
  • Using ArtNet triggers to set HA scenes (other way around not supported by HA)
  • Using HA events for ArtNet stuff happening

Still have to figure out the role of ArtNet commands and RDM.

2 Likes