Knxdmxd

A KNX (EIBD) to E1.31 daemon

This project is maintained by J-N-K

What is knxdmxd

knxdmxd is a daemon that connects building automation using KNX (via EIBD) to DMX lighting equipment using E1.31.

Command line options

-u <address>

Address of EIBD, defaults to local:/tmp/eib. You can use EIBD-IP connections with ip:<IP-address>.

-c <filename>

Path and filename of configuration file. It is recommended to locate the knxdmxd.conf in /etc/knxdmxd.conf. If no option is given, the current directory is used (i.e. ./knxdmxd.conf).

-p <filename>

Path and filename of PID file. It is recommended to locate the knxdmxd.pid in /var/run/knxdmxd.pid. If no option is given, the current directory is used (i.e. ./knxdmxd.pid).

-d

Run as daemon.

Configuration

the configuration file conforms to JSON-standard. Malformed configuration files may cause knxdmxd to crash. Strings have to be encapuslated with quotation marks.

channels

Channels are the basic building block of the configuration. They consist of at least have a name and DMX-address. Example:

"channels" : [
  { "name" : "test", "dmx" : "2.450", "statusga" : {"switch" : "14/6/3", "value" : "14/7/3" }
]

"name" : <string>

Channel names are not restricted in length or composition. They must be unique within the configuration. It is recommended not to use umlauts.

"dmx" : <string>

The DMX address has the notation <universe>.<channel>. According to E1.31 standard numbering, channel 0 and universe 0 do not exists. If the universe part is ommitted, universe 1 is assumed.

"statusga" : <object>

This object is optional. It can consist of two members "switchquot; and "value". The old-style status-object (a single string for the value-address) is still supported but deprecated and my be removed in future versions.

"switch" : <string>

If defined, a telegram (DPT1) will be send via EIBD to the specified address whenever a crossfade finishes. The value is 0/false/off if the channel value is 0 and 1/true/on if the channel value is above 0.

"value" : <string>

If defined, a telegram (DPT5) will be send via EIBD to the specified address whenever a crossfade finishes. The value is the current value of the channel.

"factor" : <float>

Defaults to 1.0. All values set within knxdmxd for this channel are multiplied with this value. Can be used to adjust colors in RGB setups or for brightness corrections in multi-unit setups.

dimmers

Dimmers allow changing the value of single channels. Example:

"dimmers": [  
  { "name" : "test", "channel" : "test", "ga" : { "switch: "14/0/1", "value": "14/1/1" }, "turnonvalue" : 255, "fading" : 0 }
]

"name" : <string>

Dimmer names are not restricted in length or composition. They must be unique within the configuration. It is recommended not to use umlauts.

"channel" : <string>

Must contain a valid channel name defined in the channels section.

"ga" : <object>

Group address(es) that this dimmer should respond to. This object can consist of two objects: "switch" and "value" The old-style format (string instead of object for value-only-address) is deprecated and may be removed in future versions. The object

"switch" : <string>

Group address that switches this dimmer on (1) or off (0). The telegram has to be DPT1. If a "turnonvalue"-value is defined, the dimmer ist set to that value, if the configured value is 0 or missing, the last value before turn-off is used.

"value" : <string>

Group address that changes the value of this dimmer. The telegram has to be DPT5.

"turnonvalue" : <integer>

This value is optional and used as the value that the dimmer ist set to, when it is switched on by the "switch"-address. If the value is missing or set to 0, the last-value before turn-off is used.

"fading" : <float>

Time in seconds that is used to fade between to values. A value of 0.0 disables fading (instant change).

scenes

Scenes change multiple channel values to predefined values. Example:

"scenes": [ 
  { "name" : "Bad_an",
    "trigger" : {
      "go" : {"knx" : "1/0/130", "value" : 1 }
    },
    "data" : [
      { "channel" : "bad_r", "value" : 255 },
      { "channel" : "bad_g", "value" : 255 },
      { "channel" : "bad_b", "value" : 255 }
    ],
    "fading" : {  
      "in" : 1.0,
      "out": 1.0,
    }
  }
]

"name" : <string>

Scene names are not restricted in length or composition. They must be unique within the configuration. It is recommended not to use umlauts.

"trigger" : <object>

(see trigger section below)

"data" : <array>

The data section contains an array of objects, each describing one channel. Each channel object consists of two values, the name of the channel (as defined in the channels section above) and a corresponding value for this scene.

"fading" : <object>

The fading object is optional. If no fading is defined, A value of 0.0 is assumed. Possible childs of the fading object are

"in" : <float>

Time in seconds that is used, if the previous value of the channel is below the value defined for this scene.

"out" : <float>

Time in seconds that is used, if the previous value of the channel is above the value defined for this scene.

"time" : <float>

Time in seconds that is used for all value changes. This setting has priority over "in" and "out".