$we für beliebigen Tag abfragen

Begonnen von m8ichael, 25 November 2016, 12:00:01

Vorheriges Thema - Nächstes Thema

m8ichael

Hallo Gemeinde,

die Variable $we wird ja jeden Tag, in Abhängigkeit zum Wochentag, ggf. Feiertag etc. um Mitternacht gefüllt. Gibt es eine Möglichkeit, in einem eigenen Modul für einen beliebigen Tag die dahinter liegende Abfragelogik zu nutzen? Oder muss ich das Rad komplett neu erfinden?

Hintergrund ist, dass ich für eine Schaltung herausfinden möchte, inwieweit der morgige Tag am Wochenende/ein Feiertag/in den Ferien liegt/ist.

Schon mal vielen Dank!  :)

Viele Grüße

Michael

t1me2die

Wenn ich Dich richtig verstanden habe, suchst du wohl sowas:

Zitat
http://www.fhemwiki.de/wiki/Wochenende,_Feiertage_und_Schulferien

Schau in der commandref auch mal nach "holiday".

Gruß
Mathias

marvin78

Aus fhem.pl:


my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
  my $hms = sprintf("%02d:%02d:%02d", $hour, $min, $sec);
  my $we = (($wday==0 || $wday==6) ? 1 : 0);
  if(!$we) {
    my $h2we = $attr{global}{holiday2we};
    if($h2we && Value($h2we)) {
      my ($a, $b) = ReplaceEventMap($h2we, [$h2we, Value($h2we)], 0);
      $we = 1 if($b ne "none");
    }
  }
  $month++;
  $year+=1900;

m8ichael

Vielen Dank für den Anschubser! Ich habe das jetzt mal zur Abfrage des nächsten Tages wie folgt gelöst:


sub weNextDay() {
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime(time);
  my $we = (($wday==5 || $wday==6) ? 1 : 0);
  if(!$we) {
    my $h2we = $attr{global}{holiday2we};
    if($h2we && Value($h2we)) {
    $we = 1 if(ReadingsVal($h2we,"tomorrow","none") ne "none");
    }
  }
return $we;
}


Viele Grüße

Michael