Abfallkalender Erinnerung notify calendar Fehler unter ActivePerl 5.22

Begonnen von helly21, 14 März 2016, 21:23:18

Vorheriges Thema - Nächstes Thema

helly21

Hallo,

ich möchte den Abfallkalender umsetzen jedoch habe ich einige Schwierigkeiten damit.

1. PERL WARNING: Use of uninitialized value $SplitDate[1] in subtraction (-) at /usr/local/FHEM/share/fhem/FHEM/99_myUtils.pm line 34.
    notAbfalltermine return value: Month '-1' out of range
- ich habe hier bereits "use Time::Local;" in der 99_myUtils.pm ergänzt, hilft gar nix

2. PERL WARNING: Use of uninitialized value within @SuchTexte in concatenation (.) or string at /usr/local/FHEM/share/fhem/FHEM/99_myUtils.pm line 57.
    get Abfall find  : argument is missing
    get Abfall start uid=argument is missing 1 : Argument is is not a number.
- my @SuchTexte = (".*Bio.*" , ".*Papier.*", ".*Restmuell.*", );                      -Was ist hier falsch?

Wäre super wenn mir jemand ein Tip geben könnte. Der Kalender an sich funktioniert ja aber wie man sieht klappts mit der notify nicht:(
Hier noch meine komplette 99_myUtils.pm

#
# Hilfsfunktion für Kalenderauswertungen
#

sub
KalenderDatum($$)
{
   my ($KalenderName, $KalenderUid) = @_;
   my $dt = fhem("get $KalenderName start uid=$KalenderUid 1");
   my $ret = time - 86400;  #falls kein Datum ermittelt wird Rückgabewert auf "gestern" -> also vergangener Termin

   if ($dt and $dt ne "")
   {
      my @SplitDt = split(/ /,$dt);
      my @SplitDate = split(/\./,$SplitDt[0]);
      $ret = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
   }

   return $ret;
}


#
# Abfall Kalender auswerten / Google Kalender: "Abfall"
#

sub
Abfalltermine()
{
   my $t  = time;
   my @Tonnen = ("BioTonne" , "BlaueTonne", "Restmuell", );
   my @SuchTexte = (".*Bio.*" , ".*Papier.*", ".*Restmuell.*", );
   my $uid;
   my $dayDiff;
 
   for(my $i=0; $i<4; $i++)
   {
      $dayDiff = -1; #BUG behoben
      my @uids = split(/;/,fhem("get Abfall find $SuchTexte[$i]"));
       
      #den nächsten Termin aus allen uids finden
      foreach $uid (@uids)
      {
         my $eventDate = KalenderDatum('Abfall', $uid);
         my $dayDiffNeu = floor(($eventDate - $t) / 60 / 60 / 24 + 1);
         if ($dayDiffNeu > 0 && ($dayDiffNeu < $dayDiff || $dayDiff == -1))  #BUG behoben
         {
            $dayDiff = $dayDiffNeu;
         }
      }

      fhem("setreading MuellterminDummy $Tonnen[$i] $dayDiff");
   }
}

uniqueck

Falls du noch an einer Lösung interessiert bist, ich kann dir hier das Modul empfehlen, welches in diesem Thread beschrieben wird https://forum.fhem.de/index.php/topic,48237.msg500009.html#msg500009, oder auch hier im Wiki http://www.fhemwiki.de/wiki/ABFALL

Gruß Constantin

helly21

Bin mittlerweile vom Syno NAS mit dem FHEM auf einen RPI umgestiegen, Fall erledigt.
Fhem lief zwar am Syno allerdings gibt es immer ärger mit restriktionen der neuen Updates von daher ist es so wie es jetzt läuft auf jeden Fall um 90% Wartungsärmer als vorher;)
Danke und Gruß!