FHEM Forum

FHEM - Hausautomations-Systeme => SlowRF => Thema gestartet von: Hinata am 29 Januar 2022, 08:42:48

Titel: Use of uninitialized value $msg in concatenation (.) 11_FHT.pm line 708
Beitrag von: Hinata am 29 Januar 2022, 08:42:48
Hallo,

Ich habe eine FHZ1300 und bei der Kommunikation mit einem FHT80b bekomme ich den Fehler unten.  Die Kommunikation funktioniert prinzipiell, der Fehler kommt nur sporadisch.

Auf der FHZ1300 ist fhtsoftbuffer 1 gesetzt. Bei gesetztem fhtsoftbuffer 1 wird auch ab und zu „FHZ get fhtbuf“ öfter aufgerufen was dann anscheinend zu „Unkown code“ führt.

2022.01.29 03:33:34 3: Watchdog wd_ga_Heizung triggered
2022.01.29 03:33:34 2: FHZ get   fhtbuf
2022.01.29 03:33:34 1: PERL WARNING: Use of uninitialized value $msg in concatenation (.) or string at ./FHEM/11_FHT.pm line 708.
2022.01.29 03:33:34 2: FHZ get   fhtbuf
2022.01.29 03:33:34 2: FHZ get   fhtbuf
2022.01.29 03:33:34 2: FHT set ga_Heizung report2 255
2022.01.29 03:37:35 2: FHZ get   fhtbuf
2022.01.29 03:37:35 2: FHT set ga_Heizung report2 255
2022.01.29 05:43:44 3: Watchdog wd_sz_Heizung triggered
2022.01.29 05:43:44 2: FHZ get   fhtbuf
2022.01.29 05:43:45 2: FHZ get   fhtbuf
2022.01.29 05:43:46 2: FHZ get   fhtbuf
2022.01.29 05:43:47 2: FHZ get   fhtbuf
2022.01.29 05:43:48 2: FHZ get   fhtbuf
2022.01.29 05:43:48 2: FHZ get   fhtbuf
2022.01.29 05:43:49 3: FHZ_0: Unknown code 8107c9d3010285014a, help me!
2022.01.29 05:43:50 3: FHZ_0: Unknown code 8107c9d3010285014a, help me!
2022.01.29 05:43:50 3: FHZ_0: Unknown code 8107c9d3010285014a, help me!
2022.01.29 05:43:50 3: FHZ_0: Unknown code 8107c9d3010285014a, help me!
2022.01.29 05:43:50 3: FHZ_0: Unknown code 8107c9d3010285014a, help me!
2022.01.29 05:44:19 2: FHZ get   fhtbuf
2022.01.29 05:44:19 2: FHT set sz_Heizung report2 255

Wenn man sich den Code anschaut prüft das anschließende return $msg, jedoch nicht das Log?

for(;;) {
    return 0 if(!defined($io->{FD}));    # Avoid crash if the CUL/FHZ is absent
    my $msg = CallFn($io->{NAME}, "GetFn", $io, (" ", "fhtbuf"));
    Log3 $io, 5, "getFhtBuffer: $count $msg";
    return hex($1) if($msg && $msg =~ m/=> ([0-9A-F]+)$/i);
    return 0 if($count++ >= 5);
  }

Danke für Hinweise
Titel: Antw:Use of uninitialized value $msg in concatenation (.) 11_FHT.pm line 708
Beitrag von: rudolfkoenig am 29 Januar 2022, 11:53:28
Danke fuer den Hinweis, ich habe die WARNING Nachricht gefixt.

Zum Rest der Meldungen:
Dieser Code versucht bis zu 6-mal eine FHZ-interne Variable (laenge des Puffers) abzufragen und wartet (FHEM blockierend) jeweils eine Sekunde.
In dem abgebildeten Fall hat das FHZ alle Anfragen mit ca 5 Sekunden Verspaetung beantwortet.
Da eine spontane Meldung des Antwortes nicht vorkommt, gibt es auch keinen Parser dafuer, daher die "Unknown code" Meldungen.

Diese Stelle im Code ist 12+ Jahre alt, die richtige Loesung waere ein Umbau auf nicht blockierendes Warten.
Angesichts des Aufwandes fuer mich (geschaetzt 0.5-1 Tag), der Auswirkung fuer den Benutzer, und der abnehmenden Anzahl der Anwender plane das aber nicht zu tun.
Titel: Antw:Use of uninitialized value $msg in concatenation (.) 11_FHT.pm line 708
Beitrag von: Hinata am 29 Januar 2022, 13:22:53
Vielen Dank für die schnelle Antwort!

Eine Idee warum die FHZ1300 sporadisch mit 5s Verspätungen antwortetet? Das kommt nur 1-2 mal pro Tag vor und regelmäßig 1x nachts wenn ich an mehreren FHZ (6) den Modus (auto/manuell) setze.

Da alles funktioniert denke ich auch, das ein größerer Umbau wenig Sinn macht
Titel: Antw:Use of uninitialized value $msg in concatenation (.) 11_FHT.pm line 708
Beitrag von: Hinata am 30 Januar 2022, 08:50:20
Ich habe die geänderte Zeile in meinen Code eingefügt: funktioniert

Log3 $io, 5, "getFhtBuffer: $count ".($msg ? $msg : "<empty>");