Merkwürdige Meldungen im Log seit Update!!!

Begonnen von Steffen, 07 Oktober 2014, 06:39:56

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Sorry, mein SVN commit ist gestern schiefgegangen, und das habe ich uebersehen.
Ich habe das commit jetzt wiederholt, und danach fhemupdate manuell ausgefuehrt, d.h. update sollte ab sofort das neue fhem.pl abholen.

Steffen

Guten Morgen,

also konnte schon viele Perl-Warnings entschärfen doch eins habe ich noch und komme nicht weiter, sehe bestimmt da den Wald vor lauter Bäumen nicht:

2014.10.09 01:55:53 1: PERL WARNING: Use of uninitialized value $termin in string eq at (eval 793) line 9.
2014.10.09 01:55:53 3: eval: {
  my $termin = fhem("get EntsorgungsTermin summary modeStarted");
  if(($termin) eq "SBAZV Papiertonnen"){
    fhem("set  SBAZV_Status 1")
  }
  elsif(($termin) eq "SBAZV Restmülltonnen"){
    fhem("set  SBAZV_Status 2");
  }
  elsif(($termin) eq "SBAZV Gelbe Säcke"){
    fhem("set  SBAZV_Status 3");
  }
else {
    fhem("set SBAZV_Status 0");
  }
}


Vielleicht könnte ihr mir ja bitte helfen wo da der Fehler sein könnte?

Mfg Steffen

Dr. Boris Neubert

Hallo Rudi,

die Einführung der Ausgabe des Aufrufstapels bei Warnungen und Fehlern finde ich gut!

Ich sehe mich jedoch nicht in der Lage, in nächster Zeit in allen meinen Modulen alle tatsächlich oder potentiell auftretenden Fälle abzufangen, die zu undefinierten Variablen führen.

Ich schlage daher vor, ein Attribut stacktrace für die Ausgabe des Aufrufstapels einzuführen:

attr global stacktrace 1

mit Default: aus.

Das verhindert, dass bei den Anwendern die Logs aus allen Nähten platzen.

Viele Grüße
Boris

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

@Boris: Ich verstehe das Problem und die Begruendung, und habe das Attribut eingefuehrt.
Kannst Du mich Benachrichtigen, wenn ich das Attribut wieder entfernen kann?

Dr. Boris Neubert

Zitat von: rudolfkoenig am 09 Oktober 2014, 14:30:34
@Boris: Ich verstehe das Problem und die Begruendung, und habe das Attribut eingefuehrt.

Danke!

Zitat
Kannst Du mich Benachrichtigen, wenn ich das Attribut wieder entfernen kann?

Warum willst Du es entfernen?

Meiner Auffassung nach hilft der Aufrufstapel dem Modulentwickler sowie dem versierten mit Perl werkelnden Anwender beim Debugging. Alle anderen verwirrt es eher und bläht die Logs auf.

Ich schlage daher vor, den Aufrufstapel optional zu halten, und in dem Sticky Posting, wie man richtig Probleme meldet, einen entsprechenden Hinweis anzubringen ("hast Du einen Perl-Fehler gefunden, dann schalte stracktrace ein und poste das Log mit Aufrufstapel", oder so - das Texten und Editieren des Postings kann ich dann gerne übernehmen).

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

bert

Ich habe ebenfalls einen Logeintrag nach der Wetterabfrage. Log hält an.
read timeout at /usr/share/perl5/LWP/Protocol/http.pm line 452.

2014.10.09 15:28:42 1: PERL WARNING: Use of uninitialized value $a[0] in hash element at ./FHEM/92_FileLog.pm line 352.
2014.10.09 15:28:42 3: stacktrace:
2014.10.09 15:28:42 3:     main::__ANON__                      called by ./FHEM/92_FileLog.pm (352)
2014.10.09 15:28:42 3:     main::FileLog_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (992)
2014.10.09 15:28:42 3:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (737)
2014.10.09 15:28:42 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.10.09 15:28:42 3:     main::FW_Read                       called by fhem.pl (2902)
2014.10.09 15:28:42 3:     main::CallFn                        called by fhem.pl (594)
2014.10.09 15:28:42 1: PERL WARNING: Use of uninitialized value $a[0] in hash element at ./FHEM/92_FileLog.pm line 353.
2014.10.09 15:28:42 3: stacktrace:
2014.10.09 15:28:42 3:     main::__ANON__                      called by ./FHEM/92_FileLog.pm (353)
2014.10.09 15:28:42 3:     main::FileLog_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (992)
2014.10.09 15:28:42 3:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (737)
2014.10.09 15:28:42 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.10.09 15:28:42 3:     main::FW_Read                       called by fhem.pl (2902)
2014.10.09 15:28:42 3:     main::CallFn                        called by fhem.pl (594


Soeben wurde ein Update durchgeführt. Felhler kommt immer noch
2014.10.09 17:13:34 3: owo owo: response:
read timeout at /usr/share/perl5/LWP/Protocol/http.pm line 452.

Bracew

#36
Hallo an alle,

ich habe ähnliches im Log stehen:
2014.10.09 17:40:02 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/33_readingsGroup.pm line 586.
2014.10.09 17:40:02 3: stacktrace:
2014.10.09 17:40:02 3:     main::__ANON__                      called by ./FHEM/33_readingsGroup.pm (586)
2014.10.09 17:40:02 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (586)
2014.10.09 17:40:02 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (736)
2014.10.09 17:40:02 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (2344)
2014.10.09 17:40:02 3:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1323)
2014.10.09 17:40:02 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (736)
2014.10.09 17:40:02 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.10.09 17:40:02 3:     main::FW_Read                       called by fhem.pl (2906)
2014.10.09 17:40:02 3:     main::CallFn                        called by fhem.pl (595)
2014.10.09 17:40:02 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/33_readingsGroup.pm line 591.
2014.10.09 17:40:02 3: stacktrace:
2014.10.09 17:40:02 3:     main::__ANON__                      called by ./FHEM/33_readingsGroup.pm (591)
2014.10.09 17:40:02 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (736)
2014.10.09 17:40:02 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (2344)
2014.10.09 17:40:02 3:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1323)
2014.10.09 17:40:02 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (736)
2014.10.09 17:40:02 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.10.09 17:40:02 3:     main::FW_Read                       called by fhem.pl (2906)
2014.10.09 17:40:02 3:     main::CallFn                        called by fhem.pl (595)


Das erste mal am 06.10.2014 nach update und restart und heute vor ca. 5 Minuten, sowie dazwischen ca. 10 mal.

Sieht nach einem Problem in 33_readingsGroup.pm aus, welches wohl geupdatet wurde?

Gruß Bracew

FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

justme1968

@Bracew: das schaut nach einem fehler in deinem define für eine readingsGroup aus.

ein * am anfang einer regex ist nicht gültig und sinnvoll. da bei dir ziemlich sicher ein . davor.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

@Bracew, @Bert: ich moechte euch gerne auf meinem vorherigen Beitrag Hinweisen: bitte die Probleme in den passenden Bereich posten.

@Bert: es sind korrupte eventTypes Daten. Ich habe es nicht geschafft, das zu reproduzieren, habe aber zusaetzliche Pruefungen in FileLog eingebaut.

@Boris: ok (bevor ich lange rumdiskutiere). Habs auch dokumentiert.

Bracew

#39
@justme1968:
die define sieht wie folgt aus:
define TwilightWerte readingsGroup myTwilight:*
Ist das einzige "readingsGroup" das ich habe. Ein "regex" habe ich nicht in fhem.cfg
Wo ist da der Fehler?

@rudolfkoenig
In welchem Bereich sollen wir das Posten, wenn nicht im "Merkwürdige Meldungen im Log seit Update!!!", denn so ist es!
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Dr. Boris Neubert

Zitat von: Bracew am 09 Oktober 2014, 20:13:15
In welchem Bereich sollen wir das Posten, wenn nicht im "Merkwürdige Meldungen im Log seit Update!!!", denn so ist es!

Bitte in dem Board posten, das für das Modul zuständig ist, das die den Stacktrace auslösende Warnung generiert.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

justme1968

@Bracew: ich sage doch dein define ist falsch. vor den * gehört ein .:define TwilightWerte readingsGroup myTwilight:.*

* in deiner regex bedeutet das das direkt davor stehende zeichen beliebig oft vorkommen kann. bei dir steht nichts davor. in verbindung mit der auswertung bedeutet das das der wort anfang beliebig oft vorkommen soll. das macht keinen sinn.

. bedeuete ein beliebiges zeichen

.* bedeuete also jedes beliebige zeichen beliebig oft.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Steffen

Zitat von: Steffen am 09 Oktober 2014, 05:37:18
Guten Morgen,

also konnte schon viele Perl-Warnings entschärfen doch eins habe ich noch und komme nicht weiter, sehe bestimmt da den Wald vor lauter Bäumen nicht:

2014.10.09 01:55:53 1: PERL WARNING: Use of uninitialized value $termin in string eq at (eval 793) line 9.
2014.10.09 01:55:53 3: eval: {
  my $termin = fhem("get EntsorgungsTermin summary modeStarted");
  if(($termin) eq "SBAZV Papiertonnen"){
    fhem("set  SBAZV_Status 1")
  }
  elsif(($termin) eq "SBAZV Restmülltonnen"){
    fhem("set  SBAZV_Status 2");
  }
  elsif(($termin) eq "SBAZV Gelbe Säcke"){
    fhem("set  SBAZV_Status 3");
  }
else {
    fhem("set SBAZV_Status 0");
  }
}


Vielleicht könnte ihr mir ja bitte helfen wo da der Fehler sein könnte?

Mfg Steffen

Soll ich das doch besser einen anderen Bereich geben oder hat einer von euch doch eine Idee was der Fehler im Code sein könnte, ist das vorletzte was mir noch im Log noch angezeigt wird.

Mfg Steffen

justme1968

vermutlich liefert das get EntsorgungsTermin summary modeStarted nichts zurück. du solltest dann als erstes auf if( !$termin ) prüfen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Bracew

#44
@justme1968: Danke für den Wink mit dem Zaunpfahl. Manchmal sieht man die . vor lauter * nicht. Scheint nun ohne Fehlermeldung im log zu funktionieren. Nochmals vielen Dank!!!

@Dr. Boris Neubert: Das verstehe ich als Anfänger leider nicht. Ich würde gerne das richtige Board benutzen, wenn ich denn wüsste welches "Modul zuständig" in meinem Fall  ist und was ein "Stacktrace" ist. Es können schließlich nicht alle "Cracks" sein. Jeder fängt mal klein an. Bisher kenne ich eine fhem.cfg und eine riesengroße Blackbox dahinter, welche ich eigentlich in aller Tiefe auch nicht kennen lernen will.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe