Calender oder 99_myUtils durcheinander?

Begonnen von dieoma, 03 Juni 2015, 11:42:24

Vorheriges Thema - Nächstes Thema

dieoma

Hallo zusammen,

ich suche mir seit ein paar Tagen den Wolf nach einem Fehler in meinem Abfallkalender der eigentlich gut funktioniert. Die definition im fhem.cfg für die google .ics Datei passt soweit und er wertet auch gut aus, aber er benennt Daten die nicht existieren, und erstellt eine summary einer UID die überhaupt nicht abgefragt wird  :-[ Hier meine 99myUtils.pm:
     27 sub
     28 Abfalltermine ($)
     29 {
     30   my ($Ereignis) = @_;
     31   my @Ereignisarray = split(/.*:\s/,$Ereignis);
     32   my $Ereignisteil1 = $Ereignisarray[1];
     33   my @uids=split(/;/,$Ereignisteil1);
     34   my $t  = time;
     35   my $dtPapier = '';
     36   my $dtWertstofftonne = '';
     37   my $dtRest = '';
     38    foreach my $uid (@uids) {
     39     my $Kalendertext = fhem("get Abfall summary $uid");
     40         if ($Kalendertext =~ /Papiertonne/) {
     41                 my $dt = fhem("get Abfall start $uid");
     42                 my @SplitDt = split(/ /,$dt);
     43                 my @SplitDate = split(/\./,$SplitDt[0]);
     44                 my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
     45                 if ($dtPapier eq '' || ($eventDate < $dtPapier && $eventDate > $t))
     46                         {
     47                         $dtPapier = $eventDate;
     48                         Log(3, $dtPapier);
     49                         }
     50         };
     51         if ($Kalendertext =~ /GelbeTonne/) {
     52                 my $dt = fhem("get Abfall start $uid");
     53                 my @SplitDt = split(/ /,$dt);
     54                 my @SplitDate = split(/\./,$SplitDt[0]);
     55                 my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
     56                 if ($dtWertstofftonne eq '' || ($eventDate < $dtWertstofftonne && $eventDate > $t))
     57                         {
     58                         $dtWertstofftonne  = $eventDate;
     59                         Log(3, $dtWertstofftonne);
     60                         }
     61         };
     62         if ($Kalendertext =~ /Reste/) {
     63                 my $dt = fhem("get Abfall start $uid");
     64                 my @SplitDt = split(/ /,$dt);
     65                 my @SplitDate = split(/\./,$SplitDt[0]);
     66                 my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
     67                 if ($dtRest eq '' || ($eventDate < $dtRest && $eventDate > $t))
     68                         {
     69                         $dtRest = $eventDate;
     70                         Log(3, $dtRest);
     71                         }
     72         };
     73   
     74   
     75   my $dayDiff = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
     76   if ($dayDiff >= 0) {
     77         fhem("set Papiertonne $dayDiff");
     78         fhem("setreading MuellterminDummy BlaueTonne $dayDiff");
     79   }
     80   my $dayDiff = floor(($dtWertstofftonne - $t) / 60 / 60 / 24 + 1);
     81   if ($dayDiff >= 0) {
     82         fhem("set Gelbe $dayDiff");
     83         fhem("setreading MuellterminDummy GelbeTonne $dayDiff");
     84   }
     85   my $dayDiff = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
     86   if ($dayDiff >= 0) {
     87         fhem("set Restmuell $dayDiff");
     88         fhem("setreading MuellterminDummy Restmuell $dayDiff");
     89   }
     90   }
     91 }
     92 1;

Man sehe und staune: Ein "Restmüll" wird überhaupt nicht abgefragt (mal sein das ich das früher einmal hatte, aber nun definitiv nicht mehr), trotzdem kommt dazu sogar eine UID mit?!? Laut Anzeige im Log: 2015.06.03 11:24:16 3: get Abfall summary bp5u6c8pjaqp0d1r9953f130jcgooglecom : Papiertonne
2015.06.03 11:24:16 3: get Abfall start bp5u6c8pjaqp0d1r9953f130jcgooglecom : 24.12.2015 00:00:00
2015.06.03 11:24:16 3: 1450911600
2015.06.03 11:24:16 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 80.
2015.06.03 11:24:16 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 85.
2015.06.03 11:24:16 3: get Abfall summary eqaubgsmhp3m7lsvnv1fbg4pscgooglecom : Restmüll
2015.06.03 11:24:16 3: get Abfall summary hvgas1mmn5q3p14f74fjg41visgooglecom : Reste
2015.06.03 11:24:16 3: get Abfall start hvgas1mmn5q3p14f74fjg41visgooglecom : 09.06.2015 00:00:00
2015.06.03 11:24:16 3: 1433800800
2015.06.03 11:24:16 3: get Abfall summary lo8tuo283umihk7oupdmbra9cggooglecom : Papiertonne
2015.06.03 11:24:16 3: get Abfall start lo8tuo283umihk7oupdmbra9cggooglecom : 12.06.2015 00:00:00
2015.06.03 11:24:16 3: 1434060000
2015.06.03 11:24:16 3: get Abfall summary ulrg0tuvfnkp6f3mhncepn0ikkgooglecom : GelbeTonne
2015.06.03 11:24:16 3: get Abfall start ulrg0tuvfnkp6f3mhncepn0ikkgooglecom : 10.06.2015 00:00:00
2015.06.03 11:24:16 3: 1433887200
2015.06.03 11:24:16 1: PERL WARNING: Use of uninitialized value $Ereignisteil1 in split at ./FHEM/99_myUtils.pm line 33.
2015.06.03 11:25:16 3: get Abfall summary bp5u6c8pjaqp0d1r9953f130jcgooglecom : Papiertonne

Zum anderen ist das Datum zu "GelbeTonne" falsch - am 10.6. steht überhaupt gar nix in diesem Kalender - GelbeTonne müsste am 16.6. auftauchen. Ein "get Abfall full all" liefert: hvgas1mmn5q3p14f74fjg41visgooglecom   known upcoming                     09.06.2015 00:00:00-10.06.2015 00:00:00 Reste
ulrg0tuvfnkp6f3mhncepn0ikkgooglecom   known upcoming                     10.06.2015 00:00:00-11.06.2015 00:00:00 GelbeTonne
lo8tuo283umihk7oupdmbra9cggooglecom   known upcoming                     12.06.2015 00:00:00-13.06.2015 00:00:00 Papiertonne
eqaubgsmhp3m7lsvnv1fbg4pscgooglecom   known upcoming                     22.12.2015 00:00:00-23.12.2015 00:00:00 Restmüll
bp5u6c8pjaqp0d1r9953f130jcgooglecom   known upcoming                     24.12.2015 00:00:00-25.12.2015 00:00:00 Papiertonne

Wie kann man diese offensichtlich falschen nicht (mehr?) existieren UIDs löschen oder gucke ich einfach nur falsch?  und mein hem möchte das ich öfter zum Müll gehe?!?
FHEM5.8 auf Raspi 2, HomeMatic über HMLan mit einigen Aktoren, IT433 Steckosen über CUL, Squeezebox und Tablet-UI

dieoma

oh, habe mir gerade die ics mal im vi geöffnet und siehe da: Da stehen dinge drin die im onlinemalender nicht sichtbar sind. Werde das nun beheben und damit löst sich dies Problem hoffentlich von selbst :-)
FHEM5.8 auf Raspi 2, HomeMatic über HMLan mit einigen Aktoren, IT433 Steckosen über CUL, Squeezebox und Tablet-UI