Da Du hier mit zwei GA arbeiten musst, wird Dir nichts anderes übrig bleiben, als eine Rule zu verwenden (bzw. derer zwei).
Ich gehe davon aus, dass Du noch ein weiteres Item hast, anhand dessen Du den Status der zweiten GA erkennen kannst. Sieht dann etwa so aus:
Code: Alles auswählen
rule "set override"
when
Item MeinNumberItem received command // Das Item wurde über die UI geschaltet
then
val nValue = if(receivedCommand instanceof Number) (receivedCommand as Number) else 0
switch(nValue) {
case 0: {
automatik.sendCommand(0)
licht.sendCommand(0)
}
case 2: {
automatik.sendCommand(1)
licht.sendCommand(0)
}
case 3: {
automatik.sendCommand(1)
licht.sendCommand(1)
}
}
end
rule "set override"
when
Item licht changed or // Licht wurde geschaltet
Item automatik changed // Automatik wurde geschaltet
then
var Integer iValue = if(licht.state == ON) 1 else 0
iValue += if(automatik.state == ON) 2 else 0
MeinNumberItem.postUpdate(iValue)
end
Die erste Rule schaltet abhängig von der UI die Zwangssteuerung ein oder aus und gleichzeitg das Licht an oder aus. Zu beachten ist, dass die Tasten 0, 2 und 3 codieren, nicht 0,1 und 2. Das höherwertige Bit codiert die Zwangssteuerung, das niederwertige Bit den Zustand des Lichts.
Die zweite Rule reagiert auf Zustandsänderungen (Zwangssteuerung vom Bus aus) und setzt das Item für die UI entsprechend.
Die erste Rule kann mit Tricks auch kürzer gestaltet werden:
Code: Alles auswählen
rule "set override"
when
Item MeinNumberItem received command // Das Item wurde über die UI geschaltet
then
if(!(receivedCommand instanceof Number))
return;
val mode = (receivedCommand as DecimalType).toBigDecimal.toBigInteger
automatik.sendCommand(mode.testBit(1))
licht.sendCommand(mode.testBit(0))
end
Allerdings ist da vielleicht nicht so gut erkennbar, was genau passiert...
openHAB5.0.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox 9.1.2 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte