FHEM Forum

FHEM => Sonstiges => Thema gestartet von: hyper2910 am 12 Februar 2021, 14:30:24

Titel: Müllkalender aus Googlekalender
Beitrag von: hyper2910 am 12 Februar 2021, 14:30:24
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");
  }
  }
}
Titel: Antw:Müllkalender aus Googlekalender
Beitrag von: jinoe am 13 Februar 2021, 00:01:31
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

Titel: Antw:Müllkalender aus Googlekalender
Beitrag von: hyper2910 am 13 Februar 2021, 09:19:49
sorry, das war ein Copy&Paste Fehler,    Finger zu Dick ;) :'(

Titel: Antw:Müllkalender aus Googlekalender
Beitrag von: hyper2910 am 13 Februar 2021, 09:44:45
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