Hallo,
seit Anfang der Woche sind mehrere PERL Warnungen in meinem LOG, hier ein Auszug:
PERL WARNING: Prototype mismatch: sub main::round ($$) vs none at /usr/lib/arm-linux-gnueabihf/perl-base/Exporter.pm line 66
PERL WARNING: Argument "2,0" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 1377
PERL WARNING: devspec2array ftui,DWD,......, a_9_areaColor a_9_event) <-- HERE $/ at fhem.pl line 1358
stacktrace:
main::__ANON__ called by fhem.pl (1371)
main::devspec2array called by ./FHEM/01_FHEMWEB.pm (687)
main::FW_initInform called by ./FHEM/01_FHEMWEB.pm (577)
main::FW_Read called by fhem.pl (3985)
main::CallFn called by fhem.pl (786)
Manchmal tauchen diese Meldungen im Minutenabstand auf, manchmal nur einmal am Tag.
Funktionale Probleme habe ich nicht wahrgenommen, verstehen bzw. beheben der Ursachen würde ich trotzdem gerne.
Hat jemand eine Idee / Hinweise, wo ich beu der Suche starten kann?
Danke im Voraus,
Matthias
Hallo Matthias,
in einem Deiner SVG Diagramme muss eine Formel hinterlegt sein, in der ein 2,0 drin steht. Ein Komma ist in Perl ein Zeichen. Für eine Komma Zahl muss ein Punkt genommen werden. Also anstatt 2,0 ein 2.0
Grüße Jörg
PERL WARNING: Prototype mismatch: sub main::round ($$) vs none at /usr/lib/arm-linux-gnueabihf/perl-base/Exporter.pm line 66
dürfte daher kommen, dass irgendein Modul (vermutlich deine myUtils?) ein anderes "round" verwendet als "üblich", evtl. importiert als Math::round. Auch, wenn es grade keine Auswirkungen hat, würde ich das dahingehend beseitigen, dass der Import (nach main) unterlassen wird und die Funktion dann halt (ok, das ist nicht PBP-konform...) mit dem package-Prefix aufgerufen wird, wo man sie braucht. (Ein Grund, warum meine Module (fast) alle gepackaged sind).
Zur 2. Meldung hast du ja eine Antwort.
PERL WARNING: devspec2array ftui,DWD,......, a_9_areaColor a_9_event) <-- HERE $/ at fhem.pl line 1358
scheint mir keine vollständige Fehlermeldung aus dem log zu sein, da müßte noch mehr stehen. Vermutlich fehlt "irgendwo" eine Klammer oder eine regex ist nicht korrekt. Habe aber keine Idee, wie man das näher eingrenzen kann. Scheint eine room-Liste zu sein? Vielleicht hast du da jüngst was umbenannt oder hinzugefügt?
Danke, habe statt use Math::Round qw/round/;
jetzt Math::Round::nearest()
in meiner 99_myUtils.pm und die erste Warnung taucht nicht mehr auf.
Die vollständige 2. Warnung ist 6623 Zeichen lang, deswegen habe ich gekürzt. Ich hänge sie einmal als Text-Datei an.
Neu ist nur eine Funktion in der myUtils und ein DOIF, beides in PERL und ohne regex.
was ich gefunden habe:
a_9_event: Unmatched ) in regex; marked by <-- HERE in m/^(
das scheint aus DWD_Opendata zu sein
time00 temp00 chOfRain00 rain00) wind00 windDir00 time01 weather01 temp01 chOfRain01 rain01) <-- HERE<-- HERE
der Reading-Name kommt aus einem DOIF, aber ich nutze keine Klammern in Reading-Namen.
Zitat von: MDietrich am 16 Februar 2024, 09:15:46Danke, habe statt use Math::Round qw/round/;
jetzt Math::Round::nearest()
in meiner 99_myUtils.pm und die erste Warnung taucht nicht mehr auf.
Warum brauchst Du dafür überhaupt ein externes Modul in Deiner myUtils.pm?
FHEM bringt selbst eine Funktion round() mit, die Du einfach verwenden könntest.
Auch in FHEM::Core::Utils::Math steht eine Funktion round() zur verfügung, die vermutlich aus dem Math Modul abgeleitet wurde. Auch die kannst Du einfach verwenden, ohne ein externes Modul einbinden zu müssen.
Zitat von: MDietrich am 16 Februar 2024, 09:15:46der Reading-Name kommt aus einem DOIF, aber ich nutze keine Klammern in Reading-Namen.
Dann kennst du ja jetzt den Verursacher und musst "nur" diesem DOIF beibringen, wie es das unterläßt. Da ich nicht mit DOIF arbeite, kann ich da nicht weiter helfen. Solltest du ggf. gesondert (mit Verweis hierher) im passenden Forumsbereich fragen.
Sorry, aber ich fange gerade an an Gespenster zu glauben.
In dem DOIF habe ich alle Readings gelöscht und die Konfiguration gespeichert. Danach habe ich alle Zeilen im Code auskommentiert, die etwas mit 'rain' zu tun haben.
Dann habe ich fhem neu gestartet, erwartungsgemäß gibt es beim DOI kein Reading mehr mit dem Namen rainXX. ABER, die Warnmeldung bleibt unverändert.
rain00) wind00 windDir00 time01 weather01 temp01 chOfRain01 rain01) <-- HERE
Und wenn man glaubt es geht nicht schlimmer, dann erzählt einem die Konsole während man fhem im Browser offnet:
5Unchecked runtime.lastError: The message port closed before a response was received.
fhem:1 Unchecked runtime.lastError: The message port closed before a response was received.
fhem:1 Unchecked runtime.lastError: The message port closed before a response was received.
fhem:1 Unchecked runtime.lastError: The message port closed before a response was received.
fhem:1 Unchecked runtime.lastError: The message port closed before a response was received.
fhem:1 Unchecked runtime.lastError: The message port closed before a response was received.
1 Uncaught SyntaxError: Unexpected token '<'
alles in fhem:1
ncaught TypeError: Cannot read properties of undefined (reading 'style')
at Jb (jquery.min.js:3:24833)
at Function.css (jquery.min.js:3:30287)
at Eb (jquery.min.js:3:23639)
at Fb (jquery.min.js:3:23723)
at Vb (jquery.min.js:3:28273)
at m.fn.init.show (jquery.min.js:3:31805)
at m.fn.<computed> (jquery.min.js:4:6781)
at m.fn.init.show (jquery-ui.min.js:13:744)
at e.<computed>.<computed>._create (jquery-ui.min.js:10:30253)
at e.<computed>.<computed>._create (jquery-ui.min.js:6:7987)
in jquery.min.js
Um noch eins drauf zu setzen öffne ich meine FTUI3 index.hmtl im Browser und "erfreue" mich an dem Meldungen:
indexF2024.html:1 Unchecked runtime.lastError: The message port closed before a response was received.
indexF2024.html:1 Unchecked runtime.lastError: The message port closed before a response was received.
indexF2024.html:1 Unchecked runtime.lastError: The message port closed before a response was received.
indexF2024.html:1 Unchecked runtime.lastError: The message port closed before a response was received.
indexF2024.html:1 Unchecked runtime.lastError: The message port closed before a response was received.
und in dieser Zeile steht: <!DOCTYPE html>
und da es noch schöner geht eine letzte Meldung:
icon.component.js:94 GET http://xxxxxxxxxxx:8083/fhem/images/myicons/lowBat.svg 404 (Not Found)
NotePad++ hat in KEINER meiner html-Dateien den Suchstring 'lowBat.svg" gefunden. >> da war ein nicht abgefangener Zustand in einem Mapping, so wurde das Reading zum Namen.
ich glaube ich nehme mir einen Strick und erschieß mich.
Hat jemand eine Idee, was passiert sein könnte (bevor ich ein restore versuche)
Jörg, danke für den Hinweis dort zu suchen.
Zitat von: JoWiemann am 16 Februar 2024, 07:16:20Hallo Matthias,
in einem Deiner SVG Diagramme muss eine Formel hinterlegt sein, in der ein 2,0 drin steht. Ein Komma ist in Perl ein Zeichen. Für eine Komma Zahl muss ein Punkt genommen werden. Also anstatt 2,0 ein 2.0
Grüße Jörg
es war eine "2,0" in der Skalierung.
Gruß,
Matthias
Hallo,
nach langem Suchen habe ich ein paar Lösungen für die o.g. Probleme gefunden:
The message port closed before a response was received.
fhem:1 Unchecked runtime.lastError: The message port closed before a response was received.
das ist eine Meldung, welche CHROME spezifisch ist.
Siehe hierzu auch: Unchecked runtime.lastError (https://support.google.com/chrome/thread/2047906/unchecked-runtime-lasterror-the-message-port-closed-before-a-response-was-received?hl=en)
Die PERL Warnung PERL WARNING: devspec2array rain01) <-- HERE
wurde nicht durch einen Reading-Namen, sondern durch eine ")" bei einem get von FTUI3 ausgelöst.
Dieser hat dann wohl im weiteren auch weitere "gets" blockiert.
Nach zwei langen Nächten Problem gelöst, weil Klammer gefunden.
Gruß,
Matthias