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

Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi,

ich habe mal eine Rule gebaut die den Status des Tors zwischen 19:00 - 07:00 prüft und wenn es "offen" ist eine Whatsapp schickt.

Code: Alles auswählen

rule "Garage ist länger als 10 Minuten geöffnet (19:00 - 07:00)"
    when
        Item GarageTorsensor changed from CLOSED to OPEN
    then
        if (now.getHourOfDay > 19 || now.getHourOfDay <7){
        	if(GarageTorsensor.state==OPEN) {
			        	logDebug("GarageTorsensor", "Garagentor ist "+ GarageTorsensor.state)
            	timer = createTimer(now.plusMinutes(10)) [|
                	executeCommandLine ("/opt/yowsup/yowsup-cli@@demos@@-c@@/opt/yowsup/yowsup.config@@-s@@xxxxxxxxxxx-xxxxxxxxxxx@g.us@@\"Garagentor ist " + GarageTorsensor.state + "\"") 
            	]
        	}
        } else {
            if(timer!=null) {
                timer.cancel
                timer = null
            }
        }
 end
Ich habe das Tor um 19:46 aufgemacht und 10 Minuten....Irgendwie hat sie aber scheinbar nicht ausgelöst :?
Hab ich da noch nen Fehler drin?

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Garagentor Rule mit Zeitraum

Beitrag von seppy »

Hi Kretzsche,

ich würde sagen Dein System ist direkt im else Zweig gelandet ...

Code: Alles auswählen

if (now.getHourOfDay > 19 || now.getHourOfDay <7){
Wenn Du den Test um 19:46 Uhr gemacht hast, soll das System nach Deiner Logik nämlich nichts tun. Erst ab 20:00, da dann die Bedingung >19 stimmt. Wenn das Ganze ab 19.00 Uhr laufen soll würde das "=" Zeichen helfen ;-)

Code: Alles auswählen

if (now.getHourOfDay >= 19 || now.getHourOfDay <7){
Das ist zumindest meine Vermutung beim schnellen drüber schauen.

Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

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

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi Seppy,

jup, das war dann wohl der Fehler in der Logik :mrgreen:
Läuft!

Dank Dir
Kretzsche

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

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi Seppy,

ich hab noch einen Schönheitsfehler gefunden. Wenn das Tor zwischen 19:00 - 07:00 geöffnet wird, läuft der Timer an. Wird das Tor allerdings dann innerhalb des Timers (10Min.) wieder zu gemacht, wird nach Ablauf des Timers dann eine Whatsapp mit "geschlossen versendet". Jetzt habe ich versucht das mal abzufangen, indem ich nach dem Timer nochmal eine Abfrage mache, ob das Tor noch offen ist. Dann soll er eine Whatsapp versenden. Wenn das Tor zu ist, dann nicht. Hier mal die Rule:

Code: Alles auswählen

rule "Garage ist länger als 10 Minuten geöffnet (19:00 - 07:00)"
    when
        Item GarageTorsensor changed from CLOSED to OPEN
    then
        if	(now.getHourOfDay >= 19 || now.getHourOfDay <=7){
        }
        if	(GarageTorsensor.state==OPEN) {
			logInfo("GarageTorsensor", "Garagentor ist "+ GarageTorsensor.state)
        	timer = createTimer(now.plusMinutes(10)) [|]
        }
        if	(GarageTorsensor.state==OPEN) {
        	var String sensorState = transform("MAP","Kontakt.map",GarageTorsensor.state.toString)
        	executeCommandLine ("/opt/yowsup/yowsup-cli@@demos@@-c@@/opt/yowsup/yowsup.config@@-s@@4916090488979-1440832510@g.us@@\"Garagentor ist " + sensorState + "\"")    
        } else {
            if(timer!=null) {
                timer.cancel
                timer = null
            }
        }
 end
Wo ich mir nicht ganz sicher bin, ist der der Teil wo ich den Timer setze und zwar am Ende mit dem [|]. Der Designer sagt, ....alles gut :)

CU
Kretzsche

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Garagentor Rule mit Zeitraum

Beitrag von seppy »

Hi Kretzsche,

ich würde sagen der Designer hat recht :lol:

Allerdings wird beim schließen des Tores die rule gar nicht angesprochen:

Code: Alles auswählen

Item GarageTorsensor changed from CLOSED to OPEN
In dem von Dir beschriebenen Fall hast Du aber ein "changed from OPEN to CLOSED". Also greift Deine Regel nicht.

Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

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

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi Seppy,

ja, das hatte ich erstmal bewusst so gemacht. Er soll mir nur sagen, wenn das Tor in der Zeit länger als 10 Minuten offen ist. Geht es in der Zeit(Timer) zu, ist mir das erstmal "egal" :-).

Cu


Gesendet von iPad mit Tapatalk

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

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi Seppy,

hier die angepasste Rule:

Code: Alles auswählen

 rule "Garage ist länger als 10 Minuten geöffnet (19:00 - 07:00)"
    when
        Item GarageTorsensor changed from CLOSED to OPEN
    then
        if	(now.getHourOfDay >= 19 || now.getHourOfDay <=7){
            if	(GarageTorsensor.state==OPEN) {
			logInfo("GarageTorsensor", "Garagentor ist "+ GarageTorsensor.state)
        		timer = createTimer(now.plusMinutes(10)) [|
        			if	(GarageTorsensor.state==OPEN) {
        			var String sensorState = transform("MAP","Kontakt.map",GarageTorsensor.state.toString)
        			executeCommandLine ("/opt/yowsup/yowsup-cli@@demos@@-c@@/opt/yowsup/yowsup.config@@-s@@49xxxxxxxxx-1xxxxxx@g.us@@\"Garagentor ist " + sensorState + "\"")    
        			}
        	]
        	}
       	}
         else {
            if(timer!=null) {
                timer.cancel
                timer = null
            }
        }
 end

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

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

HI,

so nun läuft die Rule etwas anders. Hab sie noch etwas angepasst.

Code: Alles auswählen

rule "Garage ist länger als 10 Minuten geöffnet (19:00 - 08:00)"
 	when
		Time cron "0 0/10 19-8 * * ?"
	then
		if (GarageTorsensor.state == OPEN && GarageTorsensor.changedSince(now.minusMinutes(10))){
			var String sensorState = transform("MAP","Kontakt.map",GarageTorsensor.state.toString)
	        executeCommandLine ("/opt/yowsup/yowsup-cli@@demos@@-c@@/opt/yowsup/yowsup.config@@-s@@49xxxxxxxx-14xxxxxxxx@g.us@@\"Garagentor ist " + sensorState + "\"")
		}
 end

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Garagentor Rule mit Zeitraum

Beitrag von seppy »

Hi,

also funktioniert changedSince? Auch ohne explizite Persistencekonfiguration?

Gruß,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

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

Re: Garagentor Rule mit Zeitraum

Beitrag von Cyrelian »

Hi Seppy,

ja, läuft super auch ohne Persistencekonfig.

Gruß
Kretzsche

Antworten