Hallo Leute,
ich habe letzte Woche einen Update gemacht und seither läuft das Logfile mit folgender Fehlermeldung voll:
2024.08.05 09:01:50 1: PERL WARNING: Argument "" isn't numeric in sprintf at (eval 1449090) line 1.
2024.08.05 09:01:50 3: eval: sprintf( "%d %% - %s", ReadingsVal( $name, "LEVEL", 50 ), ReadingsVal( $name, "EMERGENCY_OPERATION", "false" ) );
Die Zeitpunkte des Fehlereintrages lassen auch keinen Rückschluß auf ein Muster zu: mal sind zwischen den Einträgen beinahe 2 Stunden, mal sind es nur 5 Minuten.
Woran kann das liegen?
Hi,
Es ist eine Warnung.
Der Grund dafür steht komplett da: der Ausdruck in deinem sprintf() ist leer, also keine Zahl wie erwartet.
Du musst mal die Definition und die Daten anschauen wo das Konstrukt verwendet wird.
Gruß Otto
Zitat von: Otto123 am 05 August 2024, 10:12:03Hi,
Es ist eine Warnung.
Der Grund dafür steht komplett da: der Ausdruck in deinem sprintf() ist leer, also keine Zahl wie erwartet.
Du musst mal die Definition und die Daten anschauen wo das Konstrukt verwendet wird.
Gruß Otto
Hi, Danke!
Bringt mich der Problembeschreibung ein bisschen näher. Ich habe pro Stockwerk die Homematic IP Fussbodenheizungsregler verbaut. Diese sind in Hoemmatic wie folgt definiert:
define HmIP_FALMOT_C12_001B9F29B3D29D_6 HMCCUCHN 001B9F29B3D29D:6
attr HmIP_FALMOT_C12_001B9F29B3D29D_6 alias Wohnzimmer Mitte
attr HmIP_FALMOT_C12_001B9F29B3D29D_6 group Verteiler EG
attr HmIP_FALMOT_C12_001B9F29B3D29D_6 room _Heizung
attr HmIP_FALMOT_C12_001B9F29B3D29D_6 sortby 060
attr HmIP_FALMOT_C12_001B9F29B3D29D_6 stateFormat {sprintf( "%d %% - %s", ReadingsVal( $name, "LEVEL", 50 ), ReadingsVal( $name, "EMERGENCY_OPERATION", "false" ) );; }
# DEF 001B9F29B3D29D:6
# FUUID 65d788a0-f33f-ab17-1d4d-dbbd768958541ecf
# IODev CCU3_Main
# NAME HmIP_FALMOT_C12_001B9F29B3D29D_6
# NR 215
# STATE 97 % - false
# TYPE HMCCUCHN
# ccuaddr 001B9F29B3D29D:6
# ccudevstate active
# ccuif HmIP-RF
# ccuname HmIP-FALMOT-C12 001B9F29B3D29D:6
# ccurolestate CLIMATECONTROL_FLOOR_TRANSCEIVER
# ccusubtype FALMOT-C12
# ccutype HmIP-FALMOT-C12
# eventCount 1830
# firmware 1.4.8
# readonly no
# receiver HmIP_BWTH_000CA0C9A3602D_9,HmIP_BWTH_000CA0C98E91CB_9,HmIP_BWTH_A_004160C9A92AF8_9,HmIP_BWTH_A_004160C9A92B03_9,HmIP_BWTH_A_004160C9A92A9E_9,HmIP_BWTH_A_004160C9A92AEB_9,HmIP_BWTH_000CA0C98E91B3_9
# sender HmIP_BWTH_000CA0C9A3602D_9,HmIP_BWTH_000CA0C98E91CB_9,HmIP_BWTH_A_004160C9A92AF8_9,HmIP_BWTH_A_004160C9A92B03_9,HmIP_BWTH_A_004160C9A92A9E_9,HmIP_BWTH_A_004160C9A92AEB_9,HmIP_BWTH_000CA0C98E91B3_9
# READINGS:
# 2024-08-06 11:30:39 DEW_POINT_ALARM false
# 2024-08-06 11:30:39 EMERGENCY_OPERATION false
# 2024-08-06 11:30:39 EXTERNAL_CLOCK false
# 2024-08-06 11:30:39 FROST_PROTECTION false
# 2024-08-06 11:30:39 HUMIDITY_LIMITER false
# 2024-07-26 11:29:23 IODev CCU3_Main
# 2024-08-06 11:30:41 LEVEL 97
# 2024-08-06 11:30:41 LEVEL_STATUS NORMAL
# 2024-08-06 11:30:39 VALVE_STATE ADAPTION_DONE
# 2024-08-06 11:30:41 activity alive
# 2024-08-06 11:30:42 devstate ok
# 2024-08-06 11:30:42 hmstate 97
# 2024-03-21 18:47:20 level 10
# 2024-03-21 18:47:20 pct 10
# 2024-08-06 11:30:41 rssidevice -68
# 2024-07-26 11:32:03 rssipeer N/A
# 2024-08-06 11:30:41 state 97
# 2024-07-26 11:32:03 voltage 0.0
# hmccu:
# channels 1
# detect 0
# devspec 001B9F29B3D29D:6
# nodefaults 1
# role 6:CLIMATECONTROL_FLOOR_TRANSCEIVER
# setDefaults 0
# cmdlist:
# get
# set
# control:
# dp:
# 0.CONFIG_PENDING:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 0.DATE_TIME_UNKNOWN:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 0.DUTY_CYCLE:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 0.HEATING_COOLING:
# VALUES:
# NVAL 1
# SVAL COOLING
# VAL 1
# 0.HUMIDITY_ALARM:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 0.INSTALL_TEST:
# VALUES:
# NVAL 1
# SVAL true
# VAL 1
# 0.OPERATING_VOLTAGE:
# VALUES:
# NVAL 0.000000
# SVAL 0.0
# VAL 0.000000
# 0.OPERATING_VOLTAGE_STATUS:
# VALUES:
# NVAL 0
# SVAL NORMAL
# VAL 0
# 0.RSSI_DEVICE:
# VALUES:
# NVAL -68
# ONVAL -69
# OSVAL -69
# OVAL -69
# SVAL -68
# VAL -68
# 0.RSSI_PEER:
# VALUES:
# NVAL N/A
# SVAL N/A
# VAL 0
# 0.TEMPERATURE_LIMITER:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 0.UNREACH:
# VALUES:
# NVAL 0
# SVAL alive
# VAL 0
# 0.UPDATE_PENDING:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 6.DEW_POINT_ALARM:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 6.EMERGENCY_OPERATION:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 6.EXTERNAL_CLOCK:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 6.FROST_PROTECTION:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 6.HUMIDITY_LIMITER:
# VALUES:
# NVAL 0
# SVAL false
# VAL 0
# 6.LEVEL:
# VALUES:
# NVAL 97
# ONVAL 91
# OSVAL 91
# OVAL 0.91
# SVAL 97
# VAL 0.97
# 6.LEVEL_STATUS:
# VALUES:
# NVAL 0
# SVAL NORMAL
# VAL 0
# 6.VALVE_STATE:
# VALUES:
# NVAL 4
# SVAL ADAPTION_DONE
# VAL 4
# roleChannels:
# CLIMATECONTROL_FLOOR_TRANSCEIVER 6
# roleCmds:
# get:
# set:
# state:
# chn 6
# dpt LEVEL
#
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 97 % - false
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:39 DEW_POINT_ALARM false
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:39 EMERGENCY_OPERATION false
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:39 EXTERNAL_CLOCK false
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:39 FROST_PROTECTION false
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:39 HUMIDITY_LIMITER false
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-07-26 11:29:23 IODev CCU3_Main
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:41 LEVEL 97
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:41 LEVEL_STATUS NORMAL
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:39 VALVE_STATE ADAPTION_DONE
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:41 activity alive
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:42 devstate ok
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:42 hmstate 97
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-03-21 18:47:20 level 10
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-03-21 18:47:20 pct 10
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:41 rssidevice -68
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-07-26 11:32:03 rssipeer N/A
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-08-06 11:30:41 state 97
setstate HmIP_FALMOT_C12_001B9F29B3D29D_6 2024-07-26 11:32:03 voltage 0.0
Man beachte hierbei das Stateformat: genau hier scheint es schief zu gehen. Allerdings sind die einzelnen Kanäle bereits seit Monaten genau so definiert und es hat ohne Probleme funktioniert. In den alten Logfiles sind keinerlei Einträge drin. Seit einem FHEM update letzte Woche kommt nun der Fehler.
Ich habe auch alle HmIP-FalMot Kanaäle den Wert des Level durchgeschaut und da stehen jeweils überall Zahlen drin (die Warnung beschwert sich ja über "isn't numeric").
ändere das mal ReadingsVal( $name, "LEVEL", 50 ) zu ReadingsNum( $name, "LEVEL", 50 ) wäre zumindest richtiger, da Du ja Zahlen ausliest.
Zitat von: Otto123 am 06 August 2024, 12:52:42... ReadingsNum( $name, "LEVEL", 50 ) ....
Cool, das kannte ich noch gar nicht. Mache ich gleich!