Hallo zusammen, ich bin immer noch im Kampf mit meinem Müllkalender und komme einfach nicht mehr weiter. Vielleicht kann mir jemand helfen:-)
Ich habe bei Google einen Onlinekalender angelegt aus welchem ich meine Mülltermine auslese diese klappt auch soweit. Nur leider stimmt etwas bei der Übergabe der Daten in Fhem nicht:-(
In meinem Logfile werden die Daten korregt angezeigt:
siehe Anhang:-)
In meinem Muellalertdummy ebenso.
siehe Anhang
Nur auf meiner eigentlichen Abfall seite auf der die Daten auch auf mein Tablet UI übetragen werden nicht
siehe ANhang
Hier noch ein Einblick in meine Gelbetonne darin sieht man das der Eintrag zuletzt gestern um 10:14 Uhr aktualisiert wurde, seitdem nicht mehr.
siehe Anhang
Anbei noch meine fhem.cfg
#MuellKalender
define Abfall Calendar ical url https://calendar.google.com/......................basic.ics 600
attr Abfall group Abfall
attr Abfall room Status
define Abfall_Update notify Abfall:(modeUpcoming|modeAlarmOrStart).* {Abfalltermine("$EVENT")}
attr Abfall_Update group Abfall
attr Abfall_Update room Status
define MuellterminDummy dummy
define Papiertonne dummy
attr Papiertonne event-on-change-reading state,STATE
attr Papiertonne group Abfall
attr Papiertonne room Status
define Restmuell dummy
attr Restmuell event-on-change-reading state,STATE
attr Restmuell group Abfall
attr Restmuell room Status
define Gelbetonne dummy
attr Gelbetonne event-on-change-reading state,STATE
attr Gelbetonne group Abfall
attr Gelbetonne room Status
define Muellalert dummy
attr Muellalert event-on-change-reading state
attr Muellalert group Abfall
attr Muellalert room Status
define at_Muellalert at *00:20:00 {if(Value("Papiertonne") eq "1" || Value("Restmuell") eq "1" || Value("Gelbetonne") eq "1") {fhem("set Muellalert on")} else { fhem("set Muellalert off")}}
attr at_Muellalert group Abfall
attr at_Muellalert room Status
define Abfall_at at *00:00:30 set Abfall update
attr Abfall_at group Abfall
attr Abfall_at room Status
Und meine 99_myUtils
package main;
use strict;
use warnings;
use POSIX;
use Time::Local;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
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 = '';
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Abfall summary $uid");
if ($Kalendertext =~ /Papiertonne/) {
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 =~ /Gelbetonne/) {
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;
Log(3, $dtGelbe);
}
};
if ($Kalendertext =~ /Restmuell/) {
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;
Log(3, $dtRest);
}
};
my $dayDiff = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
if ($dayDiff >= 0) {
fhem("set Papiertonne $dayDiff");
}
my $dayDiff = floor(($dtGelbe - $t) / 60 / 60 / 24 + 1);
if ($dayDiff >= 0) {
fhem("set Gelbetonne $dayDiff");
}
my $dayDiff = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
if ($dayDiff >= 0) {
fhem("set Restmuell $dayDiff");
}
}
}
Vielen Dank schonmal, wenn ihr noch was braucht einfach melden. Danke!
Hi!
Kennst du schon das Modul von uniqueck?
hier: http://forum.fhem.de/index.php/topic,48237.0.html
Ich benutze es selbst seit ein paar Wochen. Einrichtung war kinderleicht.
Da ich bei meiner Version aus myUtils immer mit falschen Terminen, keine Termine, keine Aktualisieren etc zu kämpfen hatte habe ich es nun auch deaktiviert und nutze das Modul von uniqueck.
Ich fülle damit meine Dummys wie vorher bei der eigenen Lösung auch und Überwache die Abholung mit einem DOIF. Sobald das Reading aus dem Modul auf 1 steht werde ich per Mail und Sonos Sprachausgabe daran erinnert meine Tonne raus zu stellen.
Grüße,
Dirk