FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bumbumb am 22 September 2016, 17:35:03

Titel: Abfall Calendar
Beitrag von: bumbumb am 22 September 2016, 17:35:03
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?
Titel: Antw:Abfall Calendar
Beitrag von: bumbumb am 22 September 2016, 17:36:02
zusätzliche wird der dummy nicht gefüllt
define MuellterminDummy dummy
Titel: Antw:Abfall Calendar
Beitrag von: chris1284 am 22 September 2016, 18:07:30
das eigentlich interessante zeigst du nicht. was steht denn in der Abfalltermine() an code drin?
Titel: Antw:Abfall Calendar
Beitrag von: bumbumb am 22 September 2016, 18:30:55
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");
   }
}


Titel: Antw:Abfall Calendar
Beitrag von: chris1284 am 22 September 2016, 18:39:50
du darfst gerne die code tags verwenden ;) 
wie heist denn der kalendertext zu restmüll?
Titel: Antw:Abfall Calendar
Beitrag von: bumbumb am 22 September 2016, 19:09:49
Restmuell hast du eine Idee?
Titel: Antw:Abfall Calendar
Beitrag von: bumbumb am 22 September 2016, 19:12:38
Der Eintrag im calendar ist Restmuell 2-woechentlich
Titel: Antw:Abfall Calendar
Beitrag von: bumbumb am 22 September 2016, 19:21:00
Habe es selbst gefunden Danke für den Tip
Titel: Antw:Abfall Calendar
Beitrag von: Stargazer am 22 September 2016, 19:44:28
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é
Titel: Antw:Abfall Calendar
Beitrag von: chris1284 am 22 September 2016, 21:47:29
Wie versuchst du es denn zu definieren und worüber(Web cfg)?
Titel: Antw:Abfall Calendar
Beitrag von: Stargazer am 22 September 2016, 21:50:40
Hallo,

ganz normal über die Konsole.

Mit : define myAbfall ABFALL Abfall 3600

Besten Dank...

André
Titel: Antw:Abfall Calendar
Beitrag von: chris1284 am 23 September 2016, 06:48:58
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.
Titel: Antw:Abfall Calendar
Beitrag von: uniqueck am 08 Oktober 2016, 00:06:28
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