Hauptmenü

Abfall Calendar

Begonnen von bumbumb, 22 September 2016, 17:35:03

Vorheriges Thema - Nächstes Thema

bumbumb

Hallo,
ich habe den Kalender benutzt, leider wird bei Restmüll -1 angezeigt, die anderen Tonnen funktionieren 1a. Könnt ihr helfen. Wie bekomme ich den Wert jeder Tonne in eine Variable.

BioTonne
6
2016-09-22 16:33:52
BlaueTonne
22
2016-09-22 16:33:50
GelbeTonne
14
2016-09-22 16:33:51
Restmuell
-1
2016-09-22 16:33:51

Aufbau der cFg Datei:
define Abfall Calendar ical url https://calendar.google.com/calendar/ical/adsdsddasd/basic.ics
attr Abfall hideOlderThan 2d
define notAbfalltermine notify Abfall:triggered { Abfalltermine() }
define MuellterminDummy dummy

komisch das es so ist könnt habt ihr eine IDEE?

bumbumb

zusätzliche wird der dummy nicht gefüllt
define MuellterminDummy dummy

chris1284

das eigentlich interessante zeigst du nicht. was steht denn in der Abfalltermine() an code drin?

bumbumb

das steht drin

use Time::Local;

#
# 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 = ("BlaueTonne", "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");
   }
}



chris1284

du darfst gerne die code tags verwenden ;) 
wie heist denn der kalendertext zu restmüll?

bumbumb

Restmuell hast du eine Idee?

bumbumb

Der Eintrag im calendar ist Restmuell 2-woechentlich

bumbumb

Habe es selbst gefunden Danke für den Tip

Stargazer

Hallo zusammen,

hatte auch versucht das Abfall Modul zum laufen zu bringen. Doch trotz Anwesenheit im FHEM-Ordner, reload ohne Probleme und shutdown restart, sagt er mir bei der define-routine "Unknown Module 57_ABFALL.pm".

Woran liegt das ?

Viele Grüße und besten Dank

André

chris1284

Wie versuchst du es denn zu definieren und worüber(Web cfg)?

Stargazer

Hallo,

ganz normal über die Konsole.

Mit : define myAbfall ABFALL Abfall 3600

Besten Dank...

André

chris1284

https://forum.fhem.de/index.php/topic,48237.465/topicseen.html

frag am besten dort,  das ist das richtige unterforum (oben das war kein  modul fehler sonder hier war ein eigenes script eingebunden). poste auch mal ein log auszug dort nach dem du global verbose auf 5 gesetzt hast und ein define versucht hast.

uniqueck

Zitat von: Stargazer am 22 September 2016, 21:50:40
Hallo,

ganz normal über die Konsole.

Mit : define myAbfall ABFALL Abfall 3600

Besten Dank...

André

Hierzu muss ein Calender Device mit dem Namen Abfall existieren.

define Abfall Calendar ical url ..... 3600
dann kannst du mit
define myAbfall ABFALL Abfall
das Abfall Modul definieren.

So besseren lesbarkeit würde ich dir empfehlen, denn Teilen ein bisschen unterschiedliche Namen zu geben, zum Beispiel cal_Abfall für das Calender Device.

Schaue auch mal hier im Wiki

http://www.fhemwiki.de/wiki/ABFALL

Gruß Constantin