FHEM Forum
FHEM - Hausautomations-Systeme => SlowRF => Thema gestartet 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
-
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.
-
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
-
Ich habe die geänderte Zeile in meinen Code eingefügt: funktioniert
Log3 $io, 5, "getFhtBuffer: $count ".($msg ? $msg : "<empty>");