Hallo,
ich habe nach dieser Anleitung
http://raspberrypi.crmvy3qiisdstf8c.myfritz.net/wordpress/?p=496 (http://raspberrypi.crmvy3qiisdstf8c.myfritz.net/wordpress/?p=496)
den Abfall-Kalender erstellt.
Die Einträge sind korrekt im Google-Kalender hinterlegt, in FHEM bzw. FTUI bekomme ich aber immer Termine von ca. vor einem Monat berechnet.
Meine Frage:
Woher bezieht FHEM das aktuelle Tagesdatum?
Kann ich dies irgendwie in FHEM ausgeben um zu schauen, ob FHEM vom korrekten Datum aus geht?
Ich verwende den Raspberry PI 2 Model B mit Raspian Wheezy.
Auf dem RasPi ist das Datum m.M. nach korrekt eingestellt.
Vielen Dank für Eure Hilfe.
Viele Grüße
Jens
			
			
			
				Wenn man nach irgendwelchen Anleitungen vorgeht sollte man auch beim Ersteller der Anleitung nachfragen.
FHEM bezieht das Datum vom Hostsystem.
Aber wie sieht der Code den nun genau aus bei dir?
Ein list <Device>könnte uns das offenbaren.
			
			
			
				Hallo Puschel74,
vielen Dank für Deine Unterstützung.
Anbei die Ergebnisse der "list":
list von Device "Abfall":
Internals: 
   DEF        ical url https://calendar.google.com/calendar/ical/su01htjecsj2vjehsd8gvm2qc8%40group.calendar.google.com/private-xxxxx/basic.ics 21600 
   NAME       Abfall 
   NR         250 
   NTFY_ORDER 50-Abfall 
   STATE      triggered 
   TYPE       Calendar 
   Readings: 
     2016-02-21 12:07:03   lastUpdate      2016-02-21 12:07:01 
     2016-02-14 12:52:17   modeAlarm 
     2016-02-20 00:00:00   modeAlarmOrStart 
     2016-02-14 12:52:17   modeAlarmed 
     2016-02-20 04:17:18   modeChanged 
     2016-02-21 12:07:03   modeEnd         f73911aac02f6b1ff2031ff43bdad187abfallavlludwigsburgde;14c3195b7beb08fc1753018d5e8f9ed1abfallavlludwigsburgde;88691a948178fdb084cb537fde0e1468abfallavlludwigsburgde;972cd475ecfe6b35e6aee5e5375109b8abfallavlludwigsburgde;bacd197381297cc5d11886565b52a58eabfallavlludwigsburgde;1b887b3f5e89b2ba564baa0637adbb30abfallavlludwigsburgde;847627ee626c180e3af6f753be17db6babfallavlludwigsburgde;99cb5a3484a99e40d13fd619c0f50999abfallavlludwigsburgde;f592f2a4f8dae3e32e273576737f15e3abfallavlludwigsburgde;d5fd4e5a606254d6f1a302fa0364cf30abfallavlludwigsburgde;e6fff32da42646165167e002797d9521abfallavlludwigsburgde 
     2016-02-20 04:17:18   modeEnded 
     2016-02-20 00:00:00   modeStart 
     2016-02-14 12:52:17   modeStarted 
     2016-02-21 12:07:03   modeUpcoming    4fd2c0e049657ceb2ddc8e7a3292cec5abfallavlludwigsburgde;58392d605d237c7f2ca0fb65850bfa82abfallavlludwigsburgde;00ffd0b25601abc6d663043f318eb830abfallavlludwigsburgde;ccba550e88a2775fe48861b95521a40dabfallavlludwigsburgde;64f12c8553afac4640fc7f08c2318bb2abfallavlludwigsburgde;cc8846c51ac2936d4488795ccb7f4851abfallavlludwigsburgde;a89ef81bf074ddf76641c5860b17e1a3abfallavlludwigsburgde;d128fdc570a6b4c5a6e08f71b71dc765abfallavlludwigsburgde;bcd8367ed411cf7c0def38dac4326fa9abfallavlludwigsburgde;5118a094f40d1375716851c788ffbcd9abfallavlludwigsburgde;08e94af3fd139df371a5686b8c728284abfallavlludwigsburgde;de5523136dd52885f29d8b4475709ca0abfallavlludwigsburgde;3d275dfd0f7dea9f1819854479eee5a3abfallavlludwigsburgde;20a8703191cba34f23e72cf5162bd308abfallavlludwigsburgde;4756eba3ace96bf1d5c2713f52e27e29abfallavlludwigsburgde;362a10c61a1cefce932581f9d19db04cabfallavlludwigsburgde;0f43061188b4bf85f8d1e7d39fcdff71abfallavlludwigsburgde;7541bca1f3161263f8970855c96df460abfallavlludwigsburgde;2d565bfdefa89beb894a4a21c89a7c4babfallavlludwigsburgde;deda2be962aee725a6920654a33de048abfallavlludwigsburgde;6491213d5d92f1dd6ab229c87f27c088abfallavlludwigsburgde;eae6cc91ec4e11b48029af01693a2f0aabfallavlludwigsburgde;fbac6bee62489b84931ae3e10cf5fd7aabfallavlludwigsburgde;e68a77d8bf4c1ac646d9053a747420f1abfallavlludwigsburgde;68b7460f01e4cf02422b22bc4467b97babfallavlludwigsburgde;d3097d5ade701be8ec51a8f80b17fe2cabfallavlludwigsburgde;b23a2b513630b72243798d83f1b47c29abfallavlludwigsburgde;0f17af59f68f471c3252fe0d01f56888abfallavlludwigsburgde;ddc368f0860d4896cfbccf41e804c11eabfallavlludwigsburgde;12ae523160cd34ce8450909967d1049cabfallavlludwigsburgde;e7b306661779b260a76c3d45b693885fabfallavlludwigsburgde;ea6e78dd4407ea1ac1215a0f84a9b0ffabfallavlludwigsburgde;1a3527415bcd61d8d7249ff1812bbcacabfallavlludwigsburgde;825d17e9dbcf710581b554a8c770ffbeabfallavlludwigsburgde;ffa66ed830694e8f71edd0c4be3acab9abfallavlludwigsburgde;a87182d2b2eb8d082a469d37c47042eeabfallavlludwigsburgde;a65ee7811f9081f14a8f86cec822f61cabfallavlludwigsburgde;36813fc138a4d322a2f3c3b2aa631989abfallavlludwigsburgde;55c98e65364e0f48c695a29e8bb1f495abfallavlludwigsburgde;4b5251fe438d0fe6fb10f5761598fe72abfallavlludwigsburgde;bfc6356f19544dec7efb171f4eecdc82abfallavlludwigsburgde;896b9a935745a5b5055d6b9d02d573fbabfallavlludwigsburgde;ad47cbb24f69e8557b111d57ef4250fbabfallavlludwigsburgde;11fcb8f9ed7c1cb7d28fbaaf6676621dabfallavlludwigsburgde;b109a839784770362fd9271e7362912eabfallavlludwigsburgde;d2b4490a6984834d71e324b385420bb0abfallavlludwigsburgde;2e8c229994daa9de02c304b94fdfdba2abfallavlludwigsburgde;b1fb762d91d1b75bf75dde7e676a2177abfallavlludwigsburgde;edd245eee3d83e0ec1a9f42048d67e9cabfallavlludwigsburgde;0a76221a4461abacf6a78b639bc4a016abfallavlludwigsburgde;85404290d048d42e0cb3dc22aab82685abfallavlludwigsburgde;376ec778dc52adac86c4671c1f69a5a5abfallavlludwigsburgde;2034501d295cb179e2df43c7884ade92abfallavlludwigsburgde;9b3a0cce60e1c532c8f2bdc4acc34f53abfallavlludwigsburgde;31fd40659f7e736de02d9033c7f5e218abfallavlludwigsburgde;db2f554c41a541cba42b9e252c29cbbfabfallavlludwigsburgde;ba980ec7e7ee37bf880baf06f0f206f5abfallavlludwigsburgde;d066b407f8bcf8d0bfa11251267bcad5abfallavlludwigsburgde;62ca8184f1d8921858d42f84cd285c8fabfallavlludwigsburgde;8d4be510f94419b93e55b11c11b6caa1abfallavlludwigsburgde;6d10badd210740d0ac727cab382bade1abfallavlludwigsburgde;53d759864bfb2a8036a7b6302b87a9d8abfallavlludwigsburgde;ade3dd1391de7338fdfa2b173d7df2daabfallavlludwigsburgde;174118c4f855bf03885e1e4459b50bababfallavlludwigsburgde;697ce1bef098ee4e43ec6b742190fa9babfallavlludwigsburgde;21eeaca8d6440d0424a92e54fd4548dbabfallavlludwigsburgde;a1600fce676223a133f1e6fc24b2439cabfallavlludwigsburgde;b46a51271743ec6160412bb5a2ed5046abfallavlludwigsburgde;9f9b5e4e0c302bb845f446bf4a2d588aabfallavlludwigsburgde;f91994f513224cee598f0ac5cd9f9c03abfallavlludwigsburgde;241ba1c4f598c1af677e97fdbb8956bdabfallavlludwigsburgde;39e29212d7195043e0dfe17af9ce9239abfallavlludwigsburgde;a2b09183fc28e8632035aea6fe6b5ae8abfallavlludwigsburgde;38dc24e70748a470bfef465b61f1ab58abfallavlludwigsburgde;8904118773396ad30c41067e01a52ea0abfallavlludwigsburgde;e986cbac50facdee66bf44e50f586454abfallavlludwigsburgde;e9e7dfff3b22b8ff6704bc3848fdee30abfallavlludwigsburgde;57e7b6fd676b34879e1cd32af11ff332abfallavlludwigsburgde;d80ebfe8bd977f2c910ef34d0c7306f6abfallavlludwigsburgde;2212bd8408e51233344b7d057b477b9eabfallavlludwigsburgde;58527c08449d227ea248bd693b904b9fabfallavlludwigsburgde;102a5f7badb7ad7e082468d7aa42959eabfallavlludwigsburgde;46f2d2ddd02326aa27266ffa09e7d6e3abfallavlludwigsburgde;fa85c0fad93c47c9217ca3e515649fd5abfallavlludwigsburgde;4b33521ba8d072e43a3ae22c55b24a89abfallavlludwigsburgde;0237ebbf3ce73ae32a96177226e2fe39abfallavlludwigsburgde;781d667090af2858864d3ca65155a448abfallavlludwigsburgde;288383a37b41fddb4265c32533245a98abfallavlludwigsburgde;d60b46d4b04ef969da69884671421733abfallavlludwigsburgde;7be9abacb3e6b63242b6455b94fdbee5abfallavlludwigsburgde;1b59799a8939e45310779f6cbbca6dedabfallavlludwigsburgde;810429b10a3aa360dabed97e6b5040adabfallavlludwigsburgde;7ed6e73d5911d324b7c18f9acb1d4c90abfallavlludwigsburgde 
     2016-02-21 12:07:03   nextUpdate      2016-02-21 18:07:01 
     2016-02-21 12:07:03   nextWakeup      2016-02-21 18:07:01 
     2016-02-21 12:07:03   state           triggered 
Attributes: 
   hideOlderThan 2d 
   room       Kalender 
list von Device "notAbfalltermine":
Internals: 
   DEF        Abfall:modeUpcoming.* { Abfalltermine("$EVENT") } 
   NAME       notAbfalltermine 
   NOTIFYDEV  Abfall 
   NR         251 
   NTFY_ORDER 50-notAbfalltermine 
   REGEXP     Abfall:modeUpcoming.* 
   STATE      2016-02-21 12:07:03 
   TYPE       notify 
   Readings: 
     2016-02-20 10:11:52   state           active 
Attributes: 
   room       Kalender
list von Device "MuellterminDummy":
Internals: 
   NAME       MuellterminDummy 
   NR         252 
   STATE      ??? 
   TYPE       dummy 
Attributes: 
   room       Kalender
Auszug aus der 99_myUtils.pm:
######### Abfall-Kalender ################
sub
KalenderDatum($$)
{
   my ($KalenderName, $KalenderUid) = @_;
   my $dt = fhem("get $KalenderName start uid=$KalenderUid 1");
   my $ret = time;
 
   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 = ("Restmuell", "RundeTonne", "FlacheTonne", "BioTonne");
   my @SuchTexte = (".*Restmüll.*", ".*Rund.*", ".*Flach.*", ".*Biogut.*");
   my $uid;
   my $eventDate;
  
   for(my $i=0; $i<4; $i++)
   {
      my @uids = split(/;/,fhem("get Abfall find $SuchTexte[$i]"));
       
      # beendete Termine überspringen
      foreach $uid (@uids)
      {
         $eventDate = KalenderDatum('Abfall', $uid);
         if ($eventDate > $t) { last; }
      }
      my $dayDiff = floor(($eventDate - $t) / 60 / 60 / 24 + 1);
      fhem("setreading MuellterminDummy $Tonnen[$i] $dayDiff");
   }
}
Ich hoffe, dass dies etwas hilft?
Vielen Dank nochmals!
Grüße
Jens
			
			
			
				Hi,
konnte jetzt nicht den Code ansehen, aber: Wenn du mal irgendwas schaltest, siehst du in den Readings des Gerätes sofort das akt. Datum/Zeit. Sollte dies nicht stimmen, richte auf dem Rechner den "ntp"- Client ein (dafür gibt es auch viele Anleitungen im Netz). Dann wird die Zeit regelmäßig auf exaktem Stand gehalten (aus dem Internet).
Gruß
Frank
			
			
			
				Hallo,
ich habe nochmal eine Frage zu den regulären Ausdrücken.
Mein Abfallkalender funktioniert soweit - das Thema mit dem "Datum" hat sich so gelöst, dass ich bemerkt habe, dass in meinem Google-Kalender Einträge ohne Ende-Uhrzeit enthalten waren. Das hat irgendwie das korrekte Funtionieren verhindert.
Jetzt habe ich aber noch ein kleines Problem und finde im Internet leider nicht die Lösung (wahrscheinlich verwende ich die falschen Suchbegriffe..??).
In dem unten stehenden Code wird in meinem Google-Abfallkalender mit folgender Zeile
my @SuchTexte = (".*Restmüll.*", ".*Rund.*", ".*Flach.*", ".*Biogut.*");
in meinem Google-Abfallkalender nach den 4 Begriffen Restmüll, Rund, Flach und Biogut gesucht.
Soweit funktioniert dies auch - allerdings habe ich in meinem Google-Abfallkalender auch z.B. Einträge mit "Flach 1100L" stehen, welche jedoch nicht berücksichtigt werden sollen.
Bisher dachte ich, dass der "." hinter dem Suchbegriff (also  ".*Flach.*") sämtliche weitere Zeichen zulässt. Wenn ich den Suchstring in ".*Flach*" ändere, funktioniert es leider nicht besser.
Anbei der ganze Code zum besseren Verständnis:
#
# Abfall Kalender auswerten / Google Kalender: "Abfall"
#
 
sub
Abfalltermine()
{
   my $t  = time;
   my @Tonnen = ("Restmuell", "RundeTonne", "FlacheTonne", "BioTonne");
   my @SuchTexte = (".*Restmüll.*", ".*Rund.*", ".*Flach.*", ".*Biogut.*");
   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 Termin aus allen uids 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");
   }
}
Kann mir jemand auf die Sprünge helfen?
Vielen Dank.
Viele Grüße
Jens
			
			
			
				Am besten mal ein RegEx-Tutorial durchlesen.
Punkt (.) bedeutet bei RegEx einfach "irgendein Zeichen"
Der Stern dahinter bedeutet "ein oder mehrmal, egal wie oft".
lg, Stefan
			
			
			
				Wenn ich den "." entferne und als Such-String diesen String verwende
".*Flach*" (also ohne "."), dann sollte doch z.B. "Flach 1100L" nicht gefunden werden, oder? So hatte ich das zumindest verstanden.
"Flach 1100L" wird aber bei diesem Suchstring ".*Flach*" gefunden.
Interpretiere ich etwas falsch?
Vielen Dank.
			
			
			
				hier kannst du schön testen: https://regex101.com/ (https://regex101.com/)
			
			
			
				Schau mal
http://www.comp.leeds.ac.uk/Perl/matching.html (http://www.comp.leeds.ac.uk/Perl/matching.html)
Zu deiner Frage:
Das * bezieht sich auf das vorhergehende Zeichen und bedeutet keinmal, einmal oder öfter. (+ ist einmal oder öfter)
In deinem Fall auf das h von Flach. D.h. weiter das dem "Flach" kein, ein, oder mehrere "h"s folgen können.
Er matcht also auf "Flach" was ein Teil von "Flach 1100L" ist und somit gibt er Flach 1100L aus.
Flach.* heißt Flach folgt ein beliebiges Zeichen keinmal, einmal oder öfter was sich dann auf das Leerzeichen bezieht.
Auch hier sollte er Flach 1100L ausgeben da "Flach" und "Flach " ein Teil von Flach 1100L ist.
RegEx check ich auch manchmal nicht, verbessert das bitte wenn es nicht stimmt.
:)
linuxpaul
			
			
			
				Hallo Frank und linuxpaul,
vielen vielen Dank für Eure Mühe.
Jetzt hab ich´s :-)
Es muss also ".*Flach" heißen.
Grüße
Jens