Skip to content
This repository has been archived by the owner on Jun 16, 2024. It is now read-only.

jnimmo/hass-dmx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Home Assistant DMX over IP Light Platform (deprecated)

This component is no longer maintained and is unsupported in Home Assistant 2022.9.0. Please switch to Breina's fork Home Assistant component for Art-Net LED (DMX), which includes contributions from spacemanspiff2007 and corb3000.


The DMX integration for Home Assistant allows you to send DMX values to an Art-Net or KiNet capable DMX interface. This component is a one way integration which sends Art-Net or KiNet UDP packets to the DMX interface. This integration uses no external libraries and requires at least Python version 3.5.

Prerequisites

Installation

This can be easily installed with the Home Assistant Community Store (HACS) using the repository: jnimmo/hass-dmx

Alternatively, manual installation by downloading the custom_components/dmx directory to the custom_components/dmx directory on your Home Assistant instance (generally /config/custom_components/dmx).

Configuration

hass-dmx is a community supported Home Assistant integration, if you have any questions you can discuss with the Home Assistant DMX Community.

DMX lighting is configured in the configuration.yaml file under the light domain.

Simplest DMX lighting setup:

light:
  - platform: dmx
    host: <IP Address>
    default_type: rgbw
    devices:
      - channel: 1
        name: Dance floor center
      - channel: 2
        name: Dance floor sides

More complex DMX lighting configuration:

light:
  - platform: dmx
    host: <IP Address>
    port: 6454
    dmx_channels: 512 
    default_level: 255
    universe: 0
    devices:
      - channel: 1
        name: House lights
        type: dimmer
        transition: 3
      - channel: 2
        name: Hall lights
        type: dimmer
        default_level: 255
      - channel: 3
        name: Stair lights
        type: dimmer
        transition: 3
      - channel: 4
        type: rgb
        name: Entrance LED Strip
        default_rgb: [0,0,150]
      - channel: 7
        type: dimmer
        name: Smoke machine
      - channel: 8
        type: custom_white
        name: Intensity/Temperature Light
        channel_setup: dT

Configuration variables:

  • host (Required): Gateway address
  • port (Optional; default=6454 or 6038): Gateway port
  • protocol (Optional; default=artnet): Gateway protocol: artnet or kinet
  • universe (Optional; default=0): Universe for these DMX channels
  • dmx_channels (Optional; default=512): The number of DMX channels to send a value for (even number between 2 & 512)
  • default_level (Optional; default=255): Default level for Home Assistant to assume all lights have been set to - in most cases 0 would make sense. Note Home Assistant will not send these values to the gateway until an explicit change is made unless send_levels_on_startup is True.
  • default_off (Optional; default=True): Whether Home Assistant should assume the device is off by default. See default_level.
  • default_type (Optional; default=dimmer): Specify the default type for devices that have not specified a type
  • send_levels_on_startup (Optional; default=True): Setting this to False means Home Assistant will not send any DMX frames until a change is made.

Device configuration variables:

  • channel (Required): The DMX channel for the light (1-512)
  • name (Optional; default="DMX Channel #"): Friendly name for the light (will also be used for the entity_id)
  • type (Optional; default=dimmer):
    • 'dimmer' (single channel)
    • 'rgb' (red, green, blue)
    • 'rgbw' (red, green, blue, white)
    • 'rgbw_auto' (red, green, blue, automatically calculated white value)
    • 'drgb' (dimmer, red, green, blue)
    • 'rgbd' (red, green, blue, dimmer)
    • 'drgbw' (dimmer, red, green, blue, white)
    • 'rgbwd' (red, green, blue, white, dimmer)
    • 'switch' (single channel 0 or 255)
    • 'custom_white' (configure dimmer and temperature in any required channel order)
  • default_level (Optional; default=255): Default level to assume the light is set to (0-255).
  • default_off (Optional; default=True): Whether Home Assistant should assume the device is off by default. See default_level.
  • channel_setup (Optional; for custom_white lights): String to define channel layout where:
    • d = dimmer (brightness 0 to 255)
    • t = temperature (0 = warm, 255 = cold)
    • T = temperature (255 = warm, 0 = cold)
    • h = warm white value (scaled for brightness)
    • c = cool white value (scaled for brightness)

Please use light_profiles.csv if you want to specify a default colour or brightness to be used when turning the light on in HA.

  • default_rgb (Optional): Default colour to give to Home Assistant for the light in the format [R,G,B]
  • white_level (Optional): Default white level for RGBW lights (0-255)
  • transition (Optional): Set a default fade time in seconds for transitions. Can be a decimal number. Transition times specified through the turn_on / turn_off service calls in Home Assistant will override this behaviour.

To enable debug logging for this component:

logger:
  logs:
    custom_components.dmx.light: debug

Features

Supported features

  • Transition time can be specified through services to fade to a colour (for RGB fixtures) or value. This currently is set to run at 40 frames per second. Multiple fades at the same time seem to be possible.
  • Brightness: Once a channel is turned on brightness can be controlled through the Home Assistant interface.
  • White level: For RGB lights with a separate white LED this controls the white LED. This can be automatically controlled using the colour wheel on 'rgbw_auto' lights, or manually with 'rgbw'
  • Color temperature: For dual channel warm white/cool white fixtures this tunes the white temperature.

Limitations

  • DMX frames must send values for all channels in a universe. If you have other channels which are controlled by a different device or lighting desk, set Home Assistant to default to 0 values; and set your Art-Net device to merge on highest value rather than most recent update. This means channels could be controlled from either the desk or Home Assistant.

Future improvements

  • automatically default dmx_channels based on number of configured devices
  • device groups/linking

Support for other hardware

  • Simple, FTDI-chip based USB2DMX cables can be made working with this component through a UDP proxy implemented in C.
  • DMX King eDMX1
  • Enttec ODE MK2
  • Enttec DIN Ethergate

See Also

Art-Net™ Designed by and Copyright Artistic Licence Holdings Ltd