Rolladensteuerung nur bei bestimmten Szenarien

Begonnen von mlrtimbf, 04 September 2017, 20:04:45

Vorheriges Thema - Nächstes Thema

CoolTux

Schaue ich mir morgen an. Schreibe nur damit ich es morgen wiederfinde  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

pc1246

Moin
Ich moechte mich ganz kurz einmischen. Ich wuerde Dir vorschlagen, dass Du fuer jeden Aktor ein eigenes DOIF machst. Das explodiert Dir sonst ganz schnell! Und ein weiterer Vorteil ist, dass Du immer nur an einer Stelle suchen musst!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

CoolTux

Zitat von: mlrtimbf am 14 September 2017, 19:08:08
Hi, danke für die ausführlichen Tipps. Habe ich soweit auch umgesetzt. Funktioniert nun einwandfrei!  :)


Zum runterfahren der Rollos:
Ich habe derzeit 2 Bewegungsmelder (Flur und Wohnzimmer). Ich habe mir einen Dummy "LetzteBewegung" angelegt, welche immer die Uhrzeit enthält, in welcher einer der BW eine Bewegung erkannt hat. Dazu mache ich bei jeder Bewegung folgendes:
set LetzteBewegung ".strftime('%Y-%m-%d %H:%M:%S', localtime).

Wenn dieser Wert (also die letzte Bewegung) älter als 2 Stunden ist UND der Status von Tageslicht "dunkel" ist, DANN sollen die Rollos runtergehen.

Hmm, meine Idee wäre jetzt diesen Wert, bspw. alle 5 Minuten, mit der aktuellen Uhrzeit zu vergleichen und dann schauen ob die Differenz größer als 2 Stunden ist. Aber eigentlich muss diese Prüfung ja erst passieren wenn Tageslicht auf "dunkel" gesetzt ist. Wenn es hell ist, wäre  die Überprüfung überflüssig, da die dann immer "false" wäre. Gibt es hier eine schönere Lösung? Fällt dir (euch) da was ein?

DANKE

Ich würde hier lieber mit dem Timestamp vom Reading arbeiten. Daher ist es egal was Du in den Dummy schreibst. Kannst auch motion reinschreiben lassen. Also Bewegung erkannt.

define di_lamp DOIF ([Tageslicht] eq "dunkel" and [?LetzteBewegung:state:sec] < 7200) (set Wz.Rollo_Neben.Tuer:FILTER=STATE!=off off)


Das soll noch nicht alles sein. Will aber den Gedanken nicht verlieren daher schreibe ich das hier schon mal
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mlrtimbf

Zitat von: CoolTux am 15 September 2017, 08:40:33

define di_lamp DOIF ([Tageslicht] eq "dunkel" and [?LetzteBewegung:state:sec] < 7200) (set Wz.Rollo_Neben.Tuer:FILTER=STATE!=off off)



Wenn ich direkt die Readings auslese habe ich aber das "Problem" dass ich mehrere auslesen müsste (pro BW), daher dachte ich mir ein Dummy, welcher von allen BW beschrieben werden kann, würde mehr Sinn machen.

Wann würde dein DOIF ausgeführt werden bzw. wie oft wird dann auf [?LetzteBewegung:state:sec] < 7200 geprüft?

CoolTux

Hallo,

Ich meinte den Timestamp vom state Reading Deines Dummys. Da er ja von allen anderen BW beschrieben wird.
Im Moment wird das ganze nur einmal ausgelöst wenn Tageslicht auf dunkel geht. Irgendwie fehlt noch ein vernünftiger Event. Im ungünstigsten Fall muss man wohl mit Zeiten arbeiten. Also zwischen 16-23 Uhr.

Die BWs lösen doch sicherlich nicht bei jeder Sekündliche. Bewegung aus, oder? Da gibt es doch Einstellungen das er nach einer Motion Erkennung x min warten soll bis eine neue Bewegung gemeldet wird.
Man könnte nun noch auf Bewegung triggern lassen und Tageslicht abfragen. Wäre auch noch ein Weg.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net