Rule triggered twice with knx binding

I saw the other topic about rules triggered twice, but I think this one is different, so I started a new topic.

My rule is:
rule "Workshop Light Fallback" when Item LightWorkshop changed to ON then logInfo("debug", "rule hit") fallbackLogic.apply(LightWorkshop, OFF, 20, fallbackTimers) end
The item is
Switch LightFrontDoor "Licht Haustür" (test) {knx="3/1/1+3/0/1"}

The first group address (3/1/1) is the switching one, the second address is the status address (sending the current status of the switch).

If the light gets switched on from the wall-switch, it sends the command to the 3/1/1 and the actor sends the new status to the 3/0/1. I guess that’s why the rule is triggered twice.

Is there a way around that? I guess it should be a common problem.

The log shows:
2016-01-05 21:35:05.441 [INFO ] [runtime.busevents ] - LightWorkshop received command ON 2016-01-05 21:35:05.442 [INFO ] [org.openhab.model.script.debug] - rule hit 2016-01-05 21:35:05.442 [INFO ] [org.openhab.model.script.debug] - rule hit 2016-01-05 21:35:05.478 [INFO ] [runtime.busevents ] - LightWorkshop state updated to ON

I don’t know much about the KNX binding so take this with a grain of salt. Can you separate the 3/1/1 and 3/0/1 into separate switches and then use a proxy switch to represent its state on your sitemap.

Then create rules so when the proxy receives a command (i.e. the switch is thrown from within openHAB) it pushes the new state to 3/1/1. The second rule triggers on updates to 3/0/1 and postUpdate the new state to the proxy to keep everything in sync. Since the first rule only triggers on commands it won’t trigger on the postUpdate. And any changes that occur on the wall switch will get pushed to the proxy but not trigger the rule.

The Status should’nt trigger the rule, as the received Status from bus should be the same as the previously sent Command.

Could you please try out the parameter autoupdate? {knx="3/1/1+<3/0/1, autoupdate=false"}

I’ll give that a try later on today. What is that option for? And is it intended that you included the < character? The status is sent automatically to the bus, so it’s not needed that OH querys the group address.

Also you can see at the timestamps in the log, that the rule is hit twice within milliseconds. I guess that’s the problem, OH receives both bus commands nearly at the same time, so the state isn’t already updated from the command, when the status is also delivered.

I guess that would work, but then I need that extra work for every switch (or at least every one with attached rules) and that’s a lot of unnecessary, annoying work.

I think the above should be

{knx="3/1/1+<3/0/1", autoupdate="false"}

Same problem with the autoupdate parameter. Rule gets hit twice.