FHEM Forum

FHEM => Automatisierung => Thema gestartet von: mitdra am 03 Januar 2017, 12:35:57

Titel: Abfall Kalender aus Google, wie zeige ich die Werte an?
Beitrag von: mitdra am 03 Januar 2017, 12:35:57
Hallo zusammen,

ich würde gerne aus meinem google-Account den Abfallkender auslesen, es gibt ein paar wenige Lösungen, aus denen ich nicht schlau werde, was die Auswertungen angeht.
Ich habe es analog zur http://www.juergenstechnikwelt.de/smarthome-2/smarthome-mit-fhem-umsetzung-meines-abfallkalenders/ eingestellt.

meine cfg Einträge:
define Abfall Calendar ical url https://calendar.google.com/calendar/ical/......calendar.google.com/public/basic.ics
attr Abfall hideOlderThan 2d
# define vKalender_DDM CALVIEW Abfall 1 21600
# attr vKalender_DDM alias Abfall_Kalender
# attr vKalender_DDM group Kalender
# attr vKalender_DDM maxreadings 10
# attr vKalender_DDM modes next
# attr vKalender_DDM room Kalender


define notAbfalltermine notify Abfall:modeUpcoming.* { Abfalltermine("$EVENT") }

define MuellterminDummy dummy


und in der 99_myutils:
#
# Hilfsfunktion für Kalenderauswertungen
#

sub
KalenderDatum($$)
{
   my ($KalenderName, $KalenderUid) = @_;
   my $dt = fhem("get $KalenderName start uid=$KalenderUid 1");
   my $ret = time - (2*86400);  #falls kein Datum ermittelt wird Rückgabewert auf "vorgestern" -> also vergangener Termin;

   if ($dt and $dt ne "")
   {
      my @SplitDt = split(/ /,$dt);
      my @SplitDate = split(/\./,$SplitDt[0]);
      $ret = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
   }

   return $ret;
}


#
# Abfall Kalender auswerten / Google Kalender: "Abfall"
#

sub
Abfalltermine()
{
   my $t  = time;
   my @Tonnen = ("GrueneTonne", "GelbeTonne", "Restmuell", "BioTonne");
   my @SuchTexte = (".*Papier.*", ".*Wertstoff.*", ".*Restmüll.*", ".*Bio.*");
   my $uid;
   my $dayDiff;
 
   for(my $i=0; $i<4; $i++)
   {
      $dayDiff = -1; #BUG behoben
      my @uids = split(/;/,fhem("get Abfall find $SuchTexte[$i]"));
       
      # den nächsten Termine finden
      foreach $uid (@uids)
      {
         my $eventDate = KalenderDatum('Abfall', $uid);
         my $dayDiffNeu = floor(($eventDate - $t) / 60 / 60 / 24 + 1);
         if ($dayDiffNeu >= 0 && ($dayDiffNeu < $dayDiff || $dayDiff == -1)) #BUG behoben
         {
            $dayDiff = $dayDiffNeu;
         }
      }
       
      fhem("setreading MuellterminDummy $Tonnen[$i] $dayDiff");
   }
}

1;


Mit get Abfall Full all erhalte ich die Einträge aus dem Kalender.

Nur wie und wo werden sie angezeigt?
Titel: Antw:Abfall Kalender aus Google, wie zeige ich die Werte an?
Beitrag von: Otto123 am 03 Januar 2017, 13:26:41
Hi,

im MuellterminDummy ?

Wenn Du es so machst -> https://wiki.fhem.de/wiki/ABFALL

hättest Du Readings, vielleicht ist das einfacher für Dich?

Gruß Otto
Titel: Antw:Abfall Kalender aus Google, wie zeige ich die Werte an?
Beitrag von: mitdra am 04 Januar 2017, 13:12:41
Hallo Otto,
Danke für den Tipp, das funktioniert ja direkt in der cfg

Gesendet von meinem Moto G (4) mit Tapatalk

Titel: Antw:Abfall Kalender aus Google, wie zeige ich die Werte an?
Beitrag von: Dummbatz am 10 Januar 2017, 18:47:25
Hi Mitdra,

Aber das Modul ABFALL soll doch gerade so funktionieren das man nichts braucht in der 99_myutils ??

Ich suche mich nämlich auch schon tod wie man das schön in TabletUi einbauen kann.

Zumindest habe ich schon mal eine Tonne mit Text und Anzeige der Tage.

LG
Titel: Antw:Abfall Kalender aus Google, wie zeige ich die Werte an?
Beitrag von: mitdra am 12 Januar 2017, 17:30:08
Hi dummbatz,

korrekt, so meinte ich es auch. via cfg kann ich alles einstellen und brauche die 99_myutils.pm nicht.