[gelost] PERL WARNINGs nach Neustart

Begonnen von MDietrich, 16 Februar 2024, 06:17:43

Vorheriges Thema - Nächstes Thema

MDietrich

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
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

JoWiemann

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
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Beta-User

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 1358scheint 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?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

MDietrich

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.
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

MDietrich

#6
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)

FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

MDietrich

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
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

MDietrich

#8
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

Die PERL Warnung PERL WARNING: devspec2array rain01) <-- HEREwurde 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

FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1