Funktion Abfal 99_myUtils Fehler im LOG

Begonnen von cybertk, 13 Januar 2017, 15:42:17

Vorheriges Thema - Nächstes Thema

cybertk

Bei der Umsetzung des Abfallkalenders treten bei mir ei jeder Abfrage folgende Fehlermeldungen auf.
Ich selber habe von Perl keine Ahnung und habe das modul von
http://www.juergenstechnikwelt.de/smarthome-2/smarthome-mit-fhem-umsetzung-meines-abfallkalenders/ benutzt.Time::Local; ist gesetzt
Komischerweise funktionierd alles????????
Kann mir da jemand bitte helfen.

2017.01.13 15:23:06 1: PERL WARNING: Use of uninitialized value within @SuchTexte in concatenation (.) or string at ./FHEM/99_myUtils.pm line 72.
2017.01.13 15:23:06 3: get Abfall find  : argument is missing
2017.01.13 15:23:06 3: get Abfall start uid=argument is missing 1 : Argument is is not a number.
2017.01.13 15:23:06 1: PERL WARNING: Use of uninitialized value $SplitDate[1] in subtraction (-) at ./FHEM/99_myUtils.pm line 49.
2017.01.13 15:23:06 1: ERROR evaluating my $EVTPART0='triggered';my $NAME='Abfall';my $TYPE='Calendar';my $EVENT='triggered';my $SELF='notAbfalltermine';{ Abfalltermine() }: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 49.

2017.01.13 15:23:06 3: notAbfalltermine return value: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 49.

hier noch meine 99_myUtils.pm
use Time::Local;
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
#
# Anruf Funktionen
#
sub CheckAnrufe($)
{
   my ($aktion) = @_;

   #bei ausgehenden Anrufen wird der Dummy hochgezählt
   if (ReadingsVal("CallMonitor", "direction", "outgoing") eq "incoming")
   {
      fhem("set duVerpassteAnrufe ".(Value("duVerpassteAnrufe")+1));
   }
}
#
# Hilfsfunktion für Kalenderauswertungen
#

sub
KalenderDatum($$)
{
   my ($KalenderName, $KalenderUid) = @_;
   my $dt = fhem("get $KalenderName start uid=$KalenderUid 1");
   my $ret = time - (2*86400);  #falls kein Datum ermittelt wird Rückgabewert auf "vorgestern" -> 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 = ("BlaueTonne", "GelberSack", "GrüneTonne");
   my @SuchTexte = (".*Papier.*", ".*Gelber*.*", ".*Restmüll.*");
   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 Termine 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");
   }
}
1;