Calendarmodul und Abfallkalender

Begonnen von raspklaus, 21 Februar 2016, 10:39:01

Vorheriges Thema - Nächstes Thema

raspklaus

Hallo zusammen,

ich hatte den Grundlage aus dem Threat

http://forum.fhem.de/index.php/topic,26209.0.html

für meinen Abfallkalender genommen und nun auch das neue Calendarmodul im Notify berücksichtigt:

RemovalCheck {
my $RemovalBlack = "off";
my $RemovalBrown = "off";
my $RemovalBlue = "off";
my $RemovalYellow = "off";
my $RemovalToxic = "off";
my $RemovalPaper = "off";
my $RemovalGreen = "off";

my $rcal= fhem("get Abfall text next 4");
my @events = split ("\n", $rcal);
my $tomorrow = strftime "%%d.%%m.%%y", localtime(time + 86400);

foreach my $event (@events)
{
my @werte = split(" ", $event);

if ($werte[0] eq $tomorrow)
{
  if ($werte[3] eq "Restmüll") {$RemovalBlack = "on"}
  elsif ($werte[3] eq "Biomüllabfuhr") {$RemovalBrown = "on"}
  elsif ($werte[3] eq "Papiertonne") {$RemovalBlue = "on"}
  elsif ($werte[3] eq "Gelber") {$RemovalYellow = "on"}
  elsif ($werte[3] eq "Schadstoffsammlung") {$RemovalToxic = "on"}
  elsif ($werte[3] eq "Papiersammlung") {$RemovalPaper = "on"}
  elsif ($werte[3] eq "Grünabfallsammlung") {$RemovalGreen = "on"}
}
}
fhem("set RemovalBlack $RemovalBlack");
fhem("set RemovalBrown $RemovalBrown");
fhem("set RemovalBlue $RemovalBlue");
fhem("set RemovalYellow $RemovalYellow");
fhem("set RemovalToxic $RemovalToxic");
fhem("set RemovalPaper $RemovalPaper");
fhem("set RemovalGreen $RemovalGreen");
return;
}


Das Get aus dem Abfallkalender ist auch richtig:

22.02.16 06:00 Abfuhrtermin Restmüll am 22.02.2016
23.02.16 06:00 Abfuhrtermin Papiertonne am 23.02.2016
29.02.16 06:00 Abfuhrtermin Biomüllabfuhr am 29.02.2016
07.03.16 06:00 Abfuhrtermin Restmüll am 07.03.2016


Ein trigger mit verbose 5 erzeugt folgende Logausgabe:

2016.02.21 10:31:35 5: Triggering RemovalCheck
2016.02.21 10:31:35 4: RemovalCheck exec {
my $RemovalBlack = "off";;
my $RemovalBrown = "off";;
my $RemovalBlue = "off";;
my $RemovalYellow = "off";;
my $RemovalToxic = "off";;
my $RemovalPaper = "off";;
my $RemovalGreen = "off";;

my $rcal= fhem("get Abfall text next 4");;
my @events = split ("\n", $rcal);;
my $tomorrow = strftime "%%d.%%m.%%y", localtime(time + 86400);;

foreach my $event (@events)
{
my @werte = split(" ", $event);;

if ($werte[0] eq $tomorrow)
{
  if ($werte[3] eq "Restmüll") {$RemovalBlack = "on"}
  elsif ($werte[3] eq "Biomüllabfuhr") {$RemovalBrown = "on"}
  elsif ($werte[3] eq "Papiertonne") {$RemovalBlue = "on"}
  elsif ($werte[3] eq "Gelber") {$RemovalYellow = "on"}
  elsif ($werte[3] eq "Schadstoffsammlung") {$RemovalToxic = "on"}
  elsif ($werte[3] eq "Papiersammlung") {$RemovalPaper = "on"}
  elsif ($werte[3] eq "Grünabfallsammlung") {$RemovalGreen = "on"}
}
}
fhem("set RemovalBlack $RemovalBlack");;
fhem("set RemovalBrown $RemovalBrown");;
fhem("set RemovalBlue $RemovalBlue");;
fhem("set RemovalYellow $RemovalYellow");;
fhem("set RemovalToxic $RemovalToxic");;
fhem("set RemovalPaper $RemovalPaper");;
fhem("set RemovalGreen $RemovalGreen");;
return;;
}
2016.02.21 10:31:35 3: get Abfall text next 4 : 22.02.16 06:00 Abfuhrtermin Restmüll am 22.02.2016
23.02.16 06:00 Abfuhrtermin Papiertonne am 23.02.2016
29.02.16 06:00 Abfuhrtermin Biomüllabfuhr am 29.02.2016
07.03.16 06:00 Abfuhrtermin Restmüll am 07.03.2016


Für morgen steht Restmüll an, aber der Dummy RemovalBlack dafür wird nicht auf on gesetzt.

und dementsprechend arbeitet auch das entgültige Notify nicht, da es von dem gestzten Dummy ja abhängig ist:

Removal4Sonos {
my $message = "Removal";
if (ReadingsVal("RemovalBlack", "state", "") eq "on") {$message .= "Black"};
if (ReadingsVal("RemovalBrown", "state", "") eq "on") {$message .= "Brown"};
if (ReadingsVal("RemovalBlue", "state", "") eq "on") {$message .= "Blue"};
if (ReadingsVal("RemovalYellow", "state", "") eq "on") {$message .= "Yellow"};
if (ReadingsVal("RemovalToxic", "state", "") eq "on") {$message .= "Toxic"};
if (ReadingsVal("RemovalPaper", "state", "") eq "on") {$message .= "Paper"};
if (ReadingsVal("RemovalGreen", "state", "") eq "on") {$message .= "Green"};
if ($message ne "Removal")
   {fhem("define SonosRemoval at 19:30:00 set Sonos_Buero,Sonos_Wohnzimmer PlayURITemp \\\\192.200.100.95\\SonosSpeak\\$message.mp3 50")}
}


Vor dem Update des Calendarmoduls lief alles problemlos. Irgendwo habe ich möglicherweise noch eine Kleinigkeit für die Anpassung übersehen, aber ich finde das Problem einfach nicht.

Hat sich möglicherweise etwas an der Aufteilung der Celendarausgabe geändert ?

22.02.16 06:00 Abfuhrtermin Restmüll am 22.02.2016

Feld0 = 22.02.16
Feld1 = 06.00
Feld2 = Abfuhrtermin
Feld3 = Restmüll


Vielleicht könnt ihr mir helfen ?

Danke




Hans Franz

Zitatmy $tomorrow = strftime "%%d.%%m.%%y", localtime(time + 86400);

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

raspklaus

Danke Hans,

das war es.

und noch eine kleine Frage:

Bei der weiteren Auswertung benutze ich im Notify folgende Aktion:

{fhem("define SonosRemoval at 19:30:00 set Sonos_Buero,Sonos_Wohnzimmer PlayURITemp \\\\192.200.100.95\\SonosSpeak\\$message.mp3 50;set wasteansage on")}

Die Ansage kommt, aber der Dummy wasteansage wird nicht auf on gesetzt