[Gelöst] Problem mit sprintf (Log)

Begonnen von DrCache, 17 Dezember 2017, 23:18:55

Vorheriges Thema - Nächstes Thema

DrCache

Hey Leute,

ich habe leider ein Problem im Log stehen und bekomme es nicht weg. Habe schon viel gelesen, weiß aber einfach nicht wo das Problem liegt.
Das Log meldet: "PERL WARNING: Redundant argument in sprintf at (eval 5766) line 1."

Das einzige sprintf, welches ich benutze ist dieses:
Zitatattr Heizen valueFormat { '/system/appliance/systemPressure' => '{ sprintf("%0.2f Bar",$VALUE/14,5038) }','/system/sensors/temperatures/supply_t1' => "%0.1f °C"  }
Es soll die PSI in Bar umrechnen und mit zwei Nachkommastellen anzeigen. Das funktioniert auch einwandfrei!

Das attr gehört zu:
Zitatdefine Heizen readingsGroup Heizung:<%sani_boiler_temp>,<Heizungsdruck>,/system/appliance/systemPressure Heizung:<%sani_supply_temp>,<Vorlauftemp>,/system/sensors/temperatures/supply_t1 Heizung:<%icoTempHeizung>,<Brenner>,/heatSources/flameStatus
attr Heizen eventMap on:An off:Aus
attr Heizen group Heizung
attr Heizen room Heizung
attr Heizen valueFormat { '/system/appliance/systemPressure' => '{ sprintf("%0.2f Bar",$VALUE/14,5038) }','/system/sensors/temperatures/supply_t1' => "%0.1f °C"  }
attr Heizen valueStyle style="text-align:right"

Sieht da jemand einen Fehler? Wie gesagt, es funktioniert so, macht mir aber den Log voll.
Gehört übrigens zum km200 einer Buderus Heizung.

Danke für eure Hilfe und Gruß
Manuel

MadMax-FHEM

Was mir auffällt:

sprintf("%0.2f Bar",$VALUE/14,5038)

könnte wegen dem KOMMA (14,5038) auch wie folgt interpretiert werden:

sprintf("%0.2f Bar",PARAMETER1,PARAMETER2)

[PARAMETER1=$VALUE/14   /    PARAMETER2=5038]

also ein Parameter mehr als notwendig... ;)

Evtl. dann so machen:

sprintf("%0.2f Bar",$VALUE/14.5038)

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)

DrCache

Oh man, die kleinsten Dinge übersieht man gerne.

Vielen Dank!

Freee84neu

#3
Hallo

habe meinen Raspberry neu aufgesetzt und seit dem hab ich ein problem mir einem sprintf, welches vorher nicht aufgetreten ist

mein "userReadings" ist dieses


Dauer_Letzer_Ladung {sprintf("%02d Std %02d Min",SYSMON_decode_time_diff((ReadingsVal($NAME,"pulseTimeIncrement",0))*1))},Dauer_Aller_Ladungen {sprintf("%d Tage %02d Std %02d Min",SYSMON_decode_time_diff((ReadingsVal($NAME,"pulseTimeOverall",0))*1))},Nicht_Geladen_Seit {sprintf("%d Tage %02d Std %02d Min",SYSMON_decode_time_diff((ReadingsVal($NAME,"pauseTimeIncrement",0))*1))}


in meinem log welches überläuft steht immer 
2020.02.23 23:55:00 1: PERL WARNING: Redundant argument in sprintf at (eval 14302) line 1.
2020.02.23 23:55:00 3: eval: {sprintf("%02d Std %02d Min",SYSMON_decode_time_diff((ReadingsVal($NAME,"pulseTimeIncrement",0))*1))}


ich blick da mal wieder nicht durch. Eventuell kann mir da einer einen Tipp geben ?

Freee84neu

#4
Hallo in der Hoffnung das mir da doch noch einer auf die Sprünge hilft hier ein list von Device


Internals:
   .lastTimeDauer_Aller_Ladungen 1582695060.76235
   .lastTimeDauer_Letzer_Ladung 1582695060.76235
   .lastTimeNicht_Geladen_Seit 1582695240.86193
   .lastTimecountsOverall 1582694940.65921
   .lastTimecountsPerDay 1582694940.65921
   .lastTimepauseTimeEdge 1582694940.65921
   .lastTimepauseTimeIncrement 1582695240.86193
   .lastTimepauseTimeOverall 1582695240.86193
   .lastTimepauseTimePerDay 1582695240.86193
   .lastTimepulseTimeEdge 1582694940.65921
   .lastTimepulseTimeIncrement 1582694940.65921
   .lastTimepulseTimeOverall 1582694940.65921
   .lastTimepulseTimePerDay 1582694940.65921
   .lastTimestate 1582694940.65921
   .lastTimetickDay 1582671600.70431
   .lastTimetickHour 1582693200.72423
   .lastTimetickMonth 1582647272.90834
   .lastTimetickUpdated 1582695240.86193
   .lastTimetickWeek 1582647272.90834
   .lastTimetickYear 1582647272.90834
   .lastTimevalue 1582694940.65921
   DEF        EScooter:ON EScooter:OFF
   FUUID      5d8e6973-f33f-af43-fc5d-7eed5298c6477bd7
   NAME       EScooterCounter
   NR         1184
   NTFY_ORDER 50-EScooterCounter
   STATE      Letze Ladedauer:<strong> 00 Std 01 Min </strong>
<br/>Geladen vor:<strong> 3 Tage 20 Std 52 Min </strong><br/
<br/>Ladedauer Ges.:<strong> 0 Tage 03 Std 17 Min </strong><br/>
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   .attraggr:
   .attreocr:
     .*
   .attrminint:
     .*:600
   .userReadings:
     HASH(0x4dd9c28)
     HASH(0x55ce988)
     HASH(0x57443e8)
   READINGS:
     2020-02-26 06:34:00   Dauer_Aller_Ladungen 0 Tage 03 Std 17 Min
     2020-02-26 06:33:00   Dauer_Letzer_Ladung 00 Std 01 Min
     2020-02-26 06:34:00   Nicht_Geladen_Seit 3 Tage 20 Std 52 Min
     2020-02-26 06:34:00   countsOverall   2
     2020-02-26 06:34:00   countsPerDay    0
     2020-02-26 06:34:00   pauseTimeEdge   86732
     2020-02-26 06:34:00   pauseTimeIncrement 334378
     2020-02-26 06:34:00   pauseTimeOverall 562824
     2020-02-26 06:34:00   pauseTimePerDay 23640
     2020-02-26 06:34:00   pulseTimeEdge   4147
     2020-02-26 06:34:00   pulseTimeIncrement 4147
     2020-02-26 06:34:00   pulseTimeOverall 11849
     2020-02-26 06:34:00   pulseTimePerDay 0
     2020-02-26 06:34:00   state           0
     2020-02-20 15:33:08   tickChanged     4
     2020-02-26 00:00:00   tickDay         2
     2020-02-26 06:00:00   tickHour        16
     2020-02-25 17:14:32   tickMonth       0
     2020-02-26 06:34:00   tickUpdated     568
     2020-02-25 17:14:32   tickWeek        0
     2020-02-25 17:14:32   tickYear        0
     2020-02-26 06:34:00   value           0
   helper:
     OFF_Regexp EScooter:OFF
     ON_Regexp  EScooter:ON
     calledByEvent
     changedTimestamp 2020-02-26 06:34:00
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1582693200
     value      -1
     cmdQueue:
Attributes:
   alias      Ladezeiten
   event-min-interval .*:600
   event-on-change-reading .*
   group      CarPort
   icon       time_timer
   interval   1
   room       3. Aussenbereich
   sortby     05
   stateFormat Letze Ladedauer:<strong> Dauer_Letzer_Ladung </strong>
<br/>Geladen vor:<strong> Nicht_Geladen_Seit </strong><br/
<br/>Ladedauer Ges.:<strong> Dauer_Aller_Ladungen </strong><br/>
   userReadings Dauer_Letzer_Ladung {sprintf("%02d Std %02d Min",SYSMON_decode_time_diff((ReadingsVal($NAME,"pulseTimeIncrement",0))*1))},Dauer_Aller_Ladungen {sprintf("%d Tage %02d Std %02d Min",SYSMON_decode_time_diff((ReadingsVal($NAME,"pulseTimeOverall",0))*1))},Nicht_Geladen_Seit {sprintf("%d Tage %02d Std %02d Min",SYSMON_decode_time_diff((ReadingsVal($NAME,"pauseTimeIncrement",0))*1))}


Ich weiß nicht was er mit redundant hat, das ist doch nicht doppelt