Ansage bei Müllabfuhr fehlerhaft nach Calendarupdate

Begonnen von raspklaus, 14 Februar 2016, 10:30:47

Vorheriges Thema - Nächstes Thema

raspklaus

Sorry,

ich hatte das aus den vorherigen Threats kopiert. Ich habe nun nochmal alles in der Testumgebung eingespielt und hier die Ausgaben:

Das Log:

2016.02.15 09:33:34 5: Triggering RemovalCheck
2016.02.15 09:33:34 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 = "";;

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

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

if ($values[0] eq $tomorrow)
{
  if ($values[3] eq "Restmüll") {$RemovalBlack = "on"}
  elsif ($values[3] eq "Biomüllabfuhr") {$RemovalBrown = "on"}
  elsif ($values[3] eq "Papiertonne") {$RemovalBlue = "on"}
  elsif ($values[3] eq "Gelber") {$RemovalYellow = "on"}
  elsif ($values[3] eq "Schadstoffsammlung") {$RemovalToxic = "on"}
  elsif ($values[3] eq "Papiersammlung") {$RemovalPaper = "on"}
  elsif ($values[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.15 09:33:34 1: PERL WARNING: "my" variable $rcal masks earlier declaration in same scope at (eval 11278) line 11.
2016.02.15 09:33:34 3: eval: {
my $RemovalBlack = "off";
my $RemovalBrown = "off";
my $RemovalBlue = "off";
my $RemovalYellow = "off";
my $RemovalToxic = "off";
my $RemovalPaper = "off";
my $RemovalGreen = "off";
my $rcal = "";

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

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

if ($values[0] eq $tomorrow)
{
  if ($values[3] eq "Restmüll") {$RemovalBlack = "on"}
  elsif ($values[3] eq "Biomüllabfuhr") {$RemovalBrown = "on"}
  elsif ($values[3] eq "Papiertonne") {$RemovalBlue = "on"}
  elsif ($values[3] eq "Gelber") {$RemovalYellow = "on"}
  elsif ($values[3] eq "Schadstoffsammlung") {$RemovalToxic = "on"}
  elsif ($values[3] eq "Papiersammlung") {$RemovalPaper = "on"}
  elsif ($values[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.15 09:33:34 3: RemovalCheck return value: No such class RemovalCheckvalues at (eval 11278) line 17, near "{
my RemovalCheckvalues"
syntax error at (eval 11278) line 17, near "my RemovalCheckvalues ="
Global symbol "@values" requires explicit package name at (eval 11278) line 19.
Global symbol "@values" requires explicit package name at (eval 11278) line 21.
Global symbol "@values" requires explicit package name at (eval 11278) line 22.
Global symbol "@values" requires explicit package name at (eval 11278) line 23.
Global symbol "@values" requires explicit package name at (eval 11278) line 24.
Global symbol "@values" requires explicit package name at (eval 11278) line 25.
Global symbol "@values" requires explicit package name at (eval 11278) line 26.
Global symbol "@values" requires explicit package name at (eval 11278) line 27.



Kopie des notify aus dem Webinterface:

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

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

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

if ($values[0] eq $tomorrow)
{
  if ($values[3] eq "Restmüll") {$RemovalBlack = "on"}
  elsif ($values[3] eq "Biomüllabfuhr") {$RemovalBrown = "on"}
  elsif ($values[3] eq "Papiertonne") {$RemovalBlue = "on"}
  elsif ($values[3] eq "Gelber") {$RemovalYellow = "on"}
  elsif ($values[3] eq "Schadstoffsammlung") {$RemovalToxic = "on"}
  elsif ($values[3] eq "Papiersammlung") {$RemovalPaper = "on"}
  elsif ($values[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;
}


und hier die Ausgabe für get Abfall text next 4

15.02.16 06:00 Abfuhrtermin Biomüllabfuhr am 15.02.2016
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



Puschel74

#16
Und nochmal:
LOG
my RemovalCheckvalues = split(" ", $event);;
notify:
Es fehlt diese Zeile

Ergo: Die Logausgabe passt immer noch nicht zum gezeigten notify.

Edith: Im notify sieht die Zeile so
my @values = split(" ", $event);
aus und hat mit der Logausgabe aber immer noch nichts zu tun.
Es bleibt dabei - das notify passt nicht zum Log.

Edith1: Abgesehen davon wird $rcal zweimal mit my deklariert - das sagt auch ein Teil der Meldung.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

raspklaus

#17
@Puschel,

ich sitze gerade direkt vor der Maschine. Ich hatte vorher das gesammte Log gelöscht, damit nur die richtige Ausgabe drin ist und wie soll die Logausgabe nicht zum Notify passen ?

Am Anfang des Logs steht doch der auslösende Trigger

Dazu der passende Screenshot

Puschel74

#18
Ich hab dir die Unterschiede gezeigt.
Wenn die Logausgabe zum notify unterschiedliche Codes zeigt passen die beiden einfach nicht zusammen.
Der auslösende Trigger ist kein Beweis das es anders ist.

Edith: Aber extra für dich nochmal das "Fehler-Suchbild":
Logausgabe:
foreach my $event (@events)
{
my RemovalCheckvalues = split(" ", $event);;

if ($values[0] eq $tomorrow)


Notify:
foreach my $event (@@events)
{
my @values = split(" ", $event);

if ($values[0] eq $tomorrow)

Wer findet als erster den Unterschied  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

raspklaus

Ich habe mal das rcal entfernt und values in werte geändert. Hier das Ergebnis:

Webinterface:

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,1");
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;
}


Log:

2016.02.15 10:17:54 5: Triggering RemovalCheck
2016.02.15 10:17:54 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,1");;
my RemovalCheckevents = split ("\n", $rcal);;
my $tomorrow = strftime "%d.%m.%y", localtime(time + 86400);;

foreach my $event (RemovalCheckevents)
{
my RemovalCheckwerte = 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.15 10:17:54 3: RemovalCheck return value: No such class RemovalCheckevents at (eval 12614) line 11, near ";
my RemovalCheckevents"
syntax error at (eval 12614) line 11, near "my RemovalCheckevents ="
No such class RemovalCheckwerte at (eval 12614) line 16, near "{
my RemovalCheckwerte"
syntax error at (eval 12614) line 16, near "my RemovalCheckwerte ="
Global symbol "@werte" requires explicit package name at (eval 12614) line 18.
Global symbol "@werte" requires explicit package name at (eval 12614) line 20.
Global symbol "@werte" requires explicit package name at (eval 12614) line 21.
Global symbol "@werte" requires explicit package name at (eval 12614) line 22.
Global symbol "@werte" requires explicit package name at (eval 12614) line 23.
Global symbol "@werte" requires explicit package name at (eval 12614) line 24.
Global symbol "@werte" requires explicit package name at (eval 12614) line 25.
Global symbol "@werte" requires explicit package name at (eval 12614) line 26.
Bareword "RemovalCheckevents" not allowed while "strict subs" in use at (eval 12614) line 14.


Puschel74

Tja, so wie es aussieht wird das @ durch RemovalCheck ersetzt.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

raspklaus


dev0

Benutzt Du noch Featurelevel 5.6, das würde das Verhalten auf den ersten Blick erklären.
Lager den Code in die 99_myUtils aus.

Puschel74

Zitat von: dev0 am 15 Februar 2016, 10:42:02
Benutzt Du noch Featurelevel 5.6, das würde das Verhalten auf den ersten Blick erklären.
Das wäre jetzt auch meine Vermutung gewesen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

raspklaus

Danke Euch beiden, genau das war es. Ich hatte das Attribut Featurelevel auf 5.6 wegen einem anderen Problem gesetzt und es einfach vergessen zu löschen. Mein Fehler   :(