[GELÖST]Rollo mit Sonnenstand und Anwesenheit steuern

Begonnen von Tabularasa, 16 Februar 2019, 20:21:10

Vorheriges Thema - Nächstes Thema

Tabularasa

Hallo. Zur Zeit habe ich gerade folgendes DOIF
([+{sunrise_rel(5000,"07:30","09:30")}] or ([{sunrise(1800,"06:30","09:30")}] and [Bewohner] eq "home"))
(set str_Rollo_EG [FILTER=STATE!=on] on, set Rollo_OG_Kind on, set Rollo_OG_SpielZ_l on)


Leider geht die or Bedingung mit der Anwesenheit nicht.  Das hängt ja glaube damit zusammen, dass es unwahrscheinlich ist das keine 2 Events zum selben Zeitpunkt auslösen. Das Ziel ist wenn keiner da ist, sollen die Rollos 5000 Sekunden nach Sonnenaufgang hoch gehen und wenn jemand da ist nach 1800.
Wie kann ich das sonst noch lösen? Reicht es wenn ich eins von beiden mit ? davor nicht triggern lasse? Wenn ja wohin müsste es dann?

Danke

CoolTux

Zitat von: Tabularasa am 16 Februar 2019, 20:21:10
Hallo. Zur Zeit habe ich gerade folgendes DOIF
([+{sunrise_rel(5000,"07:30","09:30")}] or ([{sunrise(1800,"06:30","09:30")}] and [Bewohner] eq "home"))
(set str_Rollo_EG [FILTER=STATE!=on] on, set Rollo_OG_Kind on, set Rollo_OG_SpielZ_l on)


Leider geht die or Bedingung mit der Anwesenheit nicht.  Das hängt ja glaube damit zusammen, dass es unwahrscheinlich ist das keine 2 Events zum selben Zeitpunkt auslösen. Das Ziel ist wenn keiner da ist, sollen die Rollos 5000 Sekunden nach Sonnenaufgang hoch gehen und wenn jemand da ist nach 1800.
Wie kann ich das sonst noch lösen? Reicht es wenn ich eins von beiden mit ? davor nicht triggern lasse? Wenn ja wohin müsste es dann?

Danke

Es sollte reichen wenn du die Reihenfolge änderst.
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

Tabularasa

#2
Du meinst
(([{sunrise(1800,"06:30","09:30")}] and [Bewohner] eq "home") or ([+{sunrise_rel(5000,"07:30","09:30")}])
(set str_Rollo_EG [FILTER=STATE!=on] on, set Rollo_OG_Kind on, set Rollo_OG_SpielZ_l on)
?
Passt das da mit den Klammern? Dann werde ich es mal versuchen

CoolTux

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

Tabularasa

Servus. Hab das Thema etwas nach hinten geschoben... Nun möchte ich es gern nochmal aufgreifen. Also das DOIF funktioniert so halb.
Wenn ich vor dem Sonnenaufgang "home" bin, dann klappt es. Wenn der Sonnenaufgang aber schon vorbei ist und ich dann auf "home" gehe, dann greift die or Bedingung. Bleibt also dunkel zuhause bis die 5000 Sekunden um sind. Hat jemand weitere Vorschläge?
Danke

Ellert

Wenn Du eine Zeitspanne angibst, trigger innerhalb dieser auch Bewohner
[{sunrise}-{sunset}] and [Bewohner] eq "home")

amenomade

1. warum ein "+" in der 5000 Bedingung?
2. [{sunset()}] liefert einen Einzelwert: es triggert nur am sunset und das ist keine Zeitfenster. Wenn Du inzwischen zu Hause kommst, ist es nicht mehr der richtige Zeitpunkt

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Tabularasa

Zitat von: amenomade am 01 April 2019, 18:15:13
1. warum ein "+" in der 5000 Bedingung?
2. [{sunset()}] liefert einen Einzelwert: es triggert nur am sunset und das ist keine Zeitfenster. Wenn Du inzwischen zu Hause kommst, ist es nicht mehr der richtige Zeitpunkt
1. Hatte ich mal irgendwo so übernommen ::) so richtig weiß ich aber auch nicht was es bedeutet...
2. Ja das hatte ich im Eingangspost auch schon vermutet, nur dachte ich, dass die Zeitangabe hinter den Sekunden sowas wie ein Zeitfenster darstellt, aber so wie ich nun gelesen habe, ist das ja nur frühester und spätester Zeitpunkt wo die Rollos dann aufgehen sollen.

Zitat von: Ellert am 01 April 2019, 18:13:54
Wenn Du eine Zeitspanne angibst, trigger innerhalb dieser auch Bewohner
[{sunrise}-{sunset}] and [Bewohner] eq "home")

Ja das hört sich eher nach einer Zeitspanne an :)  Kann ich es auch so schreiben?(Bitte nochmal Klammersetzung überprüfen)
(([{sunrise(1800)}-[09:30]] and [Bewohner] eq "home") or [{sunrise(5000,"07:30","09:30")}])

amenomade

Sollte ja gehen.
Probier es einfach ;) Wenn die Rolläden wild fahren, dann weiss Du, das es falsch war, aber kein Mensch stirbt ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ellert

#9
Klammerprüfung leicht gemacht:
1. Die Summe der öffnenden Klammern eines Typs und die Summe der schliessenden Klammern des gleichen Typs müssen gleich sein.
2. Klammernpaare verschiedener Typen dürfen sich nicht überschneiden. Falsch ({)}, Richtig {()}
3. Anhand der Befehlsreferenz überprüfen, ob die Klammerunge syntaktisch erlaubt sind.

Codemirror unterstützt dabei ;)

3. ergänzt

Tabularasa

Ja OK. Das war mir ja klar und nutze ich auch schon so. ;)
Mir ging es wegen der Syntax. Ob auch alle Klammern so da hin müssen wie sie sind :)

Ellert

Na, dann zähl' hier mal die eckigen Klammern durch. (([{sunrise(1800)}-[09:30]] and [Bewohner] eq "home") or [{sunrise(5000,"07:30","09:30")}])

Tabularasa

Ich weiß nich ob wir uns missverstehen. Die Anzahl wird schon stimmen, jedoch gingen die Rollo s nicht hoch. Also wird sicher irgendein Klammerpaar nicht passen. Habe testweise mal die eckigen um 09:30 entfernt. Morgen mal gucken

Damian

Zitat von: Tabularasa am 03 April 2019, 13:00:16
Habe testweise mal die eckigen um 09:30 entfernt. Morgen mal gucken

Das sollte schon helfen ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Gute Idee
ZitatHabe testweise mal die eckigen um 09:30 entfernt

Ich ergänze dann mal die Anleitung zur Klammerprüfung.