Hallo zusammen,
ich habe im Flur einen Bewegungsmelder hängen. Erkennt dieser werktags zwischen 06:00h und 07:30h bzw. am Wochenende zwischen 08:00h und 10:30h eine Bewegung, fahren die Rolladen im gesamten Erdgeschoss hoch. Ich bevorzuge diese Vorgehensweise gegenüber einem at-Befehl, da die Rolladen erst hochfahren sollen, wenn ich tatsächlich morgens runter komme.
Der Code sieht derzeit wie folgt aus:
([Fl_MotionSensor:alarm] eq "HomeSecurity: Motion Detection - Unknown Location" and [06:00-07:30|8] or [08:00-10:30|7]) (set group=EG_Rolladen on)
Das Problem ist, dass jetzt morgens mit jeder Bewegung im Flur ein Befehl an die Rolladen gesendet wird, um diese zu öffnen, obwohl sie natürlich schon auf sind. Meine Idee ist, hier eine Dummy-Variable Status_EG_Rolladen einzubinden, welche den Wert "open" bekommen soll, wenn die Rolladen hochgefahren wurden und "closed", wenn sie runtergefahren wurden. Natürlich soll der set-Befehl nur dann ausgeführt werden, wenn der Status auf "closed" steht. Mir fehlt allerdings die korrekte Syntax, um den Status in meinem Code einzubinden und abzufragen.
Als zweites würde ich gerne die absoluten Uhrzeiten etwas anders gestalten, nämlich so, dass die Rolladen frühestens mit Sonnenaufgang hochfahren. Die Module twilight und weather habe ich eingerichtet, aber auch hier fehlt mir die passende Syntax. Mit einem at-Befehl würde das ja vermutlich so oder so ähnlich aussehen:
at *{sunrise(0,"06:00", "07:30")} set group=EG_Rolladen on
Wäre toll, wenn jemand mit einer Code-Idee weiterhelfen könnte.
Hi,
um ein dauerhaftes Senden des Öffnen-Befehls zu unterbinden, könntest du mit FILTER arbeiten...
Etwa so:
set group=EG_Rolladen:FILTER=STATE!=on on
Siehe auch commandref...
Gruß
Andreas
Danke für den Hinweis, das hat funktioniert.
Gesendet von meinem ONE A2003 mit Tapatalk
Jetzt fehlt mir immer noch die Einbindung von sunrise. Die Rollladen sollen zwischen 06:00h und 07:30h aufgehen, allerdings nur wenn zu diesem Zeitpunkt schon die Sonne aufgegangen ist UND der Bewegungsmelder eine Bewegung erkannt hat. Ich stehe hier weiter auf dem Schlauch...
Gesendet von meinem ONE A2003 mit Tapatalk
Geht genauso wie beim AT, perl code muß im DOIF in geschweifte Klammern.
Folgendes ist mir aber trotzdem noch nicht ganz klar:
Wenn ich {sunrise(0,"06:00","07:30")} als Bedingung habe, dann heißt das doch, dass die Rollladen mit dem Sonnenaufgang hoch gehen, aber frühestens erst um 06:00h und spätestens um 07:30h. In meinem Szenario kommt aber noch der Bewegungsmelder ins Spiel, d.h. bei mir sollen die Rollladen nur hoch fahren, wenn
1. Es ist mindestens 06:00h
2. Die Sonne ist bereits aufgegangen
3. Wenn bis 07:30h eine Bewegung erkannt wurde oder
4. Es ist 07:30h
Nehmen wir der Einfachheit nun an, dass der Sonnenaufgang zwischen 06:00h und 07:30 stattfindet, ist es dann nicht so, dass die Rollladen nur dann hoch fahren, wenn exakt zum Zeitpunkt des Sonnenaufgangs eine Bewegung registriert wurde. Gegeben natürlich, dass ich den Bewegungsmelder und sunrise mit AND verknüpft habe?
Eigentlich müsste ein "Rollladen AUF" Ergebnis des sunrise Befehls nur die notwendige Voraussetzung dafür sein, dass die Rollladen bei Erkennung einer Bewegung hochfahren, oder? Vielleicht würde es ja mehr Sinn machen, den Zustand des sunrise Befehls in einer Dummy Variable abzuspeichern. Meinungen?
Gesendet von meinem ONE A2003 mit Tapatalk
Zitat von: KraxelHuber am 24 August 2016, 15:48:32
Folgendes ist mir aber trotzdem noch nicht ganz klar:
Wenn ich {sunrise(0,"06:00","07:30")} als Bedingung habe, dann heißt das doch, dass die Rollladen mit dem Sonnenaufgang hoch gehen, aber frühestens erst um 06:00h und spätestens um 07:30h. In meinem Szenario kommt aber noch der Bewegungsmelder ins Spiel, d.h. bei mir sollen die Rollladen nur hoch fahren, wenn
1. Es ist mindestens 06:00h
2. Die Sonne ist bereits aufgegangen
3. Wenn bis 07:30h eine Bewegung erkannt wurde oder
4. Es ist 07:30h
Nehmen wir der Einfachheit nun an, dass der Sonnenaufgang zwischen 06:00h und 07:30 stattfindet, ist es dann nicht so, dass die Rollladen nur dann hoch fahren, wenn exakt zum Zeitpunkt des Sonnenaufgangs eine Bewegung registriert wurde. Gegeben natürlich, dass ich den Bewegungsmelder und sunrise mit AND verknüpft habe?
Eigentlich müsste ein "Rollladen AUF" Ergebnis des sunrise Befehls nur die notwendige Voraussetzung dafür sein, dass die Rollladen bei Erkennung einer Bewegung hochfahren, oder? Vielleicht würde es ja mehr Sinn machen, den Zustand des sunrise Befehls in einer Dummy Variable abzuspeichern. Meinungen?
Gesendet von meinem ONE A2003 mit Tapatalk
Beim Bewegungsmelder würde ich mit Zeitintervallen arbeiten
z. B
DOIF ([{sunrise(0,"06:00","07:30")}-08:00] and [Fl_MotionSensor:alarm] eq "HomeSecurity: Motion Detection - Unknown Location" ) (...
Gruß
Damian
Folgender Code hat bei mir heute morgen nicht funktioniert, obwohl der Bewegungsmelder gegen 06:05h eine Bewegung registriert hat und sunrise civil um 06:01h war.
DOIF
([Fl_MotionSensor:alarm] eq "HomeSecurity: Motion Detection - Unknown Location" and [{sunrise("civil","05:30","07:25")}-07:30|8]) (set group=EG_Rolladen:FILTER=STATE!=on on) DOELSEIF ([Fl_MotionSensor:alarm] eq "HomeSecurity: Motion Detection - Unknown Location" and [08:00-10:30|7]) (set group=EG_Rolladen:FILTER=STATE!=on on)