Abfallkalender geht nicht mehr nach fhem update

Begonnen von FhemPiUser, 15 April 2021, 19:47:18

Vorheriges Thema - Nächstes Thema

FhemPiUser

Hallo,
mein seit vielen Jahren zuverlässig laufender Abfallkalender ist seit dem letzten Fhem Update am vor ein paar Tagen nicht mehr aktualisiert.

Ich habe ein Calendar device:

defmod Abfall_Kalender Calendar ical file /opt/fhem/www/kalender/entsorgungskalender_2021.ics 21600
attr Abfall_Kalender hideOlderThan 0


ein CALVIEW:

defmod Abfall_CalView CALVIEW Abfall_Kalender
attr Abfall_CalView maxreadings 17
attr Abfall_CalView modes modeAlarm,modeStart,modeStarted,modeUpcoming


und ein notify:

defmod n_Abfalltermine notify Abfall_Kalender:modeUpcoming.* { Abfalltermine("$EVENT") }


Das notify triggert eine Funktion in myUtil, die wiederum Readings in einem Dummy setzt, wieviele Tage es noch bis zu einem Abfallevent sind. Diese Tage bzw. Readings ändern sich seit dem fhem update nicht mehr.


sub
Abfalltermine ($)
{
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1); #id des Kalendereintrags
my $t = time;
my $dtPapier = ''; #Datum der Leerung
my $dtWertstoff = '';
my $dtRest = '';
my $dtSperrmuell = '';
my $dtGruen = '';

fhem("setreading MuellterminDummy Altpapier 99");
fhem("setreading MuellterminDummy GelberSack 99");
fhem("setreading MuellterminDummy Restmuell 99");
fhem("setreading MuellterminDummy Sperrmuell 99");
fhem("setreading MuellterminDummy Gruen 99");

foreach my $uid (@uids) {
   my $Kalendertext = fhem("get Abfall_Kalender summary $uid");
   if ($Kalendertext =~ /Altpapier/)
   {
      my $eventDate = KalenderDatum('Abfall_Kalender', $uid);
      if ($dtPapier eq '' || ($eventDate < $dtPapier && $eventDate > $t))
      {
         $dtPapier = $eventDate;

         my $dayDiff = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
         if ($dayDiff > 99) { $dayDiff = 99; }
         if ($dayDiff >= 0) { fhem("setreading MuellterminDummy Altpapier $dayDiff"); }
      }
   };
   if ($Kalendertext =~ /Gelber/) {
      my $eventDate = KalenderDatum('Abfall_Kalender', $uid);
      if ($dtWertstoff eq '' || ($eventDate < $dtWertstoff && $eventDate > $t))
      {
         $dtWertstoff = $eventDate;

         my $dayDiff = floor(($dtWertstoff - $t) / 60 / 60 / 24 + 1);
         if ($dayDiff > 99) { $dayDiff = 99; }
         if ($dayDiff >= 0) { fhem("setreading MuellterminDummy GelberSack $dayDiff"); }
      }
   };
   if ($Kalendertext =~ /Restmüll/) {
      my $eventDate = KalenderDatum('Abfall_Kalender', $uid);
      if ($dtRest eq '' || ($eventDate < $dtRest && $eventDate > $t))
      {
          $dtRest = $eventDate;

          my $dayDiff = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
          if ($dayDiff > 99) { $dayDiff = 99; }
          if ($dayDiff >= 0) { fhem("setreading MuellterminDummy Restmuell $dayDiff"); }
      }
   };
   if ($Kalendertext =~ /Sperrmüll/) {
      my $eventDate = KalenderDatum('Abfall_Kalender', $uid);
      if ($dtSperrmuell eq '' || ($eventDate < $dtSperrmuell && $eventDate > $t))
      {
         $dtSperrmuell = $eventDate;
         my $dayDiff = floor(($dtSperrmuell - $t) / 60 / 60 / 24 + 1);
         if ($dayDiff > 99) { $dayDiff = 99; }
         if ($dayDiff >= 0) { fhem("setreading MuellterminDummy Sperrmuell $dayDiff"); }
      };
   };
   if (($Kalendertext =~ /Grünrückstände/) or ($Kalendertext =~ /Weihnachtsbäume/)) {
      my $eventDate = KalenderDatum('Abfall_Kalender', $uid);
      if ($dtGruen eq '' || ($eventDate < $dtGruen && $eventDate > $t))
      {
         $dtGruen = $eventDate;
         my $dayDiff = floor(($dtGruen - $t) / 60 / 60 / 24 + 1);
         if ($dayDiff > 99) { $dayDiff = 99; }
         if ($dayDiff >= 0) { fhem("setreading MuellterminDummy Gruen $dayDiff"); }
      };
   };
}
}



Scheinbar wird der notify nicht mehr getriggert. Gleiches gilt für andere Kalender bei mir in fhem, die nach dem gleichen Prinzip funktionieren. Es kann also nicht an der Kalenderdatei liegen, sondern muss ein grundsätzliches Problem sein.

Hat jemand eine Idee, woran das liegen könnte?

Hat sich etwas in den Calendar-Modul geändert? Gibt es kein "modeUpcoming" mehr?

TomLee

ZitatHat sich etwas in den Calendar-Modul geändert? Gibt es kein "modeUpcoming" mehr?

Ich meine ja, hab nur noch die lastUpdate,nextUpdate und nextWakeup-Readings.

FhemPiUser

tatsächlich.

Habe das attr hasModeReadings auf 1 gesetzt und jetzt geht es wieder mit modeUpcoming.

Ist irgendwo beschrieben, wie sich die modes geändert haben? Was ersetzt modeUpcoming jetzt?


Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

FhemPiUser

ahh, danke, irgendwie hatte ich es in der commndref überlesen.

Aber ich wundere mich, dass es bis zu meinem letzten fhem update vor 4 Tagen ging. Ich mache sicherlich deutlich häufiger als alle 2 Jahre ein fhem update.

Otto123

die letzte Änderung war am 17.3.2021
Ich habe aber jetzt auch erst gesehen, dass die Events weggefallen sind. Aber ich reagiere darauf auch nicht.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz