Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von linsenpago »

Hallo!

Zusätzlich zu meinen Hue Lampen würde ich auch mein Garagentor und als auch mein Einfahrtstor intelligenter machen.

Sensoren habe ich bereits eingebunden und sehe den Status der beiden in Openhab und kann sie auch per Ophenhab steuern.
Ich habe mir auch schon eine Rule zusammengestoppelt welche mir ein Notify schickt wenn eines der Tore länger als 30min offen steht.

Ich würde nun gerne falls wir mal Abends vergessen die Tore zu schließen, dass sie automatisch geschlossen werden, wir aber z.b. 5 Minuten vorher noch eine Notifizierung bekommen, dass in 5 Minuten die Tore automatisch geschlossen werden. Und dann nochmal wenn die Tore wieder zu sind.
Also z.b. wenn um 20 Uhr noch ein Tor offen ist eine Notifizierung schicken dass in 5 Minuten geschlossen wird und um 20:05 Uhr zumachen.

Falls in diesen 5 Minuten das Tor eventuell manuell geschlossen wird, soll die Rule dann natürlich nicht mehr greifen damit die Tore nicht wieder auffahren. ;-)

Folgende Rules habe ich bereits erfolgreich in betrieb damit ich mal rudimentär Informiert werde:

Code: Alles auswählen

rule "Notify bei Garagentor offen"
when
    Item GaragentorSensor changed
then
    if (GaragenTor_Timer !== null)
        GaragenTor_Timer.cancel()

    if (GaragentorSensor.state == OFF) {
        GaragenTor_Timer = createTimer(now.plusMinutes(30)) [|
            sendBroadcastNotification("Die Garage ist seit 30 Minuten offen!")
        ]
    }
end

rule "Notify bei Einfahrtstor offen"
when
    Item EinfahrtstorSensor changed
then
    if (EinfahrtsTor_Timer !== null)
        EinfahrtsTor_Timer.cancel()

    if (EinfahrtstorSensor.state == OFF) {
        EinfahrtsTor_Timer = createTimer(now.plusMinutes(30)) [|
            sendBroadcastNotification("Die Einfahrt ist seit 30 Minuten offen!")
        ]
    }
end
Ich habe schon etliches mit Cron usw. versucht, aber da ich in diesem Coding nicht besonders gut bin und auch noch nicht alle kniffe kenne, werden meine Rules immer sehr unübersichtlich und ich kenne mich nicht mehr aus und sie funktionieren natürlich dann auch nicht.... ;-)
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von KellerK1nd »

Ich hab das so gelöst:

Dabei habe ich zwei Items:

Code: Alles auswählen

ITEMS
Contact             GaragentorOpen                              "Garagentor [MAP(de.map):%s]"               <garagedoor>    (gTuerFensterKontaktGarage)         {channel="deconz:openclosesensor:homeserver:Garagentor:open"} //liefert mir den Zustand des Tores, offen oder geschlossen
Switch  Shelly01        "Garagentor"        <garagedoor>        (gShelly01)                     ["Switchable"]  {channel="mqtt:topic:Shelly01:switch", expire="1s,command=OFF", alexa="Door"} //Damit kann ich ein Impuls an den Garagentorantrieb senden

und hier die Regel:

Code: Alles auswählen

var Timer nGaragentor1 = null

rule "Garagentor abends offen"
when
    Time cron "0 0 21 * * ?"
then
    if(GaragentorOpen.state == OPEN){
        sendTelegram("Mario", "Das Garagentor ist noch offen und wird nun geschlossen.")
        Shelly01.sendCommand(ON)
        nGaragentor1 = createTimer(now.plusSeconds(20),[|                                                           //Sließzeit gemessen: 17,0s (31.12.2019)
            if(GaragentorOpen.state == CLOSED){
                sendTelegram("Mario", "Das Garagentor ist zu.")
            }
            else{
                sendTelegram("Mario", "Das Garagentor ist immernoch offen, bitte prüfen.")
            }
        ])
    }
end
Die Regel wird jeden Tag um 21 Uhr ausgeführt. Dabei wird als erstes geprüft ob das Garagentor noch offen ist, wenn dem so ist, wird ein Impuls vom Shelly gesendet und das Tor fährt zu. Jetzt habe ich nur noch einen Timer mit Prüfung eingebaut, der nach 20s nochmal prüft ob das Tor auch wirklich zu ist.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von linsenpago »

Dankeschön für die Antwort!

Ich werde mal schauen ob ich das für mich umbauen kann..

Ich habe auch noch einen anderen Thread gefunden der in die ähnliche Richtung geht..

viewtopic.php?f=15&t=7&start=10
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von linsenpago »

Die Regel wird jeden Tag um 21 Uhr ausgeführt. Dabei wird als erstes geprüft ob das Garagentor noch offen ist, wenn dem so ist, wird ein Impuls vom Shelly gesendet und das Tor fährt zu. Jetzt habe ich nur noch einen Timer mit Prüfung eingebaut, der nach 20s nochmal prüft ob das Tor auch wirklich zu ist.
Wie hast du das gelöst, dass sich dein Switch "Shelly01" wieder zurück setzt?
Ich müsste bei mir nur einen impuls senden.. Also wie bei einem Taster.. oder funktioniert das bei dir anders?
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von KellerK1nd »

linsenpago hat geschrieben: 15. Feb 2020 20:14
Die Regel wird jeden Tag um 21 Uhr ausgeführt. Dabei wird als erstes geprüft ob das Garagentor noch offen ist, wenn dem so ist, wird ein Impuls vom Shelly gesendet und das Tor fährt zu. Jetzt habe ich nur noch einen Timer mit Prüfung eingebaut, der nach 20s nochmal prüft ob das Tor auch wirklich zu ist.
Wie hast du das gelöst, dass sich dein Switch "Shelly01" wieder zurück setzt?
Ich müsste bei mir nur einen impuls senden.. Also wie bei einem Taster.. oder funktioniert das bei dir anders?
Schau dir meine Items genau an. ;) Der Shelly ist mit einem Expire gekoppelt. Nach 1s wird er auf OFF gesetzt. Somit hat man einen Tastimpuls.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von linsenpago »


Schau dir meine Items genau an. ;) Der Shelly ist mit einem Expire gekoppelt. Nach 1s wird er auf OFF gesetzt. Somit hat man einen Tastimpuls.
Oh! Das ist ja super! Ich wusste gar nicht, dass das geht! Immer wenn in Foren zu OpenHAB nach der Funktion eines Tasters gefragt wird, wird das über rules gelöst.. so wäre das um vieles eleganter.. ich bräuchte das timeout allerdings nach 250ms.. ich muss das mal ausprobieren.. das würde mir eine Menge rules ersparen!
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von linsenpago »

Hi!

Ich habe das mit dem Expire mal mit einem meiner Rolläden versucht und funktioniert mal soweit...

Code: Alles auswählen

Switch Buero_up     "Büro auf"  ["Switchable"]  { channel="modbus:data:Wago:coils:Bit44:switch", expire="1s,command=OFF", autoupdate="false" }
Switch Buero_down   "Büro zu"   ["Switchable"]  { channel="modbus:data:Wago:coils:Bit2:switch", expire="1s,command=OFF", autoupdate="false" }
Leider ist der kürzeste Wert welchen man einstellen kann 1 sekunde? Richtig?

Ich müsste jetzt in meiner SPS zu jedem "Eingang" einen Baustein schalten, der mir den 1 sek. Puls auf 250ms verkürzt, da ich sonst in einen "long klick" wechsle... Aber da muss ich mich mal spielen...

Und um zum Topic zurück zu kommen.. Ich habe jetzt die Rules für das Garagen- und Einfahrtstor gebaut und sie funktionieren super!

stellvertretend für das Garagentor:

Code: Alles auswählen

rule "Garagentor abends offen"
when
    Time cron "0 0 21 * * ?"
then
    if(GaragentorSensor.state == OFF){
        sendBroadcastNotification("Das Garagentor ist noch offen und wird nun geschlossen.")
        Garage.sendCommand(ON)
        nGaragentor1 = createTimer(now.plusSeconds(30),[|                                                           
            if(GaragentorSensor.state == ON){
                sendBroadcastNotification("Das Garagentor ist zu.")
            }
            else{
                sendBroadcastNotification("Das Garagentor ist immernoch offen, bitte prüfen.")
            }
        ])
    }
end
Das mit der Überprüfung hinterher ist super elegant! Das gefällt mir sehr!

Könnte man in diese Rule auch noch eine "Vorwarnung" einbauen! Wie 5 Minuten vor dem Schließen etwas wie "Achtung Garagentor ist noch offen und schließt sich in 5 Minuten von selbst!" ?

Wie könnte man das einbauen?
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von KellerK1nd »

linsenpago hat geschrieben:

Schau dir meine Items genau an. ;) Der Shelly ist mit einem Expire gekoppelt. Nach 1s wird er auf OFF gesetzt. Somit hat man einen Tastimpuls.
Oh! Das ist ja super! Ich wusste gar nicht, dass das geht! Immer wenn in Foren zu OpenHAB nach der Funktion eines Tasters gefragt wird, wird das über rules gelöst.. so wäre das um vieles eleganter.. ich bräuchte das timeout allerdings nach 250ms.. ich muss das mal ausprobieren.. das würde mir eine Menge rules ersparen!

Das minimalste über das Expire-Binding ist glaube ich eine Sekunde, willst du drunter, musst du das über eine Regel lösen. Wie aber das Relais im Shelly mit kleineren Schaltzeiten umgeht weiß ich nicht. Selbst wenn du das auf eine Sekunde stellst, ist die Schaltzeit im Shelly tatsächlich länger.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von linsenpago »

Ich verwende ja kein Shelly wie das dort läuft, kann ich nicht sagen.
In meinem Fall schicke ich per Modbus Protokoll einen Impuls an meine Wago SPS. Und dort kommt tatsächlich ein Impuls von einer Sekunde an.

Und derzeit habe ich diese kurzen Schaltzeiten tatsächlich mittels Rules gelöst.. allerdings, wenn ich meine Zentraltasten für "Erdgeschoss hoch/runter" oder "Haus hoch/runter" schalte, dann habe ich oft das Problem, dass nicht alle timer in den Rules verlässlich wieder auslösen und manche "Taster" kleben bleiben, wenn du verstehst was ich meine.. wenn dieses Expire zuverlässiger wäre, dann würde ich das eher auf diese Weise lösen.
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Steuerung von Garagentor und Einfahrtstor nach bestimmter Zeit

Beitrag von KellerK1nd »

linsenpago hat geschrieben:Hi!

Ich habe das mit dem Expire mal mit einem meiner Rolläden versucht und funktioniert mal soweit...

Code: Alles auswählen

Switch Buero_up     "Büro auf"  ["Switchable"]  { channel="modbus:data:Wago:coils:Bit44:switch", expire="1s,command=OFF", autoupdate="false" }
Switch Buero_down   "Büro zu"   ["Switchable"]  { channel="modbus:data:Wago:coils:Bit2:switch", expire="1s,command=OFF", autoupdate="false" }
Leider ist der kürzeste Wert welchen man einstellen kann 1 sekunde? Richtig?

Ich müsste jetzt in meiner SPS zu jedem "Eingang" einen Baustein schalten, der mir den 1 sek. Puls auf 250ms verkürzt, da ich sonst in einen "long klick" wechsle... Aber da muss ich mich mal spielen...

Und um zum Topic zurück zu kommen.. Ich habe jetzt die Rules für das Garagen- und Einfahrtstor gebaut und sie funktionieren super!

stellvertretend für das Garagentor:

Code: Alles auswählen

rule "Garagentor abends offen"
when
    Time cron "0 0 21 * * ?"
then
    if(GaragentorSensor.state == OFF){
        sendBroadcastNotification("Das Garagentor ist noch offen und wird nun geschlossen.")
        Garage.sendCommand(ON)
        nGaragentor1 = createTimer(now.plusSeconds(30),[|                                                           
            if(GaragentorSensor.state == ON){
                sendBroadcastNotification("Das Garagentor ist zu.")
            }
            else{
                sendBroadcastNotification("Das Garagentor ist immernoch offen, bitte prüfen.")
            }
        ])
    }
end
Das mit der Überprüfung hinterher ist super elegant! Das gefällt mir sehr!

Könnte man in diese Rule auch noch eine "Vorwarnung" einbauen! Wie 5 Minuten vor dem Schließen etwas wie "Achtung Garagentor ist noch offen und schließt sich in 5 Minuten von selbst!" ?

Wie könnte man das einbauen?
Zwei Möglichkeiten,

erste: In deiner Garagenregel fügst du eine zweite Regel ein:

Code: Alles auswählen


rule "Garagentor Überprüfen um 20:55 Uhr"
when
    Time cron "0 55 20 * * ?"
then
    if(GaragentorSensor.state == OFF){
        sendBroadcastNotification("Das Garagentor ist noch offen, wird in 5 Minuten geschlossen.")
}
end
Oder implementierst das in die Hauptregel:

Code: Alles auswählen

var Timer nGaragentor1 = null
var Timer nGaragentor2 = null

rule "Garagentor abends offen"
when
    Time cron "0 55 20 * * ?"
then
    if(GaragentorSensor.state == OFF){
        sendBroadcastNotification("Das Garagentor ist noch offen und wird in 5 Minuten geschlossen.")
        nGaragentor2 = createTimer(now.plusMinutes(5),[|
            if(GaragentorSensor.state == OFF){
                Garage.sendCommand(ON)
                nGaragentor1 = createTimer(now.plusSeconds(30),[|
                    if(GaragentorSensor.state == ON){
                        sendBroadcastNotification("Das Garagentor ist zu.")
                    }
                    else{
                        sendBroadcastNotification("Das Garagentor ist immernoch offen, bitte prüfen.")
                    }
                ])
            }
            else{
                sendBroadcastNotification("Das Garagentor wurde innerhalb des 5 Minutentimers geschlossen.")
            }
        ])
    }
    else{
        sendBroadcastNotification("Das Garagentor ist bereits zu.")
    }
end
Jetzt wird die Regel 5 Minuten eher getriggert, der 5 Minuten-Timer wird angelegt, sollte das Tor noch nicht geschlossen sein. Ist das Tor noch offen wird nach 5 Minuten der Impuls gesendet, sollte in der Zwischenzeit das Tor geschlossen worden sein, gibt es eine Information am Ende des 5 Minuten-Timers, ansonsten läuft die Regel wie vorher weiter und nach 30 Sekunden, nach Ablauf des Timers wird, nochmalig geprüft ob das Tor auch wirklich zu ist.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

Antworten