Punkt 1: Die erste Rule soll nicht nur dann triggern, wenn das Fenster geöffnet wird, sondern auch, wenn das Fenster geschlossen wird.
Punkt 2: Es soll kein Command gesendet werden, sondern ein postUpdate. Ich habe oben geschrieben, dass das essenziell ist. Das geht über Ausführen eines Scripts, dort gibst Du dann sowas ein:
Code: Alles auswählen
if(BadOGFensterkontakt_Kontakt.state == OPEN) ON else OFF
Punkt 4: Das Proxy Item muss das Expire als Metadaten eingetragen bekommen.
Proxy Item: Ein Proxy ist ein Stellvertreter. Ein Proxy Item ist also ein Item, welches stellvertretend für ein anderes Item steht. Es übernimmt die Aufgaben des eigentlichen Items, weil das eigentliche Item für die Aufgabe nicht geeignet ist. In diesem Fall ist es so, dass die Zeitverzögerung ein Kommando an das Item sendet. Contact Items haben keine Commands. Außerdem wird der Status des Items durch das Command geändert, das eigentliche Item bekommt seinen Status aber vom Fensterkontakt, der soll ja nicht verfälscht werden. Man koppelt also das Proxy Item, so dass der Status des Proxy Items für gewöhnlich synchron mit dem eigentlichen Item ist. Das macht die erste Rule. Man kann das Item nun aber auch anders verwenden, beispielsweise nach Zeit automatisch einen Befehl senden (das macht das Expire) und diesen Befehl durch eine andere Rule auswerten (das macht die 2. Rule)