FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Dennis D. am 18 Juni 2013, 17:57:08

Titel: Argument "0 %" isn't numeric in sprintf
Beitrag von: Dennis D. am 18 Juni 2013, 17:57:08
Hallo zusammen,

habe da ein kleines Problem, welches mir das Log zumüllt. Damit ich mehrere Icons für den Status meiner Rollläden verenden kann, habe ich den Geräte-Status mit "stateFormat" formatiert. Dadurch bekomm ich aber immer die im Betreff genannte Fehlermeldung. Hat jemand eine Idee?


define WZ_Jalousie CUL_HM 1B42D3
attr WZ_Jalousie devStateIcon rauf:jal_0 viertel:jal_25 halb:jal_50 dreiviertel:jal_75 Film:jal_m Sonnenschutz:jal_s runter:jal_100
attr WZ_Jalousie eventMap 100:rauf 82:viertel 65:halb 44:dreiviertel 36:Film 29:Sonnenschutz 1:runter
attr WZ_Jalousie model HM-LC-Bl1PBU-FM
attr WZ_Jalousie stateFormat {sprintf("%.0f",ReadingsVal("WZ_Jalousie","level",0))}
attr WZ_Jalousie webCmd rauf:viertel:halb:dreiviertel:Film:Sonnenschutz:runter:stop:statusRequest


Gruß,
Dennis
Titel: Aw: Argument "0 %" isn't numeric in sprintf
Beitrag von: rudolfkoenig am 18 Juni 2013, 18:12:58
attr WZ_Jalousie stateFormat {sprintf("%.0f",int(ReadingsVal("WZ_Jalousie","level",0)))}
Titel: Aw: Argument "0 %" isn't numeric in sprintf
Beitrag von: Dennis D. am 18 Juni 2013, 18:24:53
WOW! Danke für die schnelle Rückmeldung. Habe es umgesetzt. Nun bekomme ich folgende Meldungen:


2013.06.18 18:22:51 2: CUL_HM set WZ_Jalousie 1
Argument "set_1" isn't numeric in int at (eval 284) line 1.
Argument "28 %" isn't numeric in int at (eval 285) line 1.
Argument "1 %" isn't numeric in int at (eval 289) line 1.


Gruß,
Dennis
Titel: Aw: Argument "0 %" isn't numeric in sprintf
Beitrag von: rudolfkoenig am 18 Juni 2013, 19:43:04
Ok, das war ein Schnellschuss.

{ no warnings 'numeric';; sprintf("%.0f", "1 %") }

funktioniert, aus "set_1" wird halt dann 0
Titel: Aw: Argument "0 %" isn't numeric in sprintf
Beitrag von: Dennis D. am 18 Juni 2013, 20:05:04
Sauber! So funktioniert es:

{no warnings 'numeric' ;; sprintf("%.0f",int(ReadingsVal("WZ_Jalousie","level", 0)))}

Vielen Dank für die schnelle Hilfe!

Gruß und schönen Abend noch,

Dennis