Hi,
ich hab jetzt mal die Vorlage von Franz aus Post 59 genommen, und die bei mir stehenden Bezeichnungen abgeändert, jetzt wird alles angezeigt ausser Papier, da bekomme ich immer noch die
Sehr wichtig ist das in der 99_myUtils.pm
use Time::Local;
drin ist, ansonsten kommen nur

Hier mal mein abgeänderter Code (hab auch die 2 Bereiche raus genommen, da ich es nur für mich zu hause brauche)
Der KAlender und die Buttons
define AbfallA Calendar ical file /home/thomas/limbach-hauptstrasse.ics
attr AbfallA alias Abfallkalender
attr AbfallA room Kalender
define GelbeTonneIn dummy
attr GelbeTonneIn alias Gelbe Säcke
attr GelbeTonneIn group Info
attr GelbeTonneIn room Kalender
define RestmuellIn dummy
attr RestmuellIn alias Restmüll
attr RestmuellIn group Info
attr RestmuellIn room Kalender
define PapierIn dummy
attr PapierIn alias Papier
attr PapierIn group Info
attr PapierIn room Kalender
define BiomuellIn dummy
attr BiomuellIn alias Bio
attr BiomuellIn group Info
attr BiomuellIn room Kalender
Das notify
define AbfallA_Update notify AbfallA:modeUpcoming.* {MuelltermineA("$EVENT")}
attr AbfallA_Update room Kalender
und der Eintrag in der 99_myUtils
package main;
use strict;
use warnings;
use POSIX;
use Time::Local;
sub myAbfallTermine_Initialize($$)
{
my ($hash) = @_;
}
# Mülltermine auswerten
sub MuelltermineA ($)
{
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
my $t = time;
my $dtBio = '';
my $dtYellow = '';
my $dtRest = '';
my $dtPapier = '';
foreach my $uid (@uids) {
my $Kalendertext = fhem("get AbfallA summary $uid");
if ($Kalendertext =~ /Bioabfall/) {
my $dt = fhem("get AbfallA 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 ($dtBio eq '' || ($eventDate < $dtBio && $eventDate > $t))
{
$dtBio = $eventDate;
Log(3, $dtBio);
}
};
if ($Kalendertext =~ /Gelber Sack/) {
my $dt = fhem("get AbfallA 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 ($dtYellow eq '' || ($eventDate < $dtYellow && $eventDate > $t))
{
$dtYellow = $eventDate;
}
};
if ($Kalendertext =~ /Restabfall/) {
my $dt = fhem("get AbfallA 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 =~ /Altpapier /) {
my $dt = fhem("get AbfallA 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;
}
};
my $dayDiffB = floor(($dtBio - $t) / 60 / 60 / 24 + 1);
if ($dayDiffB >= 0) {
fhem("set BiomuellIn $dayDiffB");
}
my $dayDiffG = floor(($dtYellow - $t) / 60 / 60 / 24 + 1);
if ($dayDiffG >= 0) {
fhem("set GelbeTonneIn $dayDiffG");
}
my $dayDiffR = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
if ($dayDiffR >= 0) {
fhem("set RestmuellIn $dayDiffR");
}
my $dayDiffP = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
if ($dayDiffP >= 0) {
fhem("set PapierIn $dayDiffP");
}
}
Find in dem Papier noch nicht den Fehler wieso das noch falsch angezeigt wird, vieleicht sieht den einer auf anhieb?
Danke
EDIT
Fehler gefunden in der 99_myUtils war ein leerzeichen zuviel, jetzt wird es richtig angezeigt