Garagentor Rule mit Zeitraum

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi Uwe,

den ZWaveNode9_DoorSensor.changedSince musst du mit einem (!) negieren.
D.H. also wenn der State sich NICHT geändert hat.
habs mal angepasst:

Code: Alles auswählen

var String filename = Garage.rules


/* -------------  Garage ist offen (länger als 15 Minuten zwischen 17:00 - 08:00) --------------------
*/
rule "Garage ist länger als 15 Minuten geöffnet (17:00 - 08:00)"
	when
		Time cron "0 0/15 17-8 * * ?"
then
	if (ZWaveNode9_DoorSensor.state == OPEN && !ZWaveNode9_DoorSensor.changedSince(now.minusMinutes(15)))
	{ logInfo(filename, "Garage ist länger als 15 Minuten geöffnet")
		
  
//Sende Notification
	sendMail("harry@hirsch.com", "**Garagentor ist >15min geöffnet!**", "**Garagentor schließen!**")}

	else {
    sendMail("harry@hirsch.com", "**Garage ist zu!**", "**Garage**")}
		
end
Ansonsten sollte das so passen.

CU
Cyrelian

freeman121083
Beiträge: 111
Registriert: 16. Jul 2018 06:32

Re: Garagentor Rule mit Zeitraum

Beitrag von freeman121083 »

Hallo,

würde mich freuen wenn mir jemand helfen kann.

habe genau das gleiche vor, würde gerne meine Garage abends auf "Länger als x Zeit offen prüfen" und wenn Länger als X zeit auf dann sende eine Telegram Nachricht.

Kurz zur Erklärung:
Wenn Abends/Nachts zwischen 18:00-8:00 Uhr die Garage länger als 15min. offen ist dann sende mir eine telegram nachricht, wird die Garage in der zeit wieder zu gemacht sende mir entweder Garage zu oder oder keine Nachricht senden.

Das habe ich hier kopiert und für Testzwecke abgeändert:
- Die Zeit zum test auf Tagsüber gelegt
- den Timer auf 1 Minute gelegt (damit ich nicht so lange warten muss)
- das zu Steuernde Objekt auf Licht Niesche gelegt (Damit ich nicht immer Garage auf und zu machen muss)

Code: Alles auswählen

var String filename = "telegram.rules"

//* -------------  Garage ist offen (länger als 15 Minuten zwischen 17:00 - 08:00) --------------------*//
rule "Garage ist länger als 15 Minuten geöffnet (17:00 - 08:00)"
	when
		Time cron "0 0/1 6-20 * * ?"       
then
	if (Niesche.state == OFF && !Niesche.changedSince(now.minusMinutes(1))) 
	{ logInfo(filename, "Garage ist länger als 15 Minuten geöffnet")
		
Sende Notification
	sendTelegram("OpenHab", "**Garagentor ist >15min geöffnet!**")}

	else {
	sendTelegram("OpenHab", "**Garage ist zu!**")}
		
end
So wird mir leider jede Minute IMMER Garage ist zu gesendet??
Die Garage wird über einen Magnetkontakt der auf einem KNX Binäreingang liegt. Dazu werde ich dann später ein contact item erstellen.

Zum testen wäre schön:
Licht länger an/aus (egal) als x zeit dann prüfe nach Ablauf der Zeit ob wirklich noch auf ist, dann sende mir eine telegram nachricht wenn das Tor in der Zeit zu gemacht wurde dann sende mir nichts.


Vielen Dank für eure Hilfe
Gruß
Dennis

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi Dennis,

hast Du für dein ITEM (Niesche) denn eine "persistence" eingerichtet? Weil sonst wird das mit dem "changedSince" nix ;).
Wäre so mein erster Verdacht.

CU
Cyrelian

Benutzeravatar
udo1toni
Beiträge: 13858
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Garagentor Rule mit Zeitraum

Beitrag von udo1toni »

Das geht einfacher :)

Code: Alles auswählen

var Timer tGarage = null

rule "Garagentimer"
when
    Item Niesche changed                                                     //Rule triggert, wenn Garage geschlossen oder geöffnet wird
then
    if (now.getHourOfDay = 17) {                                             //Falls 17 - 18 Uhr
        if (Niesche.state == OFF) {                                          //Garage wurde geöffnet
            tGarage?cancel                                                   //Falls Timer aktiv, abbrechen
            tGarage = createTimer(now.plusMinutes(15), [ |                   //Starte 15-Minuten-Timer
                sendTelegram("OpenHab", "**Garagentor ist 15min geöffnet!**") 
                tGarage = null                                               //reinitialisieren
            ])
        }
        else {                                                               //Garage wurde geschlossen
            sendTelegram("OpenHab", "**Garage ist zu!**")}
            tGarage?cancel                                                   //laufenden Timer stoppen und
            tGarage = null                                                   //reinitialisieren
        }
    }
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

freeman121083
Beiträge: 111
Registriert: 16. Jul 2018 06:32

Re: Garagentor Rule mit Zeitraum

Beitrag von freeman121083 »

Hi Cyrelian,

Ich weiß weder was das ist noch wie ich es einrichte. Könntest Du mir eine kleine Einweisung geben? :-)

Danke vorab
Dennis

freeman121083
Beiträge: 111
Registriert: 16. Jul 2018 06:32

Re: Garagentor Rule mit Zeitraum

Beitrag von freeman121083 »

Und entschuldigt meine Unmöglichkeit.

Erstmal vielen Dank das ihr mir so schnell Lösungsansätze unterbreitet. Openhab ist sehr neu für mich aber für meine Zwecke sehr interessant.


Danke

freeman121083
Beiträge: 111
Registriert: 16. Jul 2018 06:32

Re: Garagentor Rule mit Zeitraum

Beitrag von freeman121083 »

Hallo udo1toni,

Was wäre bei deiner Lösung mit dem Fall, wenn innerhalb der 15min. Das Garagentor wieder zu gesteuert wird?

Benutzeravatar
udo1toni
Beiträge: 13858
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Garagentor Rule mit Zeitraum

Beitrag von udo1toni »

Wenn das Garagentor geschlossen wird, wird der entsprechende Teil der Rule ausgeführt (die Rule triggert ja auf den Kontakt). Der "schließen" Teil der Rule beendet den Timer.
Wobei man vielleicht nochmal über die Zeitbeschränkung nachdenken müsste. Die Rule meldet momentan, falls das Tor zwischen 17 und 18 Uhr geöffnet wird und länger als 15 Minuten offen steht (also auch, wenn das Tor um 17:59 geöffnet und nach 18:14 geschlossen wird), oder zwischen 17 und 18 Uhr geschlossen wird (also auch, wenn das Tor um 16:59 geöffnet und um 17:00 Uhr geschlossen wird).

Mir ging es erstmal darum, zu zeigen, wie man solche Timeouts festlegt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

freeman121083
Beiträge: 111
Registriert: 16. Jul 2018 06:32

Re: Garagentor Rule mit Zeitraum

Beitrag von freeman121083 »

Hi,

So hab es hin bekommen. Jetzt hab ich nur noch ein Problem: wie lege ich in OpenHab 2.3.0 ein Magnetkontakt der über einen Binäreingang angeschlossen ist an und in welcher Datei? Ich brauche erstmal keine Viso ich möchte den Status erstmal nur für das Garagen benutzen.

Vielen Dank
Gruß
Dennis

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi Dennis,

prinzipiell wird das in einer .items Datei angelegt. Du musst uns aber etwas mehr über den Magnetkontakt verraten, damit wir wissen, über welches Binding wir diesen ansprechen sollen oder können.

CU
Cyrelian

Antworten