evtl. noch ein anderer Ansatz als Alternative, wobei auch zum Teil aus der Feder von Udo1Toni

Ich nutze 2 Kontakte am Garagentor, kann aber sicher auch gegen 1 Item für den Status geändert werden.
Mein Ansatz ist es unabhängig von der Tageszeit zu wissen, wann die Garage auffährt und wenn sie nicht geschlossen wurde. Ferner möchte ich, wenn sie nicht geschlossen wurde - einen schalter in der Visu um das Tor zu fahren/schliessen. Wenn ich nach Hause komme, kann ich die Garage bereits von einer Umgehungsstr. über einen FB öffnen und bekomme dann durch die Nachricht eine Haptik auf die Uhr


Der nächste Schritt ist dann die Kopplung mit der Präsenzerkennung und ggfs. auch Tageszeit, damit Abends noch ein Licht im Schalfzimmer angeht (als Alarm) wenn auf einmal die Garage auffährt.
Natürlich freue ich mich auch über Verbesserungsvorschläge für diese Rule oder Anregungen für sinnvolle Erweiterungen

Viele Grüße
Jörg
Code: Alles auswählen
var Timer garageOpen = null
// Garagentor Status
rule Garagentor
when
Item Tor_Garage_o changed or
Item Tor_Garage_u changed or
System started
then
if (Tor_Garage_o.state == CLOSED && Tor_Garage_u.state == OPEN) {
Tor_Garage.postUpdate("OPEN")
} else if (Tor_Garage_o.state == OPEN && Tor_Garage_u.state == CLOSED) {
Tor_Garage.postUpdate("CLOSED")
} else {//if (Tor_Garage_o.state == OPEN && Tor_Garage_u.state == OPEN) {
Tor_Garage.postUpdate("MOVE")
}
end
rule Garage
when
Item Tor_Garage changed
then
if (Tor_Garage.state == "MOVE" && previousState == "CLOSED") {
pushNotification("Information", "Garagentor fährt auf: " + now)
// Garagentorwaechter
if(garageOpen===null){
garageOpen = createTimer(now.plusMinutes(5)) [|
myGarageSwitchVis.postUpdate(ON)
pushNotification("Achtung", "Garagentor steht offen: " + now)
]
}
}
else if (Tor_Garage.state == "OPEN" && previousState == "MOVE") {
// pushNotification("Information", "Garagentor ist geöffnet: " + now)
}
else if (Tor_Garage.state == "MOVE" && previousState == "OPEN") {
// pushNotification("Information", "Garagentor fährt zu: " + now)
}
else if (Tor_Garage.state == "CLOSED" && previousState == "MOVE") {
garageOpen.cancel
garageOpen = null
if (myGarageSwitchVis.state == ON) {
pushNotification("Information", "Garagentor wurde geschlossen: " + now)
} else {
// pushNotification("Information", "Garagentor ist geschlossen: " + now)
}
myGarageSwitchVis.postUpdate(OFF)
}
end
Code: Alles auswählen
/* Garage */
Contact Tor_Garage_o {channel="knx:device:bridge:xxx:ch2"} //"Tor oben
Contact Tor_Garage_u {channel="knx:device:bridge:xxx:ch1"} //"Tor unten
String Tor_Garage "Garagentor [MAP(de.map):%s]" <garagedoor> (Garage)
Switch Garagentor "Garagentor" <garagedoor> channel="knx:device:bridge:xxx:ch11",autoupdateautoupdate="false"}
Switch myGarageSwitchVis
Code: Alles auswählen
Text item=Tor_Garage visibility=[myGarageSwitchVis=="OFF"]
Switch item=Garagentor visibility=[myGarageSwitchVis=="ON"] mappings=[ON="Garagentor schliessen"]