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?
So wie es in der ausführlichen Beschreibung zu DOIF in der Commandref steht.
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?
Jetzt muss ich noch mal nachfragen. Du willst eigentlich auf Wochenende oder Feiertag prüfen, oder?
genau so ist es. In Perl wäre es if ($we)
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)
([Bewohner:state] eq "home" and $we)
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?
Das ist richtig, Du könntest zusätzlich einen Zeitpunkt für den Beginn festlegen.
Sagen wir mal so. Ich wüsste nicht was beim Wort Wochentagsteuerung missverstanden werden kann ;D
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
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.
Dann könntest statt DOELSE zu verwenden die Auschaltbedingung mit DOELSEIF genauer festlegen.
([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.
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)
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.
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)
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]