PERL WARNING: Argument "100 %" isn't numeric

Begonnen von Udomatic, 29 März 2021, 14:03:32

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#15
Zitat von: Udomatic am 30 März 2021, 10:10:16
Mehr spuckt das list batteries eben nicht aus. Deshalb war auch meine Frage, was die lange Liste jetzt nutzt?

Und ja, das list im ertsten Post ist natürlich vom betroffene Device.

EDIT: aber nicht mal ein "Raum-Attribut? Wozu ist die readingsGroup dann nutze, wenn du nicht mal weißt, dass du sie hast ;) (sonst hätte ich ja nicht "erklären müssen" wie du sie "finden kannst" ;) Und sie auch nicht "leicht" aufmachen kannst? Aber: das sei dir überlassen)

Ich habe mich ja schon geoutet als "nicht readingsGroup-Debugger" ;)

Angefragt wurde das list ja hier: https://forum.fhem.de/index.php/topic,119982.msg1144284.html#msg1144284

Mal abwarten...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

ph1959de

Zitat von: Udomatic am 30 März 2021, 10:10:16
Mehr spuckt das list batteries eben nicht aus. Deshalb war auch meine Frage, was die lange Liste jetzt nutzt?
Die lange Liste sollte ausschließen, dass da irgendwelche Attribute der readingsGroup (valueFormat, ...) etwas spezielles im Bezug auf das reading machen. Du benutzt aber wohl offensichtlich eine einfache readingsGroup, die Deine gesamte FHEM Konfiguration auf readings, die im Namen "battery" enthalten. Daher die sehr lange Liste.

Zitat von: Udomatic am 30 März 2021, 10:10:16
Und ja, das list im ertsten Post ist natürlich vom betroffene Device.
Das FBDECT Modul scheint wirklich in das reading battery das Prozentzeichen reinzuschreiben - und da readingsGroup wohl von numerischen Werten ausgeht, führt das zu der beobachteten Warnung.

Da nicht davon auszugehen ist, dass die Darstellung im FBDECT Modul geändert wird, könntest Du versuchen, mit Hilfe des readingsGroup Attributs valueFormat eine andere Darstellung bewirken - ich bezweifle allerdings, dass eine Warnung in einer so generellen readingsGroup diesen Aufwand rechtfertigt.
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Christoph Morrison

#17
Zitat von: ph1959de am 30 März 2021, 11:09:27
Das FBDECT Modul scheint wirklich in das reading battery das Prozentzeichen reinzuschreiben - und da readingsGroup wohl von numerischen Werten ausgeht, führt das zu der beobachteten Warnung.

Es scheint nicht nur so, es ist auch so, Zeile 414:


   battery         => 'sprintf("battery:%s %%", $val)',


Ich kenn den Stand der Diskussion über die kanonischen Batterie-Readings nicht, aber vielleicht stupst du mal Rudi an.

justme1968

#18
ich behaupte mal die meldung kommt nicht von der geposteten readingsGroup.

zeig mal die ausgabe von list TYPE=readingsGroup DEF
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

JoWiemann

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

rudolfkoenig

Die Formulierung im Wiki ist nicht ganz richtig, insb. das Wort "nur" ist falsch. Der Wertebereich von batteryPercent, batteryState und batteryVoltage ist standardisiert.  battery wurde haeufig von den Modulen vor der Standardisierung verwendet, und wir wollten die alten Benutzer nicht aergern, insofern bleibt es unveraendert.

Das FBDECT Modul generiert neben dem "alten" battery Reading die damals vereinbarten batteryPercent und batteryState.

Udomatic

Zitat von: Christoph Morrison am 30 März 2021, 15:00:26
Es scheint nicht nur so, es ist auch so, Zeile 414:


   battery         => 'sprintf("battery:%s %%", $val)',


Ich kenn den Stand der Diskussion über die kanonischen Batterie-Readings nicht, aber vielleicht stupst du mal Rudi an.

Vielen Dank für die bisherigen Kommentare und Inputs. Was bedeutet das jetzt für die Lösung des Problems?
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

rudolfkoenig

ZitatWas bedeutet das jetzt für die Lösung des Problems?
- "offiziell" ist battery das falsche Reading, man sollte stattdessen einen der vereinbarten verwenden (siehe Wiki-Link)
- ich habe nach der oben gezeigten Definition ein readingsGroup angelegt, und hatte kein Problem mit "battery 100 %".
- laut Stacktrace wurde das Problem bei der Evaluierung eines valueFormat readingsGroup Attributes ausgeloest, leider wurde dieses Attribut uns in der Listing verschwiegen. Ich rate: im Attribut wird  "$VAL < " verwendet, statt "$NUM < ".

Die Ursache ist also weder das FBDECT, noch das readingsGroup Modul, sondern ein vom Benutzer definiertes Attribut.

Udomatic

Zitat von: rudolfkoenig am 02 April 2021, 18:22:26
- "offiziell" ist battery das falsche Reading, man sollte stattdessen einen der vereinbarten verwenden (siehe Wiki-Link)
- ich habe nach der oben gezeigten Definition ein readingsGroup angelegt, und hatte kein Problem mit "battery 100 %".
- laut Stacktrace wurde das Problem bei der Evaluierung eines valueFormat readingsGroup Attributes ausgeloest, leider wurde dieses Attribut uns in der Listing verschwiegen. Ich rate: im Attribut wird  "$VAL < " verwendet, statt "$NUM < ".

Die Ursache ist also weder das FBDECT, noch das readingsGroup Modul, sondern ein vom Benutzer definiertes Attribut.

Vielen Dank für die Unterstützung. Habe es verstanden. Es gab noch eine zweite Batteries readingsGroup. Habe diese gelöscht und seitdem ist der Fehler wohl Geschichte
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,