Hi! Seit ich mein FHEM wegen eine Hardware Crash neu (vom Backup) aufsetzen musste, sehe ich im Log file massenweise folgende Einträge:
2026.07.05 18:33:17 1: PERL WARNING: substr outside of string at (eval 24470) line 1.
2026.07.05 18:33:17 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 24470) line 1.
Aber es fehlt in welchen Modul diese Fehler drin sind. Wie kann ich das rausfinden?
Hallo,
bitte im global Device das Attribut stacktrace auf 1 setzen.
Grüße Jörg
Vielen Dank Jörg, habe ich gemacht. Dann warte ich bis zum nächsten Eintrag im Log.
Welche . ist in dem script falsch?
2026.07.05 19:44:02 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 26736) line 1.
2026.07.05 19:44:02 1: eval: ReadingsVal('ESPEasy_Sonoff_Vitrine_Sonoff_TempSensor','Temperature','')."(194)(176)C - ".ReadingsVal('ESPEasy_Sonoff_Vitrine_Sonoff_TempSensor','Humidity','')."% - ".substr(ReadingsTimestamp('ESPEasy_Sonoff_Vitrine_Sonoff_TempSensor','Humidity',''),11,8)
2026.07.05 19:44:02 1: stacktrace:
2026.07.05 19:44:02 1: main::__ANON__ called by (eval 26736) (1)
2026.07.05 19:44:02 1: (eval) called by fhem.pl (4921)
2026.07.05 19:44:02 1: main::evalStateFormat called by fhem.pl (5032)
2026.07.05 19:44:02 1: main::readingsEndUpdate called by fhem.pl (5223)
2026.07.05 19:44:02 1: main::readingsSingleUpdate called by /opt/fhem/FHEM/34_ESPEasy.pm (2726)
2026.07.05 19:44:02 1: main::ESPEasy_setState called by /opt/fhem/FHEM/34_ESPEasy.pm (2250)
2026.07.05 19:44:02 1: main::ESPEasy_statusRequest called by fhem.pl (3528)
2026.07.05 19:44:02 1: main::HandleTimeout called by fhem.pl (710)(Ich kenne mich mit Perl leider nicht gut genug aus.)
EDIT: ich sehe jetzt, dass das Gerät auf Absent steht. Das wird wohl der Fehler sein, weil es dadurch die Auswertung dieses StateFormat wahrscheinlich keinen Sinn macht.