Sending off command to group of lights results in some lights staying on, with missing "changed to" log message

This is a common issue in question of knx (but there are other bindings for which this is true, too). By sending a command to a group Item, this is serialized to many Items. Each Item is commanded at once, but sadly, the Binding does not buffer the commands and so the commands are sent too quick (and this results in loosing some commands).
It’s best practice to configure knx items to use a state return group address. To ensure that the Item always show the real state, you have to set the item to autoupdate=“false”.
Channel

Type switch : ch1 "My switch" [ga="1/0/1+<1/0/2"]  // 1/0/1 : set actuator to ON/OFF, 1/0/2 : get state of actuator

Item:

Switch MySwitch "My Switch [%s]" { channel="knx:bridge:mything:ch1", autoupdate="false" }

If there are lost commands, the common way would be to use a proxy item and a rule instead of the group Item directly:

rule "send all off"
when
    Item MyProxyItem received command OFF
then
    MyGroupItem.members.filter[ m|m.state != OFF ].forEach[ i|  // each Light which isn't OFF
        i.sendCommand(OFF)                                      // switch a light OFF
        Thread::sleep(100)                                      // wait 0.1 Seconds
    ]
end

This way the commands are sent with a little delay.

1 Like