Nachfragen sind grundsätzlich nicht möglich, allerdings könntest Du etwas in der Richtung realisieren. Dazu brauchst Du ein zusätzliches Item und ein bisschen Code. So würde ich das realisieren:
Items:
Code: Alles auswählen
Switch Wildkuehlung "Wildkuehlung" { channel="..." }
Number WildKuehlungAus
Sitemap:
Code: Alles auswählen
Switch item=Wildkuehlung label="Wildkühlung ist Aus" icon=own_sau mappings=[ON="Einschalten"] visibility=[Wildkuehlung==OFF]
Switch item=WildkuehlungAus label="Wildkühlung ist An" icon=own_sau mappings=[2="Ausschalten"] visibility=[WildkuehlungAus==1]
Switch item=WildkuehlungAus label="Wildkühlung wirklich aus?" icon=own_sau mappings=[0="OK", 1="Cancel" ] visibility=[WildkuehlungAus==2]
Rules:
Code: Alles auswählen
var Timer tTimeout = null
rule "Wildkühlung an"
when
Item Wildkuehlung received command ON
then
WildkuehlungAus.postUpdate(1)
end
rule "Wildkühlung aus"
when
Item WildkuehlungAus received command
then
if(!(receivedCommand instanceof Number)){
WildkuehlungAus.postUpdate(1)
return;
}
tTimeout?.cancel
if(receivedCommand == 2) {
tTimeout = createTimer(now.plusSeconds(10), [|
WildkuehlungAus.postUpdate(1)
])
} else if(receivedCommand == 0) {
Wildkuehlung.sendCommand(OFF)
WildkuehlungAus.postUpdate(0)
}
end
Getestet habe ich das jetzt nicht, aber hier die Theorie dazu:
Im ausgeschalteten Zustand wird das normale Widget angezeigt, mit einer Schaltfläche zum Einschalten. Wird es eingeschaltet, so wird dieses Widget ausgeblendet und durch ein anderes Widget ersetzt, welches genauso aussieht, mit dem Untercchied, dass es mit einem anderen Item verbunden ist und die Schaltfläche zum Ausschalten dient.
Wird die Ausschaltfläche betätigt, wird auch dieses Widget ausgeblendet und durch das nächste Widget ersetzt, welches "die Nachfrage stellt".
Die Rule startet derweil einen Timer, der das Item nach 10 Sekunden wieder auf 1 setzt (Normalzustand Wildkuehlung ON)
Wird vorher die Schaltfläche Cancel betätigt, wird der Timer abgebrochen und das Item direkt auf 1 gesetzt.
Wird die Schaltfläche OK betätigt, wird Wildkuehlung OFF gesendet und das Item auf 0 gesetzt. Damit ist der Normalzustand Wildkuehlung OFF erreicht.
Man könnte auch ausschließlich mit dem Proxy Item in der Sitemap arbeiten, der Punkt ist die Verwendung der Visibility.
Beim Systemstart muss eine weitere Rule prüfen, ob Wildkuehlung ON oder OFF ist und WildkuehlungAus entsprechend auf 0 oder 1 setzen.
Achtung! Wenn man an der Sitemap arbeitet, ist es wichtig, openHAB anschließend neu zu starten, damit die Sitemap korrekt funktioniert.