Wie am Wochenende den ganzen Tag?

Begonnen von andi11, 01 Januar 2018, 17:25:57

Vorheriges Thema - Nächstes Thema

andi11

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?

CoolTux

So wie es in der ausführlichen Beschreibung zu DOIF in der Commandref steht.
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

andi11

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?

CoolTux

Jetzt muss ich noch mal nachfragen. Du willst eigentlich auf Wochenende oder Feiertag prüfen, oder?
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

andi11

genau so ist es. In Perl wäre es if ($we)

CoolTux

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)
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

Ellert


andi11

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?


Ellert

Das ist richtig, Du könntest zusätzlich einen Zeitpunkt für den Beginn festlegen.

CoolTux

Sagen wir mal so. Ich wüsste nicht was beim Wort Wochentagsteuerung missverstanden werden kann  ;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

viegener

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
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

andi11

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.

Ellert

Dann könntest statt DOELSE zu verwenden die Auschaltbedingung mit DOELSEIF genauer festlegen.

andi11

([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.

viegener

#14
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)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können