Switching and dimming DMX light with a KNX wall switch

,
Tags: #<Tag:0x00007fc8fbfb4340> #<Tag:0x00007fc8fbfb4278>

I’m trying to switch and dimm a LED stripe attached to a DMX dimmer with a KNX wall switch. Unfortunately it works only partly and I’m looking for a solution.

I’m using a Enttec DMX Bridge (ODE MK2). This is my dmx.thing file:

Bridge dmx:artnet-bridge:mybridge [ mode="unicast", address="192.168.178.7", universe=0 ] {
    dimmer dmx4_spiegel [dmxid="4", fadetime=5000, turnonvalue="127", turnoffvalue="0" ]
}

I’m testing two different KNX wall switches. The first one is a MDT BE-GT2 Glastaster II (I will call it Glastaster) and the second is a usual wall switch connected to a ABB binary entry BE/S8.20.2.1.
This is my knx.thing file:

Bridge knx:ip:bridge “KNX IP Interface”

[
    type="ROUTER",
    ipAdress="192.168.178.17",
    portNumber=3671,
    readingPause=50,
    responseTimeout=10,
    readRetriesLimit=3,
    autoReconnectPeriod=5,
    localSourceAddr="15.15.12",
    localIp="192.168.178.18"
]
{
    Thing device OG_Bad_Glastaster "Glastaster im Bad" [address="1.3.1", fetch=false, pingInterval=600, readInterval=0]
    {
        Type switch-control : Spiegel_Licht_Schalten "Spiegellicht ein-/ausschalten" [ga="1.001:3/4/3"]
        Type dimmer-control : Spiegel_Licht_Dimmen "Spiegellicht dimmen" [switch="1.001:3/4/3", position="5.001:3/4/5", increaseDecrease="3.007:3/4/4"]
        Type datetime-control : Datum "Datum" [ ga="11.001:3/1/3" ]
        Type datetime-control : Zeit "Zeit" [ ga="10.001:3/1/1" ]
    }

    Thing device OG_BES8_Binaereingang "Binaereingang im OG" [address="1.3.3", fetch=false, pingInterval=600, readInterval=0]
    {
        Type switch-control : Spiegel_Licht_Schalten "Spiegellicht ein-/ausschalten" [ga="1.001:3/3/1"]
        Type dimmer-control : Spiegel_Licht_Dimmen "Spiegellicht dimmen" [switch="1.001:3/3/1", increaseDecrease="3.007:3/3/2"]
    }
}

These are my item definitions:

DateTime OG_Bad_Uhrzeit 		"Datum [%1$tA, %1$td.%1$tm.%1$tY]" 	{channel="ntp:ntp:demo:dateTime", channel="knx:device:bridge:OG_Bad_Glastaster:Datum", channel="knx:device:bridge:OG_Bad_Glastaster:Zeit"}
Switch OG_Bad_Spiegel_Schalten "Spiegellicht im Bad Schalten" {channel="knx:device:bridge:OG_Bad_Glastaster:Spiegel_Licht_Schalten", channel="dmx:dimmer:mybridge:dmx4_spiegel:switch" }
Dimmer OG_Bad_Spiegel_Dimmen   "Spiegellicht im Bad Dimmen"  {channel="knx:device:bridge:OG_Bad_Glastaster:Spiegel_Licht_Dimmen", channel="dmx:dimmer:mybridge:dmx4_spiegel:brightness" }
Switch OG_Bad_Spiegel_Schalten2 "Spiegellicht im Bad Schalten" {channel="knx:device:bridge:OG_BES8_Binaereingang:Spiegel_Licht_Schalten", channel="dmx:dimmer:mybridge:dmx4_spiegel:switch" }
Dimmer OG_Bad_Spiegel_Dimmen2   "Spiegellicht im Bad Dimmen"  {channel="knx:device:bridge:OG_BES8_Binaereingang:Spiegel_Licht_Dimmen", channel="dmx:dimmer:mybridge:dmx4_spiegel:brightness" }

For the items OG_Bad_Spiegel_Schalten and OG_Bad_Spiegel_Dimmer I have created in parallel two corresponding objects on HABpanel. They both work and I can switch and dimm the light. But, when I use the KNX wall switch (the Glastaster) I can switch the light on and off only, but not dimm it. Funny thing is that if I dimm the light using HABpanel to let say 7% the display on the Glastaster correctly shows this value.

What’s wrong here?

Have you checked the type of values sent from the glastaster? I am pretty sure that the glasstaster sends 4bit telegrams when dimming (it is called relative dimming), which I don’t think the current Dmx configuration understands as a viable datapoint!
In order for your setup to work you should configure a different method of dimming using 1byte object with a decrease increase in the value sent when activating dimming in the glasstaster (check the technical manual of the mdt product, I remember this is possible).

Well, the OH Item should be dealing with that. Storing an abstract dimmer % value, and the bindings deal with the bits and bytes that any particular technology requires.

I don’t think that this entirely true! There are some transitions done, which is true, but not all can be done as you imply, because the concept of an item should be entirely rewritten. The bindings themselves should offer this capability. Just my 2 cents.

I checked it. The Glastaster is sending 4 bit values (DTP 3.007).
The one issue could be, that the DMX binding cannot deal with it or the latter has problem to deal with start and stop commands !?

It might be the start stop commands!
Try the workaround I’ve explained above.

I just turned on the Group Monitor to observe the values send from the Glastaster. When I hit and hold down the Dimm+ button, the Glastaster is sending “$09 | Increase 100%”. When I release the button the Glastaster is sending “$00 | Decrease Stop”. Curious.

I will try out

See https://www.openhab.org/addons/bindings/knx/#things
You have to set frequency to something reasonable, for example

Type dimmer-control : Spiegel_Licht_Dimmen "Spiegellicht dimmen" [ switch="1.001:3/3/1", increaseDecrease="3.007:3/3/2", frequency="400" ]

Thanks Udo! I did it, but I still cannot dimm the light. Both devices, the OG_Bad_Glastaster and the “normal” wall switch connected to OG_BES8_Binaereingang can switch the DMX light ON and OFF, but not dimm it.
Any other ideas?

You should see INCREASE/DECREASE commands twice a second when dimming in the events.log. If not, did you already restart openHAB?

I have restarted OH, but I can’t see INCREASE/DECREASE commands in the event.log. I checked again the settings of the device in ETS and everything is OK. It should have send the INCREASE/DECREASE commands every 0,6s…

What makes me really concern right now is that after removing one old KNX item I can still see it in the event.log
A restart of openHAB. Something is really wrong here …

‘Ghost’ Items are usually associated with caching issues

I followed the instructions to clear the cache and tmp area, but the Ghost Item is still there !?
This is the item definition which I’ve definitaly deleted when I moved fron KNX1 to KNX2 binding…

DateTime KNX_Uhrzeit             "Time: [%1$tT]"     {channel="ntp:ntp:demo:dateTime", knx="11.001:3/1/3, 10.001:3/1/1"}

… and this is the kind of event I still see.

2018-09-03 08:03:58.312 [vent.ItemStateChangedEvent] - KNX_Uhrzeit changed from 2018-09-03T08:02:58.199+0200 to 2018-09-03T08:03:58.200+0200

I can see this item in the PaperUI as well. Are there any other reasons or places for Ghost Items?
…I’m sure, I should solve those issues before continuing to explore my original problem…

I think you’re right - sort out the Ghosts (there may be others) before continuing.

Try following this story involving (a different) 1.x binding

Thanks for this very good hint. I just read it and it looks very promissing to me. Unfortunataly I‘m on a business trip until Thursday and cannot verify it. I‘ll get back in three days from now.