npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-dmxplugin

v0.0.4

Published

Control your DMX lights using homebridge

Downloads

8

Readme

homebridge-dmxplugin

Control your DMX lights using homebridge. Supports single channel dimmer lights (W), RGB, RGB+Amber (RGBA), RGBW, RGBWA and Temperature White lights with cold and warm white LEDs (WWCW). Each light can have up to two channels per color and up to two dimmer/shutter/... channels that are always set to 255 (or 100%).

setup

Install using homebridge-config-ui. At the moment, only works out of the box if homebridge is installed in default paths on linux. Setup on Raspberry Pi 4/400:

  • add dtoverlay=uart3 to /boot/config.txt
  • if not already installed, install homebridge using apt (https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Debian-or-Ubuntu-Linux)
  • log into homebridge config ui and install this plugin (search for homebridge-dmxplugin)
  • connect a max485 to TX of UART3 on the GPIO header of the pi and to a DMX cable or socket
  • config your DMX lights using the explanation below
  • if you see messages like "Serial not available" or "It seems like the server application isn't running" you probably didn't reboot after changing /boot/config.txt
  • if you get errors like "file not found" your paths are incorrect. Get a fresh copy of dmx-cli (https://github.com/fritzlb/dmx-cli) and copy it to /var/lib/homebridge/node_modules/homebridge-dmxplugin/dmx-cli. Then reboot.
  • you can ignore messages like "This server application seems to be already running". Every DMX light you configure tries to start the server but the server can only start once. Also, when restarting homebridge it stays alive.
  • if you are encountering performance issues on low powered hardware, you should set "interval" to something higher or reduce the number of lamps in config.json.

Example config:

(Accessory section)

"accessories": [
    {
        "accessory": "homebridge-dmxplugin",
        "name": "DMX Lamp White",
        "interval": 500,
        "type": "WWCW",
        "x": 1,
        "ww": 7,
        "ww2": 100,
        "cw": 6
    },
    {
        "accessory": "homebridge-dmxplugin",
        "name": "DMX Lamp RGBA",
        "interval": 500,
        "type": "RGBA",
        "x": 1,
        "r": 3,
        "g": 4,
        "b": 5,
        "a": 8
    },
    {
        "accessory": "homebridge-dmxplugin",
        "name": "DMX Lamp UV",
        "interval": 500,
        "type": "W",
        "x": 1,
        "w": 9
    },
    {
        "accessory": "homebridge-dmxplugin",
        "name": "Eurolite Spot",
        "interval": 500,
        "type": "RGB",
        "x": 17,
        "r": 14,
        "g": 15,
        "b": 16
    }
],

Explanation:

| Config Key | Description | Examples | Required? | |--------------|-----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------| | accessory | always homebridge-dmxplugin | | Yes, by homebridge | | name | your name for the device that'll show up in homebridge | | yes | | type | The type of your DMX light. | W (single dimmer or white for halogen lamps), WWCW (Warm white + cold white), RGB, RGBA, RGBW, RGBWA | yes | | interval | The interval in which the plugin checks for new data (for example a color change) in ms | 500(0.5s), 1000 (1s), 3000 (3s, default) | optional | | dmx-cli-path | Path of your dmx-cli installation. Not implemented yet | /var/lib/homebridge/node_modules/homebridge-dmxplugin/dmx-cli | yes | | x / x2 | The DMX channel(s) that is(are) always set to max (255/100%) | The dimmer channel of your 4ch light, for example 4 | optional | | w / w2 | The DMX channel(s) of your light for controlling white | if your start adress is 5 and it's a simple dimmer, it's 5 | required with types W, RGBW, RGBWA, else ignored (use ww(2)/cw(2) instead | | ww / ww2 | The DMX channel(s) of your light for controlling warm white | | required with type WWCW, else ignored (use w/w2 instead) | | cw / cw2 | The DMX channel(s) of your light for controlling cold white | | required with type WWCW, else ignored (use w/w2 instead) | | r / r2 | The DMX channel(s) of your light for controlling red | | required with types RGB, RGBW, RGBA, RGBWA | | g / g2 | The DMX channel(s) of your light for controlling green | | required with types RGB, RGBW, RGBA, RGBWA | | b / b2 | The DMX channel(s) of your light for controlling blue | | required with types RGB, RGBW, RGBA, RGBWA | | a / a2 | The DMX channel(s) of your light for controlling amber | | required with types RGBA, RGBWA | | | | | |

Note that white and amber channels are being automatically generated and depending on your setup colors could look weird. In that case simply add two accessories, one for RGB and another for amber or white (or even UV (or lime if you're owning those expensive ETC colorsource lights)).

Contributing

If you encounter any issues, either fix them and create a pr or simply create an issue with a detailed description of your finds. For feature requests please create an issue first (before creating a pr). Steps for developing on this: Clone this repo and run npm link. Important: Homebridge needs to be started without --strict-plugin-resolution for npm link to work properly. Simply remove the flag from /opt/homebridge/start.sh. Locally installing this plugin might break homebridge updates, so use a dedicated development environment. Also, if you want to use the version of node homebridge ships with, run export PATH=$PATH:/opt/homebridge/bin

info

And how does this plugin work? Every time an accessory you configured loads, it tries to start dmx-server.py, a small python script designed to open a serial port and output dmx compliant data. If you change anything with your configured lamps inside the home app, this plugin executes dmx-cli.py which updates the dmx values that are being sent by dmx-server.py. Not very elegant, I know. But it works.