.Things file - Bind DMX stream to specific LAN address

@J-N-K

Can I ask a quick question…

In the PaperUI setup for a DMX bridge, there is an option to bind the data stream to a specific LAN address.

I’ve had to use the textual configuration for the JINX! control, simply because there are lots of very similar Things and Items, so it’s easier to copy and paste.

My question is…

How do I bind the output of the Thing file Bridge to a particular LAN adapter / address?

The address I want to bind it to is 192.168.0.230

The current Thing file looks like this :

      Bridge dmx:sacn-bridge:JinxBridge "JinxsACN" [ mode="multicast", universe=1000 ] {
  dimmer JinxMaster  "Jinx Master Dimmer" [dmxid="7", fadetime=1000, dimtime=1000 ]
  dimmer JinxChaseChannel  "Jinx Chase Channel" [dmxid="1" ]
  chaser chase01 "Jinx Chase 01" [dmxid="1", steps="0:1:0" ] 
  chaser chase02 "Jinx Chase 02" [dmxid="1", steps="0:2:0" ] 
  chaser chase03 "Jinx Chase 03" [dmxid="1", steps="0:3:0" ] 
  chaser chase04 "Jinx Chase 04" [dmxid="1", steps="0:4:0" ] 
  chaser chase05 "Jinx Chase 05" [dmxid="1", steps="0:5:0" ] 
  chaser chase06 "Jinx Chase 06" [dmxid="1", steps="0:6:0" ]
  chaser chase07 "Jinx Chase 07" [dmxid="1", steps="0:7:0" ] 
  chaser chase08 "Jinx Chase 08" [dmxid="1", steps="0:8:0" ] 
  chaser chase09 "Jinx Chase 09" [dmxid="1", steps="0:9:0" ] 
  chaser chase10 "Jinx Chase 10" [dmxid="1", steps="0:10:0" ] 
  chaser chase11 "Jinx Chase 11" [dmxid="1", steps="0:11:0" ] 
  chaser chase12 "Jinx Chase 12" [dmxid="1", steps="0:12:0" ] 
  chaser chase13 "Jinx Chase 13" [dmxid="1", steps="0:13:0" ]
  chaser chase14 "Jinx Chase 14" [dmxid="1", steps="0:14:0" ] 
  chaser chase15 "Jinx Chase 15" [dmxid="1", steps="0:15:0" ] 
  chaser chase16 "Jinx Chase 16" [dmxid="1", steps="0:16:0" ] 
  chaser chase17 "Jinx Chase 17" [dmxid="1", steps="0:17:0" ] 
  chaser chase18 "Jinx Chase 18" [dmxid="1", steps="0:18:0" ] 
  chaser chase19 "Jinx Chase 19" [dmxid="1", steps="0:19:0" ] 
  chaser chase20 "Jinx Chase 20" [dmxid="1", steps="0:20:0" ]
}

Easy - the documentation is actually pretty clear about it

Bridge dmx:sacn-bridge:JinxBridge "JinxsACN" [ mode="unicast", address="192.168.0.230", universe=1000 ] {

Thanks, but that’s not what I’m referring to.

In order for this to work, I must MultiCast, but only out to 1 of the 2 LAN adapters.

The option looks like this in PaperUI

Ref, Local Network Address

The IP 192.168.0.230 is unicast, not multicast.

Thanks, yes I completely understand the difference between UniCast and MultiCast :slight_smile:

The issue is that it’s not possible to setup a multi-cast bridge in PaperUI, because it asks for a receiver IP address, which defeats the objective of Multi-casting / Broadcasting.

However, it IS possible to setup a multi-cast bridge with the .Things file (This I have working very well)

The question remains…

How can I bond / bind / lock the outgoing data stream to one of the LAN Adapters on the machine that openHAB2 is running on.

The image above shows the PaperUI option for this, I was only asking if it is possible within the Text file.

This is really important, as I don’t want to flood the HOME network with ART-Net data.

(There is a REALLY good reason why I need to multi-cast / broadcast, as opposed to Uni-cast)

Ah. Well, I do not own any dmx hardware (yet :wink: ) but I would expect that either you have to configure the interface used for multicast (you would do this by selecting the ip set to the interface…) or simply set the default multicast ip. openHAB would chose the correct interface by itself.
Do you have any option in Paper UI to chose the interface?

Hi

If you fancy dabling with DMX / SPi stuff, feel free to give me a shout if you need any help.

Yes, the paperUI has a section in the Bridge Thing config for entering the outgoing IP address.

(See image above)

The problem is that if I select Multi-Cast, enter the transmission address / local address but don’t enter a receiver address, the Thing states that there is a configuration error.

Whereas, setting a multicast bridge in a text Thing file works perfectly, I just don’t know what the syntax is for setting the outgoing IP address / adapter.

But that is not the complete input section. there should be a visible parameter name.

If not, please configure in Paper UI, then open REST API and go to Things/GetThings… (don’t know the exact path, but you will find it anyway…) and search for your configured parameter, the real name of the parameter (which has to be used in a *.things file) should be visible in the json statement.

1 Like

Well that wasn’t a feature I was aware of :smile:

Thank you :slight_smile:

Using the Rest documentation UI, and choosing Things GET /Things/{thingUUID} I got this response.

So now all I have to do is test the “localaddress” variable in the text config :smile:

{
  "statusInfo": {
    "status": "ONLINE",
    "statusDetail": "NONE"
  },
  "editable": true,
  "label": "ArtNet 200 Uni5 Toilet",
  "configuration": {
    "address": "192.168.178.200",
    "refreshmode": "standard",
    "applycurve": "1/512",
    "universe": 5,
    "refreshrate": 30,
    "localaddress": "192.168.178.42"
  },
  "properties": {},
  "UID": "dmx:artnet-bridge:7d81ee2f",
  "thingTypeUID": "dmx:artnet-bridge",
  "channels": [
    {
      "linkedItems": [],
      "uid": "dmx:artnet-bridge:7d81ee2f:mute",
      "id": "mute",
      "channelTypeUID": "dmx:mute",
      "itemType": "Switch",
      "kind": "STATE",
      "label": "Mute",
      "description": "Mutes the DMX output of the Bridge",
      "defaultTags": [],
      "properties": {},
      "configuration": {}
    }
  ],
  "location": ""
}
```

#### Response Code

200

#### Response Headers

{
"content-length": "626",
"server": "Jetty(9.4.11.v20180605)",
"content-type": "application/json"
}

Now here’s an interesting observation…

If I setup a new Multi-Cast bridge in PaperUI, with a valid receiving address of an active device.

Then DELETE the receiving address after the new Thing has been added…

IT WORKS :slight_smile:

{
  "statusInfo": {
    "status": "ONLINE",
    "statusDetail": "NONE"
  },
  "editable": true,
  "label": "sACN/E1.31 Bridge test",
  "configuration": {
    "mode": "multicast",
    "refreshmode": "standard",
    "universe": 1000,
    "refreshrate": 30,
    "localaddress": "192.168.178.42"
  },
  "properties": {},
  "UID": "dmx:sacn-bridge:a34d7d67",
  "thingTypeUID": "dmx:sacn-bridge",
  "channels": [
    {
      "linkedItems": [],
      "uid": "dmx:sacn-bridge:a34d7d67:mute",
      "id": "mute",
      "channelTypeUID": "dmx:mute",
      "itemType": "Switch",
      "kind": "STATE",
      "label": "Mute",
      "description": "Mutes the DMX output of the Bridge",
      "defaultTags": [],
      "properties": {},
      "configuration": {}
    }
  ],
  "location": "Test"
}

As you already found out localaddress should be used for setting the sending address. And at least with the latest version I can’t reproduce the problem of a required receiver address in multicast mode. Which version are you running?

Yeah indeed, I’m waiting for my client to swap a LAN cable before I know if it’s done the trick, but I can’t see why it wouldn’t :smile:

Only the version that is loaded by adding the binding from within PaperUI.

I haven’t loaded your very latest version into any machine yet, as I know it’ll take me hours and hours to achieve the clock feature I’m thinking of that the new version permits me to try.

Hi

I’ve been having terrible trouble getting the remote control of Jinx (on a Windows 7 machine) to work with openHAB2, on a Linux (ODroid C2 with Ubuntu) machine with 2 LAN ports.

(One build onto the motherboard and the other a USB dongle)

Nothing I did with either machine got the remote working.

So in absolute frustration, I set everything to what I thought would work, then rebooted both machines.

Now it works perfectly again.

So even with Linux it seems that a reboot will put things straight.