DMX lighting

Hello, I have simple led strips, one color.
Connected to a DMX controller, I’ve been running them for many months with this simple setup:

    - channel: 46
      name: led_m_1
      type: dimmer
    - channel: 47
      name: led_m_2
      type: dimmer
    - channel: 48
      name: led_m_3
      type: dimmer

Since the last update I can no longer turn them on/off.
has something changed ?
What is the right configuration to use?
Thank you

Regarding support for custom arrays of 4 WHITE LEDs: ONE OPTION that I like but can’t seem to finalize is to use a “phantom” (virtual) color_temp light as a master control in an unused dmx channel (channel 11, in the simple example below). Whenever the “phantom” light is changed by HA or GUI, the code for color_temp should actually update the physical channels (channels 3, 5, 7, 9) of the 4 LED entities. The main problem I have is: how one entity (“phantom” on channel 11) can reliably find and index into the physical channel numbers of the physical LED entities (and also use the output_correction and interpolation values already implemented for channels 3,5,7,9?) See config below for example (I added code to handle “fixed_color_temp” mireds parameter in config):

ANOTHER OPTION, I am thinking of a different work-around solution – How about if I implement a custom ColorMode.XY light type? Currently, it appears that ColorMode.XY type is not yet implemented in artnet_led.

In the code for ColorMode.XY, I can then define my own custom array of 4 LEDs, do custom CCT equations and brightness in that module. Although the code implementation would be custom for my own 4-LED fixture setup, maybe it can be further generalized with a switch?

For instance, can the light be defined with “wwww” channel setup flags, to indicate the light is built of 4 white channels, each one is different CCT? Not sure, but I think the util/channel_switch function might be extended to allow for that, and to generalize: other types of custom .XY implementations (maybe extending to UV LEDs for instance)?

    node_type: artnet-direct              # Which protocol to use
    universes: # Support for multiple universes
      1: # Nr of Universe (see configuration of your Art-Net Node)
        output_correction: cubic
        channel_size: 16bit
        transition: 2
        devices:
          - channel: 3 # first physical used channel of dmx controller
            name: my_dmx_1800K_strip # 1800K dynamic warm-dim LED strip varies 1800K-3000K
            type: dimmer
          - channel: 5
            name: my_dmx_3200K_strip # 3200K LED strip
            type: dimmer
            fixed_color_temp: 313 
          - channel: 7
            name: my_dmx_5600K_strip # 5600K LED strip
            type: dimmer
            fixed_color_temp: 179
          - channel: 9
            name: my_dmx_6500K_strip # 6500K LED strip
            type: dimmer
            fixed_color_temp: 153
          - channel: 11 # "PHANTOM" control, unused dummy location on dmx, use as the color_temp and brightness master control of the entire fixture
            name: my_dmx_phantom_dimmer # A master warm-dimmer. To implement seamless warm-dim of ALL lights combined with custom math
            type: color_temp
            min_temp: 1800K
            max_temp: 6500K

That’s odd, can you check if you see anything in the logs? The configuration is ok by the looks of it.

Yeah I see we’re running into hard limitations on how the integration is configured. I think it should be revised anyway, as there’s other open Issues that run into this same problem. Further customization just isn’t really possible; any solution for you is going to necessarily be a hack in its current form.

I’ve since discovered Open Fixture Library, and their fixture format. The main idea here is to decouple channels from fixture capabilities, and then couple HA Entities onto those capabilities. So instead of configuring a channel and defining what that is, you would define your color_temp entity to a fixture’s capabilities, which will then map onto channels.

I’m a bit stuck in the research phase on this though; if people are going to have to change their config, I want to do it only once. Meaning we have to look forward into how RDM and E1.31 sACN integrates in the future.

1 Like

Thanks for the reply

        - channel: 42
          name: led_p_1
          type: dimmer
          transition: 1
        - channel: 43
          name: led_p_2
          type: dimmer
          transition: 1
        - channel: 44
          name: led_p_3
          type: dimmer
          transition: 1
        - channel: 45
          name: led_p_4
          type: dimmer
          transition: 1
        - channel: 46
          name: led_m_1
          type: dimmer
          transition: 1
        - channel: 47
          name: led_m_2
          type: dimmer
          transition: 1
        - channel: 48
          name: led_m_3
          type: dimmer
          transition: 1

So, I did all the possible variations. Here are the results:

  • By setting everything as “binary” all channels work
  • By adding the “Transition 1” line, only channels 43 and 45 work

I am going crazy…

I’ve turned on debug logging, but I can’t figure out where to go to look at them

Settings > System > Logs

Search for artnet_led and click open any errors you see.

Questo errore ha avuto origine da un'integrazione personalizzata.

Logger: custom_components.artnet_led.client.artnet_server
Source: custom_components/artnet_led/client/artnet_server.py:247
Integration: artnet_led (documentation, issues)
First occurred: 12:03:11 (1 occurrences)
Last logged: 12:03:11

Haven't seen node 192.168.20.69#0 for 5 seconds; removing it.

Logger: homeassistant.core
Source: core.py:361
First occurred: 11:59:13 (1 occurrences)
Last logged: 11:59:13

Something is blocking Home Assistant from wrapping up the start up phase. We're going to continue anyway. Please report the following info at https://github.com/home-assistant/core/issues: sonoff, sensor.mqtt, usb, sensor.broadlink, binary_sensor.shelly, hardware, default_config, update.mqtt, cast, light.artnet_led, sensor.esphome, sensor.hassio, frontend, energy, sensor.fully_kiosk, image_upload, fan.sonoff, device_tracker.mobile_app, stt, application_credentials, config, media_player, webhook, lock, network, bluetooth, api, hassio, button.mqtt, cover.mqtt, auth, select.mqtt, button.sonoff, switch_as_x, tapo, fully_kiosk, switch.esphome, switch.shelly, ssdp, hacs, device_tracker, camera.mqtt, light.mqtt, update, input_number, system_log, scene, sensor.shelly, tts.google_translate, conversation, button.shelly, binary_sensor.sonoff, number.sonoff, humidifier, fan, input_button, device_tracker.mqtt, logger, shelly, vacuum.mqtt, sensor.sun, system_health, analytics, device_automation, update.hassio, fan.mqtt, timer, cloud, sensor.mobile_app, notify, notify.group, button, vacuum, binary_sensor.esphome, update.shelly, weather.met, search, homeassistant, sensor.time_date, broadlink, input_select, switch.mqtt, binary_sensor.hassio, met, sensor.tapo, humidifier.mqtt, light.tapo, file_upload, alarm_control_panel, onboarding, binary_sensor.fully_kiosk, lock.mqtt, input_text, text.mqtt, zeroconf, light, group, notify.mobile_app, switch.fully_kiosk, input_boolean, sensor.energy, repairs, websocket_api, text, mobile_app, automation, binary_sensor.mobile_app, sensor.template, tts, script, recorder, media_player.fully_kiosk, number, remote, persistent_notification, sensor.sonoff, switch.sonoff, stream, number.mqtt, logbook, climate.sonoff, telegram_bot, binary_sensor, person, diagnostics, generic, weather, counter, template, http, media_player.cast, light.switch_as_x, button.fully_kiosk, mqtt, camera.generic, dhcp, siren, light.shelly, light.sonoff, cover.shelly, sensor.hacs, blueprint, trace, map, switch.broadlink, media_source, input_datetime, binary_sensor.group, scene.mqtt, select, radio_browser, scene.homeassistant, light.group, cover, notify.telegram, my, assist_pipeline, binary_sensor.mqtt, binary_sensor.tapo, siren.mqtt, remote.sonoff, number.fully_kiosk, sensor, camera, button.esphome, zone, sun, remote.broadlink, alarm_control_panel.manual, history, homeassistant_alerts, climate.mqtt, cover.sonoff, climate, tag, schedule, lovelace, alarm_control_panel.mqtt, switch, esphome, switch.tapo, light.esphome

https://pastebin.com/QnXHQx9u

Hmm nothing abnormal… I don’t see anything going wrong directly.

A surefire way to fix it is to re-install;

  1. First remove the integration
  2. Comment or remove the YAML config
  3. Restart
  4. Delete the light entities
  5. Install this integration and re-introduce the config
  6. Restart

Thank you!

I followed the procedure and now everything works!!!

Hello, first let me say that this is an awesome integration! Absolutely something that I need. However, I am having a bit of an issue getting this to work with multiple universes. I’ve got both input and output working just fine with Universe 0 but when I try to setup a simple config like this:

light:
- platform: artnet_led
  host: 10.0.1.98                              # 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
    0:                                  # Nr of Universe (see configuration of your Art-Net Node)
      devices:
        # Dimmer
        - channel: 1                    # first channel of dmx dimmer
          name: my_dimmer               # name
          type: dimmer                  # type
          channel_size: 8bit           # width of the channel sent to DMX device, default "8bit", "16bit", "24bit" and "32bit" available.
    1:                                  # Nr of Universe (see configuration of your Art-Net Node)
      devices:
        # Dimmer
        - channel: 1                    # first channel of dmx dimmer
          name: my_dimmer_1               # name
          type: dimmer                  # type
          channel_size: 8bit           # width of the channel sent to DMX device, default "8bit", "16bit", "24bit" and "32bit" available.

I get nothing on Art-Net universe 1. I’ve tried it without the universe zero as well and still the same thing. Perhaps I’m misunderstanding how the multiple universe setup is supposed to work. If so I would greatly appreciate some help!

This is an amazing integration and may be able to solve my problems, but I can’t get it working. Am I able to use this to talk to my CueServer Mini by entering its IP and selecting sacn as the node type?

light:
  - platform: artnet_led
    host: 10.0.1.202.   #my local CueServer Mini IP
    max_fps: 25
    refresh_every: 0
    node_type: sacn #I have tried each type
    universes:
      0:
        send_partial_universe: True
        output_correction: quadratic
        devices:
          - channel: 20   #3 Channel RGB that I am able to control using either LumenID and CueServer Studio
            name: my_dmx_light_test
            type: rgb
            transition: 1
            output_correction: quadratic
            channel_size: 8bit

This is how I am trying to test it and nothing shows up in HA.

This is what I am using to control these lights right now, I would love to have them set up as RGB dimmers in HA.

1 Like

I just noticed that you have an extra “.” at the end of your IP address. If that is in your actual config, that might be it.

thanks, the actual config is right. That artifact was from copying it back out of chatgpt which I used to strip out a bunch of other comments

Ah. I’m guessing it’s a configuration issue on the cue server then. I’m not familiar with that device, but from some quick searching, it looks like there is configuration necessary to get it to release control to another controller/console. Do you know if all of this is in place?

https://interactive-online.com/resources/tips-and-tricks/automatically-switch-between-cueserver-and-console

Edit: I should note that this article assumes the other controller is a dmx connected console… you might need something similar, just with the input as Art-Net.

1 Like

Your config does look correct, I’ve tested it and even universe 1 also works on my end with this config.

Are you sure you are sending universe 1? Is there something in the logs that shows something wrong maybe?

1 Like

I’m very new to this integration but isn’t the host supposed to be the IP of your HA integration? With Artnet (or sACN) discovery is generally automatic so you wouldn’t be putting the IP address of your target device.

1 Like

Indeed, what you say is correct. :slight_smile:

The first implementation of this integration just sent an ArtDmx packet directly to a controller. Afterwards, I’ve added the discovery mechanism that obsoletes the need to configure an IP.

To be backwards compatible with our existing users, the default option of node_type remains artnet-direct, which mandates the IP. But if you’re using artnet-controller, the IP field is ignored.

Discovery for sACN isn’t yet implemented, so IP remains mandatory there still.

1 Like

Thanks so much to you, gmint, and Bryan for your help. My error was using the DMX controller IP and not my HAOS IP, so that you for correcting me on that. The light now shows up in HA. Turning it on/off or changing the dim/color doesn’t do anything, but this is enough for me to begin troubleshooting so I am extremely appreciative.

We did not intend to have DMX lights in our home, a lighting designer/installer put them in and then vanished! I have had to learn all about this and it is really awesome, but complicated.

2 Likes

A handy tool for debugging ArtNet is DMX Workshop: DMX-Workshop - Artistic Licence

Allows you to discover your controller, its capabilities, send some DMX frames to it, etc…

1 Like

Your config does look correct, I’ve tested it and even universe 1 also works on my end with this config.

Are you sure you are sending universe 1? Is there something in the logs that shows something wrong maybe?

I don’t know what the deal was. I tried it several times but I’ve got it working now! Thanks!