Hi, so es läuft wieder, aber trotzdem nicht richtig.
Heute ist Papier gegangen, steht auch so im Kalender.
98fd06c7788f852a0010f4d93f1efb3e known start 14.01.2015 00:00:00-15.01.2015 00:00:00 Altpapier Limbach Hauptstraße
Also müsste der Dummy ja heute den Status 0 haben oder? Allerdings steht der Status heute auf 29, was auch grundsätzlich richtig ist, da in 29 Tagen das nächste Mal Papier geht, am 11.02.15, also zumindest ist 29 richtig wenn ich heute mitzähle, allerdings wenn heute wie ich eigentlich erwarten würde auf 0 stehen würde, dann wären es ja nur noch 28 Tage oder!?
Wie kann ich das noch lösen, komme nicht dahinter, das notify sieht aktuell so aus:
AbfallA_Update notify AbfallA:modeUpcoming.* {MuelltermineA("$EVENT")}\
und die Sub in der 99_myUtils:
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 (undef,undef,undef,$mday,$mon,$year) = localtime;
my $t = timelocal(0,0,0,$mday,$mon,$year);
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");
}
}
}
Was könnte ich noch falsch machen?
Danke für eure Hilfe