Previous discussion on this topic.
Nothing has changed since then; so far as I know it is by design that buttons “light up red” to indicate User action, not to reflect Item state.
My use-case was slightly different (scene selection with buttons) but the problem was the same - no matter if I used Switch or Selection, I can never get the option to activate when update came from the bus (KNX).
My item: Number mainBathroomHeatingMatScene "Main bathroom heater scene [MAP(mainbathroom_heating_scenes.map):%s]" <heating> (mainBathroom, restoreOnStartUpMapDB) { channel="knx:device:bridge:generic:mainBathroomHeatingMatScene" }
Sitemap that worked (i.e. switched modes) but did not update when set from the bus:
Switch item=mainBathroomHeatingMatScene label=“Heating mode []” mappings=[0=“AUTO”, 1=“Force-ON”, 2=“Force-OFF”]
What I have found out that OH, for some reason, needs to see a decimal for the mapping to match, thus this worked for me: