FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: andi11 am 01 Januar 2018, 17:25:57

Titel: Wie am Wochenende den ganzen Tag?
Beitrag von: andi11 am 01 Januar 2018, 17:25:57
Hallo,
wie kann ich mit DOIF auf "am Wochenende / Feiertag den ganzen Tag" abfragen?
([Bewohner:state] eq "home" and [0:00-23:59:59|WE])
  (set fritzbox_studio wlan on)
DOELSE
  (set fritzbox_studio wlan off)


damit wäre es aber ja ganz kurz "Samstag nacht" nicht mehr erfüllt.
[0:00-24:00|WE] da zeigen die Timerberechnungen beide auf den morgigen Tag?
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: CoolTux am 01 Januar 2018, 17:34:54
So wie es in der ausführlichen Beschreibung zu DOIF in der Commandref steht.
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: andi11 am 01 Januar 2018, 17:40:03
Zitat von: CoolTux am 01 Januar 2018, 17:34:54
So wie es in der ausführlichen Beschreibung zu DOIF in der Commandref steht.
Ich habe (wie immer) zuvor Commandref, Wiki und google befragt.
Die Commandref sagt als [HH:MM], [HH:MM:SS] oder [Zahl] in Sekunden nach Mitternacht
dementsprechend müsste [0:00-24:00] doch gehen, aber die Timerberechnung zeigt auf morgen?
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: CoolTux am 01 Januar 2018, 17:46:27
Jetzt muss ich noch mal nachfragen. Du willst eigentlich auf Wochenende oder Feiertag prüfen, oder?
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: andi11 am 01 Januar 2018, 17:47:24
genau so ist es. In Perl wäre es if ($we)
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: CoolTux am 01 Januar 2018, 17:49:18
https://fhem.de/commandref_DE.html#DOIF_Wochentagsteuerung

Hilft Dir das hier?


Zitat
Hinter der Zeitangabe kann ein oder mehrere Wochentage getrennt mit einem Pipezeichen | angegeben werden. Die Syntax lautet:

[<time>|012345678] 0-8 entspricht: 0-Sonntag, 1-Montag, ... bis 6-Samstag sowie 7 für Wochenende und Feiertage (entspricht $we) und 8 für Arbeitstage (entspricht !$we)
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: Ellert am 01 Januar 2018, 17:50:00
([Bewohner:state] eq "home" and $we)
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: andi11 am 01 Januar 2018, 17:52:07
Zitat von: CoolTux am 01 Januar 2018, 17:49:18
https://fhem.de/commandref_DE.html#DOIF_Wochentagsteuerung

Hilft Dir das hier?
Ich sags mal so "vielleicht übersehe ich was?" Ich finde nichts wie ich "den ganzen Tag" angeben kann?


Zitat von: Ellert am 01 Januar 2018, 17:50:00
([Bewohner:state] eq "home" and $we)
da wird aber nicht bei Beginn des Wochenendes getriggert oder?

Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: Ellert am 01 Januar 2018, 17:55:35
Das ist richtig, Du könntest zusätzlich einen Zeitpunkt für den Beginn festlegen.
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: CoolTux am 01 Januar 2018, 17:57:52
Sagen wir mal so. Ich wüsste nicht was beim Wort Wochentagsteuerung missverstanden werden kann  ;D
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: viegener am 01 Januar 2018, 17:59:35
Mit anderen Worten Du brauchst eigentlich 2 Trigger fürs Einschalten:

1) Wenn der Bewohner während des Wochenendes nach Haus kommst --> wie oben schon angegeben (trigger ist das nach Hausekommen $we nur die Zusatzbedingung zum Abprüfen)

2) Wenn es Wochenende wird während der Bewohner bereits zuhause ist --> Trigger ist start des Wochenendes (vermutlich 0:00|WE) und Zusatzbedingung ist das Bewohner zuhause ist

Ich vermute die umgekehrten Fälle müssen auch zur Abschaltung bedacht werden
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: andi11 am 01 Januar 2018, 18:04:06
aktuell habe ich es so
([Bewohner:state] eq "home" and [06:00-22:30|AT])
  (set fritzbox_studio wlan on)
DOELSEIF ([Bewohner:state] eq "home" and [22:25-24:00|Fr])
  (set fritzbox_studio wlan on)
DOELSEIF ([Bewohner:state] eq "home" and [0:00-23:59:59|WE])
  (set fritzbox_studio wlan on)
DOELSE
  (set fritzbox_studio wlan off)


und ich bin will einfach nicht, das Samstag Nacht, oder bei Feiertagen der Befehl vom DOELSE ausgelöst wird.
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: Ellert am 01 Januar 2018, 18:09:28
Dann könntest statt DOELSE zu verwenden die Auschaltbedingung mit DOELSEIF genauer festlegen.
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: andi11 am 01 Januar 2018, 18:16:47
([Bewohner:state] ne "home")
  (set fritzbox_studio wlan off)
DOELSEIF ([0:00-06:00|AT])
   (set fritzbox_studio wlan off)
DOELSEIF ([22:30-23:59|Mo Di Mi Do])
   (set fritzbox_studio wlan off)
DOELSE
     (set fritzbox_studio wlan on)


sorum? Ich hatte es anders herum geschrieben, da es so besser nachvollziehbar aussieht.
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: viegener am 01 Januar 2018, 18:29:38
Zitat von: andi11 am 01 Januar 2018, 18:04:06
aktuell habe ich es so
([Bewohner:state] eq "home" and [06:00-22:30|AT])
  (set fritzbox_studio wlan on)
DOELSEIF ([Bewohner:state] eq "home" and [22:25-24:00|Fr])
  (set fritzbox_studio wlan on)
DOELSEIF ([Bewohner:state] eq "home" and [0:00-23:59:59|WE])
  (set fritzbox_studio wlan on)
DOELSE
  (set fritzbox_studio wlan off)


und ich bin will einfach nicht, das Samstag Nacht, oder bei Feiertagen der Befehl vom DOELSE ausgelöst wird.

Ich glaube, dass Du hier immer noch mehrere Lücken hast: z.B. vor einem Feiertag, der kein Samstag ist wird abends das Licht ausgeschaltet

Für die komplexe Steuerung macht es Sinn die Bedingungen genau zu trennen:

- WLAN an am Arbeitstag zwischen 6 und 22:30 wenn at home
- WLAN um 22:30 anlassen, wenn der nächste Tag WE ist (delta-Zeitberechnung von 0:00)
- ...

Es ist halt ein komplexes DOIF mit einigen Bedingungen (und Kombination von verscsh. Elementen)
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: andi11 am 01 Januar 2018, 19:02:10
Zitat von: viegener am 01 Januar 2018, 18:29:38
- WLAN um 22:30 anlassen, wenn der nächste Tag WE ist (delta-Zeitberechnung von 0:00)
....
Es ist halt ein komplexes DOIF mit einigen Bedingungen (und Kombination von verscsh. Elementen)
stimmt das ist es, daher hab ich solche Unschärfen erstmal rausgelassen und auf Freitag begrenzt, denn wie ich "Anlassen am Tag vor einem Feiertag" einbauen kann, keine Ahnung.
Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: viegener am 01 Januar 2018, 19:30:36
Zitat von: andi11 am 01 Januar 2018, 19:02:10
stimmt das ist es, daher hab ich solche Unschärfen erstmal rausgelassen und auf Freitag begrenzt, denn wie ich "Anlassen am Tag vor einem Feiertag" einbauen kann, keine Ahnung.

Ich würde diese Unschärfen nicht rauslassen, sondern wiederhole nochmal alle Bedingungen erfassen, sonst muss man alles nochmal umbauen wenn es vollständig sein soll - es ist meistens eben nicht "noch eine einfache Bedingung" sondern eine Umstellung

Ich habe das nicht ausprobiert aber folgendes meinte ich mit Delta-Time

[0:00|WE]-[01:30]) wäre aus meiner Sicht die Zeit um 22:30 vor einem Tag am Wochenende (also auch am Samstag vor dem Sonntag)

Titel: Antw:Wie am Wochenende den ganzen Tag?
Beitrag von: Damian am 01 Januar 2018, 20:49:18
Zitat von: viegener am 01 Januar 2018, 19:30:36
Ich würde diese Unschärfen nicht rauslassen, sondern wiederhole nochmal alle Bedingungen erfassen, sonst muss man alles nochmal umbauen wenn es vollständig sein soll - es ist meistens eben nicht "noch eine einfache Bedingung" sondern eine Umstellung

Ich habe das nicht ausprobiert aber folgendes meinte ich mit Delta-Time

[0:00|WE]-[01:30]) wäre aus meiner Sicht die Zeit um 22:30 vor einem Tag am Wochenende (also auch am Samstag vor dem Sonntag)

Diese Syntax ist nicht korrekt. Wochentag-Angaben können bei Zeitintervallen nur am Ende des Ausdrucks für beide Zeiten angeben, also nur in dieser Form:

[0:00-01:30|WE]