Autor Thema: PERL WARNING: Argument "100 %" isn't numeric  (Gelesen 2274 mal)

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 11067
  • NIVEAu ist keine Creme...
Antw:PERL WARNING: Argument "100 %" isn't numeric
« Antwort #15 am: 30 März 2021, 10:27:46 »
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
« Letzte Änderung: 30 März 2021, 10:29:37 von MadMax-FHEM »
FHEM PI3B+ Buster: 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)
FHEM PI3 RaspiOS (Test)

Online ph1959de

  • Hero Member
  • *****
  • Beiträge: 1058
Antw:PERL WARNING: Argument "100 %" isn't numeric
« Antwort #16 am: 30 März 2021, 11:09:27 »
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.

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"
[Fhem auf BeagleBone Black (Debian) | FS20, FHT (CUL) | HomeMatic (HMLAN+HMUART) | PCA301 (JeeLink)...]

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1775
Antw:PERL WARNING: Argument "100 %" isn't numeric
« Antwort #17 am: 30 März 2021, 15:00:26 »
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.
« Letzte Änderung: 30 März 2021, 21:46:24 von Christoph Morrison »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20838
Antw:PERL WARNING: Argument "100 %" isn't numeric
« Antwort #18 am: 30 März 2021, 15:21:01 »
ich behaupte mal die meldung kommt nicht von der geposteten readingsGroup.

zeig mal die ausgabe von list TYPE=readingsGroup DEF
« Letzte Änderung: 30 März 2021, 20:23:12 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH
Zustimmung Zustimmung x 1 Liste anzeigen

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3189
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

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24514
Antw:PERL WARNING: Argument "100 %" isn't numeric
« Antwort #20 am: 30 März 2021, 20:57:36 »
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.

Offline Udomatic

  • Full Member
  • ***
  • Beiträge: 313
Antw:PERL WARNING: Argument "100 %" isn't numeric
« Antwort #21 am: 31 März 2021, 18:16:22 »
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,

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24514
Antw:PERL WARNING: Argument "100 %" isn't numeric
« Antwort #22 am: 02 April 2021, 18:22:26 »
Zitat
Was 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.

Offline Udomatic

  • Full Member
  • ***
  • Beiträge: 313
Antw:PERL WARNING: Argument "100 %" isn't numeric
« Antwort #23 am: 03 April 2021, 17:45:59 »
- "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,