FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: is2late am 18 Januar 2023, 17:46:01

Titel: (Gelöst) PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at ..line
Beitrag von: is2late am 18 Januar 2023, 17:46:01
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?
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: OdfFhem am 18 Januar 2023, 18:09:51
Wenn die Meldung alleine und bezuglos im Log steht, dann hilft u.U. "stacktrace unter global zu aktivieren" ...
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 18 Januar 2023, 18:12:49
Danke, OdfFhem, probiere ich sofort aus.
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 18 Januar 2023, 18:21:15
Kurios.... Die Fehlermeldung will sich wohl nicht in die Karten gucken lassen  :o
Jedenfalls erscheint die Meldung derzeit nicht mehr. Mal morgen sehen...
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: betateilchen am 18 Januar 2023, 18:25:14
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.
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 19 Januar 2023, 10:37:10
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.
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 19 Januar 2023, 15:54:34
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

Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: OdfFhem am 19 Januar 2023, 16:20:44
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 ...
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 19 Januar 2023, 17:05:42
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!
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: betateilchen am 19 Januar 2023, 18:14:48
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.

Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 20 Januar 2023, 13:03:04
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...
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: JoWiemann am 20 Januar 2023, 13:23:50
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
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag 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)

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?
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: betateilchen am 20 Januar 2023, 13:28:33
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)
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: JoWiemann am 20 Januar 2023, 13:33:26
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
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: betateilchen am 20 Januar 2023, 13:47:02
Zitat von: JoWiemann am 20 Januar 2023, 13:33:26
Und, warum funktioniert das nicht? Wg. älterer Version oder wg. Handling?

Weil das nur unter Windows funktioniert.
Unter macOS gibt es den Link "Copy for forum" in den devices überhaupt nicht.
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 20 Januar 2023, 15:22:03
@JoWiemann: Dankeschön, hat funktioniert
@betateilchen: Merci, merke ich mir

Wobei da unterschiedliche Ergebnisse herauszukommen scheinen....
list -r Fitness_Thermostat (oder ist die Readingsgroup anders benannt als das Device?)

define Fitness_Thermostat HMCCUCHN 00201D89A7F7D9:1
attr Fitness_Thermostat cmdIcon auto:sani_heating_automatic manu:sani_heating_manual boost:sani_heating_boost on:general_an off:general_aus
attr Fitness_Thermostat room Geräte,Homematic
attr Fitness_Thermostat substexcl desired-temp
attr Fitness_Thermostat webCmd desired-temp:auto:manu:boost:on:off
attr Fitness_Thermostat widgetOverride desired-temp:slider,4.5,0.5,30.5,1

setstate Fitness_Thermostat 14.1
setstate Fitness_Thermostat 2023-01-20 14:22:29 ACTIVE_PROFILE 2
setstate Fitness_Thermostat 2023-01-20 14:22:29 ACTUAL_TEMPERATURE 14.1
setstate Fitness_Thermostat 2023-01-20 14:22:29 ACTUAL_TEMPERATURE_STATUS NORMAL
setstate Fitness_Thermostat 2023-01-20 14:22:29 BOOST_MODE false
setstate Fitness_Thermostat 2023-01-20 14:22:29 BOOST_TIME 0
setstate Fitness_Thermostat 2023-01-20 14:22:29 FROST_PROTECTION false
setstate Fitness_Thermostat 2023-01-19 17:39:34 IODev d_ccu
setstate Fitness_Thermostat 2023-01-20 14:22:29 LEVEL 0
setstate Fitness_Thermostat 2023-01-20 14:22:29 LEVEL_STATUS NORMAL
setstate Fitness_Thermostat 2023-01-20 14:22:29 PARTY_MODE false
setstate Fitness_Thermostat 2023-01-19 17:40:00 PARTY_SET_POINT_TEMPERATURE 0.0
setstate Fitness_Thermostat 2023-01-19 17:40:00 PARTY_TIME_END
setstate Fitness_Thermostat 2023-01-19 17:40:00 PARTY_TIME_START
setstate Fitness_Thermostat 2023-01-20 14:22:29 QUICK_VETO_TIME 0
setstate Fitness_Thermostat 2023-01-20 14:22:29 SET_POINT_MODE manual
setstate Fitness_Thermostat 2023-01-20 14:22:29 SET_POINT_TEMPERATURE 5.0
setstate Fitness_Thermostat 2023-01-20 14:22:29 SWITCH_POINT_OCCURED false
setstate Fitness_Thermostat 2023-01-19 17:40:00 VALVE_ADAPTION false
setstate Fitness_Thermostat 2023-01-20 14:22:29 VALVE_STATE ADAPTION_DONE
setstate Fitness_Thermostat 2023-01-20 14:22:29 WINDOW_STATE closed
setstate Fitness_Thermostat 2023-01-20 15:34:38 activity alive
setstate Fitness_Thermostat 2023-01-20 14:22:29 battery ok
setstate Fitness_Thermostat 2023-01-20 14:22:29 control 5.0
setstate Fitness_Thermostat 2023-01-20 14:22:29 desired-temp 5.0
setstate Fitness_Thermostat 2023-01-20 15:34:38 devstate ok
setstate Fitness_Thermostat 2023-01-20 15:34:38 hmstate 14.1
setstate Fitness_Thermostat 2023-01-20 14:22:29 measured-temp 14.1
setstate Fitness_Thermostat 2023-01-20 15:34:38 rssidevice -81
setstate Fitness_Thermostat 2023-01-20 12:49:55 rssipeer -79
setstate Fitness_Thermostat 2023-01-20 14:22:29 state 14.1
setstate Fitness_Thermostat 2023-01-20 14:22:29 voltage 2.8


Copy for forum:

define Fitness_Thermostat HMCCUCHN 00201D89A7F7D9:1
attr Fitness_Thermostat cmdIcon auto:sani_heating_automatic manu:sani_heating_manual boost:sani_heating_boost on:general_an off:general_aus
attr Fitness_Thermostat room Geräte,Homematic
attr Fitness_Thermostat substexcl desired-temp
attr Fitness_Thermostat webCmd desired-temp:auto:manu:boost:on:off
attr Fitness_Thermostat widgetOverride desired-temp:slider,4.5,0.5,30.5,1
#   DEF        00201D89A7F7D9:1
#   FUUID      63209701-f33f-a080-be2f-0be40214a02e98d1
#   IODev      d_ccu
#   NAME       Fitness_Thermostat
#   NR         463
#   STATE      14.1
#   TYPE       HMCCUCHN
#   ccuaddr    00201D89A7F7D9:1
#   ccudevstate active
#   ccuif      HmIP-RF
#   ccuname    Fitness Thermostat
#   ccurolectrl HEATING_CLIMATECONTROL_TRANSCEIVER
#   ccurolestate HEATING_CLIMATECONTROL_TRANSCEIVER
#   ccusubtype TRV-B
#   ccutype    HmIP-eTRV-B
#   eventCount 90
#   firmware   1.0.20
#   readonly   no
#   READINGS:
#     2023-01-20 14:22:29   ACTIVE_PROFILE  2
#     2023-01-20 14:22:29   ACTUAL_TEMPERATURE 14.1
#     2023-01-20 14:22:29   ACTUAL_TEMPERATURE_STATUS NORMAL
#     2023-01-20 14:22:29   BOOST_MODE      false
#     2023-01-20 14:22:29   BOOST_TIME      0
#     2023-01-20 14:22:29   FROST_PROTECTION false
#     2023-01-19 17:39:34   IODev           d_ccu
#     2023-01-20 14:22:29   LEVEL           0
#     2023-01-20 14:22:29   LEVEL_STATUS    NORMAL
#     2023-01-20 14:22:29   PARTY_MODE      false
#     2023-01-19 17:40:00   PARTY_SET_POINT_TEMPERATURE 0.0
#     2023-01-19 17:40:00   PARTY_TIME_END 
#     2023-01-19 17:40:00   PARTY_TIME_START
#     2023-01-20 14:22:29   QUICK_VETO_TIME 0
#     2023-01-20 14:22:29   SET_POINT_MODE  manual
#     2023-01-20 14:22:29   SET_POINT_TEMPERATURE 5.0
#     2023-01-20 14:22:29   SWITCH_POINT_OCCURED false
#     2023-01-19 17:40:00   VALVE_ADAPTION  false
#     2023-01-20 14:22:29   VALVE_STATE     ADAPTION_DONE
#     2023-01-20 14:22:29   WINDOW_STATE    closed
#     2023-01-20 15:34:38   activity        alive
#     2023-01-20 14:22:29   battery         ok
#     2023-01-20 14:22:29   control         5.0
#     2023-01-20 14:22:29   desired-temp    5.0
#     2023-01-20 15:34:38   devstate        ok
#     2023-01-20 15:34:38   hmstate         14.1
#     2023-01-20 14:22:29   measured-temp   14.1
#     2023-01-20 15:34:38   rssidevice      -81
#     2023-01-20 12:49:55   rssipeer        -79
#     2023-01-20 14:22:29   state           14.1
#     2023-01-20 14:22:29   voltage         2.8
#   hmccu:
#     channels   1
#     detect     1
#     devspec    00201D89A7F7D9:1
#     nodefaults 1
#     role       1:HEATING_CLIMATECONTROL_TRANSCEIVER
#     setDefaults 0
#     cmdlist:
#       get       
#       set        holiday:noArg on:noArg desired-temp manu:noArg auto:noArg boost:noArg off:noArg toggle:noArg
#     control:
#       chn        1
#       dpt        SET_POINT_TEMPERATURE
#     dp:
#       0.APPLICATION_VERSION:
#         SERVICE:
#           NVAL       1.0.20
#           ONVAL      1.0.20
#           OSVAL      1.0.20
#           OVAL       1.0.20
#           SVAL       1.0.20
#           VAL        1.0.20
#         VALUES:
#       0.ARR_TIMEOUT:
#         MASTER:
#           NVAL       10
#           ONVAL      10
#           OSVAL      10
#           OVAL       10
#           SVAL       10
#           VAL        10
#         VALUES:
#       0.BOOTLOADER_VERSION:
#         SERVICE:
#           NVAL       1.14.0
#           ONVAL      1.14.0
#           OSVAL      1.14.0
#           OVAL       1.14.0
#           SVAL       1.14.0
#           VAL        1.14.0
#         VALUES:
#       0.CONFIG_PENDING:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      false
#           OVAL       0
#           SVAL       false
#           VAL        0
#       0.CYCLIC_INFO_MSG:
#         MASTER:
#           NVAL       1
#           ONVAL      1
#           OSVAL      1
#           OVAL       1
#           SVAL       1
#           VAL        1
#         VALUES:
#       0.CYCLIC_INFO_MSG_DIS:
#         MASTER:
#           NVAL       1
#           ONVAL      1
#           OSVAL      1
#           OVAL       1
#           SVAL       1
#           VAL        1
#         VALUES:
#       0.CYCLIC_INFO_MSG_DIS_UNCHANGED:
#         MASTER:
#           NVAL       20
#           ONVAL      20
#           OSVAL      20
#           OVAL       20
#           SVAL       20
#           VAL        20
#         VALUES:
#       0.CYCLIC_INFO_MSG_OVERDUE_THRESHOLD:
#         MASTER:
#           NVAL       2
#           ONVAL      2
#           OSVAL      2
#           OVAL       2
#           SVAL       2
#           VAL        2
#         VALUES:
#       0.DAYLIGHT_SAVINGS_TIME:
#         MASTER:
#           NVAL       1
#           ONVAL      1
#           OSVAL      1
#           OVAL       1
#           SVAL       1
#           VAL        1
#         VALUES:
#       0.DISABLE_MSG_TO_AC:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       0.DST_END_DAY_OF_WEEK:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       0.DST_END_MONTH:
#         MASTER:
#           NVAL       10
#           ONVAL      10
#           OSVAL      10
#           OVAL       10
#           SVAL       10
#           VAL        10
#         VALUES:
#       0.DST_END_TIME:
#         MASTER:
#           NVAL       180
#           ONVAL      180
#           OSVAL      180
#           OVAL       180
#           SVAL       180
#           VAL        180
#         VALUES:
#       0.DST_END_WEEK_OF_MONTH:
#         MASTER:
#           NVAL       5
#           ONVAL      5
#           OSVAL      5
#           OVAL       5
#           SVAL       5
#           VAL        5
#         VALUES:
#       0.DST_START_DAY_OF_WEEK:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       0.DST_START_MONTH:
#         MASTER:
#           NVAL       3
#           ONVAL      3
#           OSVAL      3
#           OVAL       3
#           SVAL       3
#           VAL        3
#         VALUES:
#       0.DST_START_TIME:
#         MASTER:
#           NVAL       120
#           ONVAL      120
#           OSVAL      120
#           OVAL       120
#           SVAL       120
#           VAL        120
#         VALUES:
#       0.DST_START_WEEK_OF_MONTH:
#         MASTER:
#           NVAL       5
#           ONVAL      5
#           OSVAL      5
#           OVAL       5
#           SVAL       5
#           VAL        5
#         VALUES:
#       0.DUTYCYCLE_LIMIT:
#         MASTER:
#           NVAL       180
#           ONVAL      180
#           OSVAL      180
#           OVAL       180
#           SVAL       180
#           VAL        180
#         VALUES:
#       0.DUTY_CYCLE:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      false
#           OVAL       0
#           SVAL       false
#           VAL        0
#       0.ENABLE_ROUTING:
#         MASTER:
#           NVAL       1
#           ONVAL      1
#           OSVAL      1
#           OVAL       1
#           SVAL       1
#           VAL        1
#         VALUES:
#       0.GLOBAL_BUTTON_LOCK:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       0.HARDWARE_VERSION:
#         SERVICE:
#           NVAL       3
#           ONVAL      3
#           OSVAL      3
#           OVAL       3
#           SVAL       3
#           VAL        3
#         VALUES:
#       0.INSTALL_TEST:
#         VALUES:
#           NVAL       true
#           ONVAL      true
#           OSVAL      true
#           OVAL       true
#           SVAL       true
#           VAL        true
#       0.LOCAL_RESET_DISABLED:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       0.LOW_BAT:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      ok
#           OVAL       0
#           SVAL       ok
#           VAL        0
#       0.LOW_BAT_LIMIT:
#         MASTER:
#           NVAL       2.2
#           ONVAL      2.2
#           OSVAL      2.2
#           OVAL       2.2
#           SVAL       2.2
#           VAL        2.2
#         VALUES:
#       0.OPERATING_VOLTAGE:
#         VALUES:
#           NVAL       2.8
#           ONVAL      2.8
#           OSVAL      2.8
#           OVAL       2.8
#           SVAL       2.8
#           VAL        2.8
#       0.OPERATING_VOLTAGE_STATUS:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      NORMAL
#           OVAL       0
#           SVAL       NORMAL
#           VAL        0
#       0.OS_VERSION:
#         SERVICE:
#           NVAL       1.30.1
#           ONVAL      1.30.1
#           OSVAL      1.30.1
#           OVAL       1.30.1
#           SVAL       1.30.1
#           VAL        1.30.1
#         VALUES:
#       0.RSSI_DEVICE:
#         VALUES:
#           NVAL       -81
#           ONVAL      -82
#           OSVAL      -82
#           OVAL       -82
#           SVAL       -81
#           VAL        -81
#       0.RSSI_PEER:
#         VALUES:
#           NVAL       -79
#           ONVAL      -79
#           OSVAL      -79
#           OVAL       -79
#           SVAL       -79
#           VAL        -79
#       0.TEST_STATUS:
#         SERVICE:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       0.UNREACH:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      alive
#           OVAL       0
#           SVAL       alive
#           VAL        0
#       0.UPDATE_PENDING:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#       0.UTC_DST_OFFSET:
#         MASTER:
#           NVAL       120
#           ONVAL      120
#           OSVAL      120
#           OVAL       120
#           SVAL       120
#           VAL        120
#         VALUES:
#       0.UTC_OFFSET:
#         MASTER:
#           NVAL       60
#           ONVAL      60
#           OSVAL      60
#           OVAL       60
#           SVAL       60
#           VAL        60
#         VALUES:
#       1.ACTIVE_PROFILE:
#         VALUES:
#           NVAL       2
#           ONVAL      2
#           OSVAL      2
#           OVAL       2
#           SVAL       2
#           VAL        2
#       1.ACTUAL_TEMPERATURE:
#         VALUES:
#           NVAL       14.1
#           ONVAL      14.2
#           OSVAL      14.2
#           OVAL       14.2
#           SVAL       14.1
#           VAL        14.1
#       1.ACTUAL_TEMPERATURE_STATUS:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      NORMAL
#           OVAL       0
#           SVAL       NORMAL
#           VAL        0
#       1.ADAPTIVE_REGULATION:
#         MASTER:
#           NVAL       2
#           ONVAL      2
#           OSVAL      2
#           OVAL       2
#           SVAL       2
#           VAL        2
#         VALUES:
#       1.APPLICATION_VERSION:
#         SERVICE:
#           NVAL       1.0.20
#           ONVAL      1.0.20
#           OSVAL      1.0.20
#           OVAL       1.0.20
#           SVAL       1.0.20
#           VAL        1.0.20
#         VALUES:
#       1.BOOST_AFTER_WINDOW_OPEN:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       1.BOOST_MODE:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      false
#           OVAL       0
#           SVAL       false
#           VAL        0
#       1.BOOST_POSITION:
#         MASTER:
#           NVAL       80
#           ONVAL      80
#           OSVAL      80
#           OVAL       80
#           SVAL       80
#           VAL        80
#         VALUES:
#       1.BOOST_TIME:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#       1.BOOST_TIME_PERIOD:
#         MASTER:
#           NVAL       5
#           ONVAL      5
#           OSVAL      5
#           OVAL       5
#           SVAL       5
#           VAL        5
#         VALUES:
#       1.BOOTLOADER_VERSION:
#         SERVICE:
#           NVAL       1.14.0
#           ONVAL      1.14.0
#           OSVAL      1.14.0
#           OVAL       1.14.0
#           SVAL       1.14.0
#           VAL        1.14.0
#         VALUES:
#       1.DECALCIFICATION_TIME:
#         MASTER:
#           NVAL       22
#           ONVAL      22
#           OSVAL      22
#           OVAL       22
#           SVAL       22
#           VAL        22
#         VALUES:
#       1.DECALCIFICATION_WEEKDAY:
#         MASTER:
#           NVAL       6
#           ONVAL      6
#           OSVAL      6
#           OVAL       6
#           SVAL       6
#           VAL        6
#         VALUES:
#       1.DURATION_5MIN:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       1.FROST_PROTECTION:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      false
#           OVAL       0
#           SVAL       false
#           VAL        0
#       1.HARDWARE_VERSION:
#         SERVICE:
#           NVAL       3
#           ONVAL      3
#           OSVAL      3
#           OVAL       3
#           SVAL       3
#           VAL        3
#         VALUES:
#       1.LEVEL:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0.0
#           SVAL       0
#           VAL        0.0
#       1.LEVEL_STATUS:
#         VALUES:
#           NVAL       0
#           ONVAL      0
#           OSVAL      NORMAL
#           OVAL       0
#           SVAL       NORMAL
#           VAL        0
#       1.MANU_MODE_PRIORITIZATION:
#         MASTER:
#           NVAL       1
#           ONVAL      1
#           OSVAL      1
#           OVAL       1
#           SVAL       1
#           VAL        1
#         VALUES:
#       1.MIN_MAX_VALUE_NOT_RELEVANT_FOR_MANU_MODE:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       1.OPTIMUM_START_STOP:
#         MASTER:
#           NVAL       0
#           ONVAL      0
#           OSVAL      0
#           OVAL       0
#           SVAL       0
#           VAL        0
#         VALUES:
#       1.OS_VERSION:
#         SERVICE:
#           NVAL       1.30.1
#           ONVAL      1.30.1
#           OSVAL      1.30.1
#           OVAL       1.30.1
#           SVAL       1.30.1
#           VAL        1.30.1
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_1:
#         MASTER:
#           NVAL       420
#           ONVAL      420
#           OSVAL      420
#           OVAL       420
#           SVAL       420
#           VAL        420
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_10:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_11:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_12:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_13:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_2:
#         MASTER:
#           NVAL       600
#           ONVAL      600
#           OSVAL      600
#           OVAL       600
#           SVAL       600
#           VAL        600
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_3:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_4:
#         MASTER:
#           NVAL       1320
#           ONVAL      1320
#           OSVAL      1320
#           OVAL       1320
#           SVAL       1320
#           VAL        1320
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_5:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_6:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_7:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_8:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_FRIDAY_9:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_1:
#         MASTER:
#           NVAL       420
#           ONVAL      420
#           OSVAL      420
#           OVAL       420
#           SVAL       420
#           VAL        420
#         VALUES:
#       1.P1_ENDTIME_MONDAY_10:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_11:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_12:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_13:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_2:
#         MASTER:
#           NVAL       600
#           ONVAL      600
#           OSVAL      600
#           OVAL       600
#           SVAL       600
#           VAL        600
#         VALUES:
#       1.P1_ENDTIME_MONDAY_3:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_4:
#         MASTER:
#           NVAL       1320
#           ONVAL      1320
#           OSVAL      1320
#           OVAL       1320
#           SVAL       1320
#           VAL        1320
#         VALUES:
#       1.P1_ENDTIME_MONDAY_5:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_6:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_7:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_8:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_MONDAY_9:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_1:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_10:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_11:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_12:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_13:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_2:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_3:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_4:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_5:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_6:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_7:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_8:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SATURDAY_9:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SUNDAY_1:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SUNDAY_10:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SUNDAY_11:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SUNDAY_12:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
#           OSVAL      1440
#           OVAL       1440
#           SVAL       1440
#           VAL        1440
#         VALUES:
#       1.P1_ENDTIME_SUNDAY_13:
#         MASTER:
#           NVAL       1440
#           ONVAL      1440
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: OdfFhem am 20 Januar 2023, 15:59:48
Jetzt fehlt noch die readingsGroup ...
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 20 Januar 2023, 16:04:26
Entschuldige die blöde Frage: Wo finde ich denn die?
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: OdfFhem am 20 Januar 2023, 16:20:21
So bekommst Du eine Liste:
list TYPE=readingsGroup

Dann müsstest Du wissen, welche davon fürs Zeigen in Frage kommen könnte ...
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 20 Januar 2023, 16:40:27
Super, danke OdfFhem!

Da gibt es nur wenige ReadingsGroups, nämlich acht von/für Sonos und eine einzige für battery. Dessen List sieht so aus:

define ui_battery readingsGroup .*:[Bb]attery
attr ui_battery alias Batteriestatus
attr ui_battery mapping %ALIAS
attr ui_battery notime 1
attr ui_battery room Geräte
attr ui_battery style text-align:left;;
attr ui_battery valueFormat {return "0" if ($VALUE > 3.2 and $VALUE < 26);;\
return "25" if ($VALUE > 25 and $VALUE < 51);;\
return "50" if ($VALUE > 50 and $VALUE < 76);;\
return "75" if ($VALUE > 75 and $VALUE < 100);;\
return "100"}
attr ui_battery valueIcon {'battery.0' => '10px-kreis-rot',\
'battery.25' => '10px-kreis-rot',\
'battery.50' => '10px-kreis-gelb',\
'battery.75' => '10px-kreis-gelb',\
'battery.100' => '10px-kreis-gruen',\
}
attr ui_battery verbose 0


In dieser Gruppe sind verschiedene Geräte zusammengefasst:
- Thermostate   (Reading "battery" mit Wert ok)
- Bewegungssensoren (Reading myBatteryStatus mit Wert OK, Reading battery mit nummerischem Wert) ->Klein-/Großschreibung wurde beachtet
- Hue ambient light sensoren OHNE Wert ok oder OK -> Reading "battery" und "batteryPercent" ist dort nummerisch angegeben.
- Helligkeitssensoren, Dimmer, Temperatursensoren (wie Hue ambient. )

Scheint so, als ob die Thermostate verantwortlich sind, oder? Obwohl im List ja auch kein ok erscheint..

Könnte man das Problem beseitigen, indem das Reading "battery" bei den Thermostaten entweder entfernt oder aber mit einem nummerischen Wert auf Basis des Readings "voltage" oder mit einem beliebigen nummerischen Wert - zB 100 - gefüllt wird? Dieses Reading wird bei den Thermostaten nicht wirklich benötigt.

LG
-
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: OdfFhem am 20 Januar 2023, 17:28:39
Das Attribut "valueFormat" geht schon mal davon aus, dass $VALUE einen numerischen Wert enthält ... "ok" würde hier nicht passen ...
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: betateilchen am 20 Januar 2023, 17:30:20
Eben darauf wollte ich ja mit meinen Fragen hinaus: das Problem ist vom Anwender hausgemacht und hat nichts mit irgendwelchen Modulen (insbesondere nicht HMCCU) zu tun, worum sich ein Modulautor kümmern müsste.
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: betateilchen am 20 Januar 2023, 17:38:24
Das Problem dürfte schlichweg sein, dass Dein HMCCU device überhaupt keine Spannungswert als reading "battery" liefert

setstate Fitness_Thermostat 2023-01-20 14:22:29 battery ok

Die Batteriespannung steht im reading "voltage"

setstate Fitness_Thermostat 2023-01-20 14:22:29 voltage 2.8

Aber warum Du die Zuordnungen in Deinem valueFormat zwischen 3,2 und 26 machen (und mit anderen Wertebereichen, die nach Prozente aussehen!) möchtest, erschließt sich mir nicht.

Wenn das reading "battery" einen text "ok" liefert, kannst Du den jedenfalls nicht gegen numerische Wertebereiche vergleichen und brauchst Dich über perl Warnungen, dass das nicht geht, nicht zu wundern.


---
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 20 Januar 2023, 17:52:29
ZitatAber warum Du die Zuordnungen in Deinem valueFormat zwischen 3,2 und 26 machen (und mit anderen Wertebereichen, die nach Prozente aussehen!) möchtest, erschließt sich mir nicht.

Ich kann so etwas garnicht. Hab es von einer Vorlage übernommen und es hat - bis die Thermostate hinzugekommen sind - auch prima funktioniert. Frage ist doch, wie man das lösen kann.
Würde es denn funktionieren, wenn man "ok" als Zahl - zB 100 - interpretierte, etwa so:

return "100" if ($VALUE = okay);;\ 

Oder kennt Ihr eine Möglichkeit, das Reading "battery" beim Device anders zu füllen, nämlich grundsätzlich mit einer Zahl, die durchaus bezugslos sein kann, etwa "100"?


Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: betateilchen am 20 Januar 2023, 17:59:54
Verstehst Du überhaupt, was Du da tust und was das Ergebnis sein soll?
Mit "Vorlage übernehmen" ohne zu verstehen, was die Vorlage tut, kommt man selten weiter.

Zitat von: is2late am 20 Januar 2023, 17:52:29
Oder kennt Ihr eine Möglichkeit, das Reading "battery" beim Device anders zu füllen,

Brauchst Du doch gar nicht. Du musst einfach nur in Deinem valueFormat dafür sorgen, dass der Wert "ok" mit berücksichtigt wird.


attr ui_battery valueFormat {return "100" if ($VALUE eq "ok");;\
return "0" if ($VALUE > 3.2 and $VALUE < 26);;\
return "25" if ($VALUE > 25 and $VALUE < 51);;\
return "50" if ($VALUE > 50 and $VALUE < 76);;\
return "75" if ($VALUE > 75 and $VALUE < 100);;\
return "100"}


Genau nach diesem Schema musst Du natürlich auch noch eine Abfrage für den Fall einbauen, dass ein Text zurückgeliefert wird, der "nicht ok" bedeutet - diesen musst Du dann auf "0" mappen.
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: is2late am 20 Januar 2023, 18:16:36
ZitatVerstehst Du überhaupt, was Du da tust

Leute, seid nicht so streng mit mir. Nein, ich verstehe maximal in Teilen, was da vor sich geht. Behaupte aber auch nicht anderes. Bin Anfänger und werde es als unbedarfter Rentner bleiben. Habe trotzdem dank der Hilfe aus dem Forum und -ja! - Copy and Paste eine funktionierende Homeautomation zusamengebracht. Wenn es im Betrieb durch neue Geräte oä hakt und ich nicht weiterkomme, muss ich halt mal fragen. Ich will aber niemanden belästigen. Wer sich also durch meine Unwissenheit belästigt fühlt, mag sich frei fühlen, meine Anfragen zu ignorieren.

@betateilchen: Danke für den Code!
Titel: Antw:PERL WARNING: Argument "ok" isn't numeric in numeric gt (>) at (eval 96067) line
Beitrag von: betateilchen am 20 Januar 2023, 18:31:35
Weder bin ich streng, noch fühle ich mich belästigt.

Eigentlich bin ich nur sehr irritiert, dass Du eine readingsGroup verwendest, ohne zu wissen, wie das funktioniert.
Das ist halt der Fluch von copy & paste.

Und in dem Zusammenhang finde ich es halt manchmal fragwürdig, sich auf die Hilfe aus dem Forum zu verlassen, anstatt sich selbst ein paar Grundlagen anzueignen.

Versteh mich bitte nicht falsch: Du sollst nicht professioneller Programmierer werden. Aber eine Fehlermeldung (oder eine perl Warnung) zumindest inhaltlich einordnen zu können, ist m.E. von einem Anwender nicht zuviel verlangt.