(Gelöst) PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at ..line

Begonnen von is2late, 18 Januar 2023, 17:46:01

Vorheriges Thema - Nächstes Thema

is2late

Hi,

neuerdings läuft mein Log mit obiger Meldung voll, wobei die Line-Nummern unterschiedlich sind.
Im Forum gibt es ähnliche Fragestellungen, die sich auf ein Structure beziehen. Ich habe nur zwei Structures, von denen eines STATE und state "undefined" aufweist, weshalb ich dieses verdächtige ;-)
Kann natürlich aber auch daneben liegen.
Dieses Structure sieht so aus:

defmod Alarmleuchten structure room HUEDevice1 HUEDevice3 HUEDevice5 HUEDevice7 (insgesamt 33 Devices, die alle tatsächlich existieren)
attr Alarmleuchten room Geräte,HUEDevice

setstate Alarmleuchten undefined
setstate Alarmleuchten 2023-01-18 17:23:04 LastDevice HUEDevice54
setstate Alarmleuchten 2023-01-18 17:23:04 LastDevice_Abs HUEDevice54
setstate Alarmleuchten 2023-01-18 17:23:04 state undefined


Hat jemand eine Idee, wie ich die Meldung wegbekomme - oder noch besser: den Fehler finden und beheben kann?

LG

PS: Hmmm...In der Batterieüberwachung taucht ein OK auf. Das ist das zweite Structure. Im state und STATE steht OK. Das RAW:

defmod structBatteriestatus structure Batteriestatus Bewegungssensor.Haustuer Bewegungssensor.Nacht.Flur Bewegungssensor.SZ.Ingo Bewegungssensor.Spuele Bewegungssensor.Vorratsraum Bewegungssensor.oberer.Flur Bewegungssensor.Basis.WZ TempSensor.Flur TempSensor.Haustuer TempSensor.Kueche TempSensor.SZ.Ingo TempSensor.oberer.Flur
attr structBatteriestatus userattr myBatteryStatus
attr structBatteriestatus clientstate_behavior relative
attr structBatteriestatus clientstate_priority OK nOK
attr structBatteriestatus event-on-change-reading .*
attr structBatteriestatus room Geräte

setstate structBatteriestatus OK


Kann es das sein?
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

OdfFhem

Wenn die Meldung alleine und bezuglos im Log steht, dann hilft u.U. "stacktrace unter global zu aktivieren" ...

is2late

Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

Kurios.... Die Fehlermeldung will sich wohl nicht in die Karten gucken lassen  :o
Jedenfalls erscheint die Meldung derzeit nicht mehr. Mal morgen sehen...
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

betateilchen

Wenn die Meldung das "ok" tatsächlich in Kleinbuchstaben ausgibt, dann wird das eher nicht aus einer Deiner structures kommen, denn dort sehe ich nirgends ein kleingeschriebenes "ok". Außerdem hat die structure keinen Grund, numerische Werte zu vergleichen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

is2late

Das stimmt wohl. Die Fehlermeldung taucht jetzt neuerdings im räumlichen Zusammenhang mit unserem Zisternensensor auf (wobei die Anzeige am Gerät einwandfrei funktioniert). Typisches Beispiel:

SI_Liquid_Check: Zisterne no Sensor found or Read-Error
2023.01.19 06:48:44 3: error while requesting http://device_ip: ???:80/infos.json - http://device_ip: ???:80/infos.json: malformed or unsupported URL
2023.01.19 06:53:44 3: SI_Liquid_Check: Zisterne no Sensor found or Read-Error
2023.01.19 06:55:24 3: error while requesting http://device_ip: ???:80/infos.json - http://device_ip: ???:80/infos.json: malformed or unsupported URL
2023.01.19 06:56:17 1: PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 382509) line 1.
2023.01.19 07:00:24 3: SI_Liquid_Check: Zisterne no Sensor found or Read-Error
2023.01.19 07:02:04 3: error while requesting http://device_ip: ???:80/infos.json - http://device_ip: ???:80/infos.json: malformed or unsupported URL
2023.01.19 07:05:01 1: PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 382895) line 1.


Die Internals der Zisterne zeigten einen Error, wobei anscheinend der Sensor nicht gefunden wurde. Hab danach den Sensor über das Menue suchen lassen
2023.01.19 10:30:36 3: SI_Liquid_Check: Zisterne Set <suche_sensor> called
2023.01.19 10:30:37 3: SI_Liquid_Check: Zisterne get_sensor_addr liquidcheck, 192.168.178.102

und die Internals waren wieder okay.
Scheint der Fehler zu sein.... ich werde mal beobachten.
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

Hm, jetzt gibt es den ersten stacktrace, mit dem ich allerdings nicht viel anfangen kann:

2023.01.19 15:35:34 1: PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 513492) line 1.
2023.01.19 15:35:34 1: stacktrace:
2023.01.19 15:35:34 1:     main::__ANON__                      called by (eval 513492) (1)
2023.01.19 15:35:34 1:     (eval)                              called by ./FHEM/33_readingsGroup.pm (357)
2023.01.19 15:35:34 1:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (1445)
2023.01.19 15:35:34 1:     main::readingsGroup_Notify          called by fhem.pl (3976)
2023.01.19 15:35:34 1:     main::CallFn                        called by fhem.pl (3888)
2023.01.19 15:35:34 1:     main::DoTrigger                     called by fhem.pl (4995)
2023.01.19 15:35:34 1:     main::readingsEndUpdate             called by ./FHEM/88_HMCCU.pm (9105)
2023.01.19 15:35:34 1:     main::HMCCU_EndBulkUpdate           called by ./FHEM/88_HMCCU.pm (4843)
2023.01.19 15:35:34 1:     main::HMCCU_UpdateParamsetReadings  called by ./FHEM/88_HMCCU.pm (4959)
2023.01.19 15:35:34 1:     main::HMCCU_UpdateMultipleDevices   called by ./FHEM/88_HMCCURPCPROC.pm (878)
2023.01.19 15:35:34 1:     main::HMCCURPCPROC_Read             called by fhem.pl (3976)
2023.01.19 15:35:34 1:     main::CallFn                        called by fhem.pl (784)


Das Wiki kann mir bei der Interpretation nicht weiterhelfen. Gehe ich recht in der Annahme, dass der Fehler gleich durch mehrere Ursachen herbeigeführt wird? Oder handelt es sich um verschiedene Fehler mit ganz unterschiedlichen Ursachen?

HMCCU sind meine Heizungsthermostate. Mit dem Rest kann ich nichts anfangen. _ANON_? CallFn? lookup2? DoTrigger (neuer Dortmunder Stürmer??) ua......Wie kann man wohl die Bedeutung entschlüsseln?

LG

Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

OdfFhem

Ganz grob könnte man sagen, dass ein HMCCU-Reading aktualisiert und eine readingsGroup darüber informiert wurde. Beim Neuaufbau der readingsGroup sorgt der Wert "ok" in einem numerischen Vergleich für den Fehler.

U.U. reicht die "dünne" Info schon, um ein verdächtiges HMCCU- oder readingsGroup-Device ausfindig zu machen ...

is2late

Das einzige Feld mit einem "ok" ist das für die Batterie:
battery ok 2023-01-19 16:27:02
Und tatsächlich wurde der Fehler exakt zur selben Zeit gemeldet, als das Device (genauer: alle vier Thermostate) aktualisiert wurde...

Da kann ich nur den Maintainer ansprechen, oder?

Vielen Dank, OdfFhem!
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

betateilchen

Zitat von: is2late am 19 Januar 2023, 15:54:34
Das Wiki kann mir bei der Interpretation nicht weiterhelfen.

Warum sollte das Wiki das auch tun?

Zitat von: is2late am 19 Januar 2023, 15:54:34
Gehe ich recht in der Annahme, dass der Fehler gleich durch mehrere Ursachen herbeigeführt wird?
Oder handelt es sich um verschiedene Fehler mit ganz unterschiedlichen Ursachen?

Nein, es ist nur ein Fehler.

Zitat von: is2late am 19 Januar 2023, 15:54:34
Wie kann man wohl die Bedeutung entschlüsseln?

Indem man die "called by" Liste unterhalb der Meldung stacktrace von unten nach oben liest.
Letzte Zeile vor dem "main::__ANON__" benennt die aufgerufene Funktion, aus der die Perl Warnung stammt: main::lookup2 im Modul readingsGroup

Zitat von: is2late am 19 Januar 2023, 17:05:42
Da kann ich nur den Maintainer ansprechen, oder?

Nein, warum? Die Meldung tritt doch offenbar nur bei Dir auf und ist somit vermutlich kein Modul-Problem.

Zeig doch mal ein list von Deiner readingsGroup, in der das reading steht und angezeigt werden soll.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

is2late

Danke!

ZitatZeig doch mal ein list von Deiner readingsGroup, in der das reading steht und angezeigt werden soll.

Wie fertigt man das an?

ACTIVE_PROFILE   
2
ACTUAL_TEMPERATURE
14.4
ACTUAL_TEMPERATURE_STATUS
NORMAL
BOOST_MODE
false

BOOST_TIME
0

FROST_PROTECTION
false

IODev
d_ccu

LEVEL
0

LEVEL_STATUS
NORMAL

PARTY_MODE
false

PARTY_SET_POINT_TEMPERATURE
0.0

PARTY_TIME_END
2023-01-19 17:40:00
PARTY_TIME_START
2023-01-19 17:40:00
QUICK_VETO_TIME
0

SET_POINT_MODE
manual

SET_POINT_TEMPERATURE
5.0

SWITCH_POINT_OCCURED
false

VALVE_ADAPTION
false

VALVE_STATE
ADAPTION_DONE

WINDOW_STATE
closed

activity
alive

battery
ok

control
5.0

desired-temp
5.0

devstate
ok

hmstate
14.4

measured-temp
14.4

rssidevice
-80

rssipeer
-79

state
14.4

voltage
2.8


Hab oben die Readingsgroup reinkopiert, aber sicher gibt es besseren Weg...
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

JoWiemann

Zitat von: is2late am 20 Januar 2023, 13:03:04
Wie fertigt man das an?

In der Device Ansicht gaaanz unten: Copy for forum.fhem.de

Den Inhalt der Zwischenablage dann in eine Nachricht kopieren.

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

betateilchen

@Jörg und wie zitiert man richtig? Also so, dass die eigene Antwort nicht im Zitat des Fragestellers steht?  8)

Zitat von: JoWiemann am 20 Januar 2023, 13:23:50
In der Device Ansicht gaaanz unten: Copy for forum.fhem.de

Den Inhalt der Zwischenablage dann in eine Nachricht kopieren.

Dir ist hoffentlich klar, dass das bei vielen FHEM Nutzern so nicht funktioniert?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: is2late am 20 Januar 2023, 13:03:04
Wie fertigt man das an?

Für das, was wir hier brauchen, ist der einfachste Weg:

"list -r <nameDerReadingsgroup>"

und dann das Ergebnis hier in den Thread posten, bitte innerhalb von code-Tags (das war ja schon richtig gemacht)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoWiemann

Zitat von: betateilchen am 20 Januar 2023, 13:26:04
@Jörg und wie zitiert man richtig? Also so, dass die eigene Antwort nicht im Zitat des Fragestellers steht?  8)

Dir ist hoffentlich klar, dass das bei vielen FHEM Nutzern so nicht funktioniert?

Stimmt. Habe das auf dem kleinen SmartPhone Bildschirm nicht gesehen.

Und, warum funktioniert das nicht? Wg. älterer Version oder wg. Handling?

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