Wetterdaten sprintf-Fehler

Begonnen von MrTom, 17 Januar 2015, 19:12:00

Vorheriges Thema - Nächstes Thema

MrTom

Hallo zusammen

ich beziehe aktuelle Daten meiner Wetterstation über Meteohub per HTTPMOD:
#########################################################################
## Wetterstation Sensoren Aussen
#########################################################################
define WS_Aussen HTTPMOD http://meteohub.fritz.box/meteolog.cgi?type=xml&quotes=1&mode=data&quotes=1&sensor=th0 30
attr WS_Aussen userattr icon readingsName1 readingsName2 readingsRegex1 readingsRegex2 requestHeader stateFormat
attr WS_Aussen alias Aussenwerte
attr WS_Aussen group Vantage
attr WS_Aussen icon temp_outside
attr WS_Aussen readingsName1 Temperatur
attr WS_Aussen readingsName2 Feuchtigkeit
attr WS_Aussen readingsRegex1 temp="([\-\d\.]+)
attr WS_Aussen readingsRegex2 hum="([\d\.]+)
attr WS_Aussen requestHeader Content-Type: application/json
attr WS_Aussen room Wetter
attr WS_Aussen stateFormat {sprintf("Temperatur %.1f C, Feuchtigkeit %u %", ReadingsVal($name,"Temperatur",0), ReadingsVal($name,"Feuchtigkeit",0))}


Dabei hab ich nun hinbekommen, dass auch negative Temperaturen angezeigt werden.

Nun bekomme ich noch folgende Fehlermeldung bei jedem Read:
2015.01.17 19:11:25 1: PERL WARNING: Missing argument in sprintf at (eval 2705) line 1.
2015.01.17 19:11:25 1: PERL WARNING: Invalid conversion in sprintf: end of string at (eval 2705) line 1.
2015.01.17 19:11:25 1: PERL WARNING: Missing argument in sprintf at (eval 2707) line 1.
2015.01.17 19:11:25 3: eval: {my $t = ReadingsVal("WS_Aussen", "Feuchtigkeit", 99); fhem("set XX_Aussenfeuchtigkeit ".$t)}
2015.01.17 19:11:25 1: PERL WARNING: Invalid conversion in sprintf: end of string at (eval 2707) line 1.
2015.01.17 19:11:25 3: eval: {my $t = ReadingsVal("WS_Aussen", "Feuchtigkeit", 99); fhem("set XX_Aussenfeuchtigkeit ".$t)}
2015.01.17 19:11:25 1: PERL WARNING: Missing argument in sprintf at (eval 2709) line 1.
2015.01.17 19:11:25 3: eval: {my $t = ReadingsVal("WS_Aussen", "Feuchtigkeit", 99); fhem("set XX_Aussenfeuchtigkeit ".$t)}
2015.01.17 19:11:25 1: PERL WARNING: Invalid conversion in sprintf: end of string at (eval 2709) line 1.
2015.01.17 19:11:25 3: eval: {my $t = ReadingsVal("WS_Aussen", "Feuchtigkeit", 99); fhem("set XX_Aussenfeuchtigkeit ".$t)}


Wo muss ich da nun noch schrauben?

Danke
Tom
RPi2: FHEM 5.8 mit Jeelink (ATTiny) und AliRF (PIR's)
KNX/EIB: alix3d3 als IP-GW, div. Sensoren und Aktoren (Licht, Jalousien und Markisen)
Mysensors: Temp/Hum/Lux-Sensoren, PIR's, Türkontakte,
verschiedene RGB-Aktoren, Vantage 2, Fritzbox, Vu+ Duo

nesges

Du hast dreimal % im sprintf-String, aber nur zwei Werte-Parameter. Ich nehme an, das dritte soll ein "echtes" Prozentzeichen sein. In dem Fall: %%

Siehe auch http://perldoc.perl.org/functions/sprintf.html