Müllkalender aus Googlekalender

Begonnen von hyper2910, 12 Februar 2021, 14:30:24

Vorheriges Thema - Nächstes Thema

hyper2910

Hallo zusammen,

vor ein paar Jahren habe ich irgendwo einen Anleitung für einen Müllkalender im FHEM gefunden.

Das ganze wird über den Google kalender getriggert und funktioniert wunderbar.

Seit diesem Jahr funktioniert nur die Berechnung der Biotonne nicht mehr.

Hat jemand eine Idee?  Ich komme einfach nicht weiter.

Alles funktioniert nur der Teil, welcher mit dtBiot zu tun hat nicht, leider blicke ich nicht mehr durch warum!
der Kalenderview gibt dieses aus:


Termine
Text   Zuletzt erfasst
2021.02.16-00:00   Abfuhrtermin: Gelbe Saecke   2021-02-12 13:49:04
2021.02.24-00:00   Abfuhrtermin: Biotonne   2021-02-12 13:49:04


Hier die Infos aus der myutil.:_

sub
Abfalltermine ($)
{
  my ($Ereignis) = @_;
  my @Ereignisarray = split(/.*:\s/,$Ereignis);
  my $Ereignisteil1 = $Ereignisarray[1];
  my @uids=split(/;/,$Ereignisteil1);
  my $t  = time;
  my $dtPapier = '';
  my $dtGelbe = '';
  my $dtRest = '';
  my $dtBiot = '';
 
   foreach my $uid (@uids) {
    my $Kalendertext = fhem("get Abfall summary $uid");
    if ($Kalendertext =~ /Papier/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtPapier eq '' || ($eventDate < $dtPapier && $eventDate > $t))
        {
          $dtPapier = $eventDate;
          Log(3, $dtPapier);
        }
    };
if ($Kalendertext =~ /Gelbe Saecke/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtGelbe eq '' || ($eventDate < $dtGelbe && $eventDate > $t))
        {
          $dtGelbe  = $eventDate;
        }
    };
    if ($Kalendertext =~ /Restmüll/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtRest eq '' || ($eventDate < $dtRest && $eventDate > $t))
        {
          $dtRest = $eventDate;
        }
    };
    if ($Kalendertext =~ /Biotonne/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtBiot eq '' || ($eventDate < $dtRest && $eventDate > $t))
        {
          $dtBiot = $eventDate;
        }
    };
   
  my $dayDiff = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Papiertonne $dayDiff");
  }
  my $dayDiff1 = floor(($dtGelbe - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff1 >= 0) {
    fhem("set GelberSack $dayDiff1");
  }
  my $dayDiff2 = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff2 >= 0) {
    fhem("set Restmuell $dayDiff2");
  }
my $dayDiff3 = floor(($dtBiot - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff3 >= 0) {
    fhem("set Biotonne $dayDiff3");
  }
  }
}
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

jinoe

ich koennte mich irren aber ist bei

if ($Kalendertext =~ /Biotonnel/) {

nicht das l bei Biotonnel falsch ???

heisst er würde einfach den text falsch filtern


hyper2910

sorry, das war ein Copy&Paste Fehler,    Finger zu Dick ;) :'(

Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

hyper2910

Ich habe es,

Warum, weiss ich noch nicht genau.


Der Kalendereintrag für Biotonne sieht genauso aus wie die für Restmüll,  jedoch packt das Calview nur bei diesem Eintrag ein zweites Leerzeichen dazu.

Leerzeichen in Google gelöscht und jetzt passt es
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,