Hauptmenü

HTTPmod % entfernen

Begonnen von stefan-dd, 29 Januar 2017, 14:55:06

Vorheriges Thema - Nächstes Thema

stefan-dd

Hallo,
ich lese mit HTTPmod Wetterdaten aus.
Bei der Luftfeuchtigkeit erhalte ich immer einen Wert mit % Zeichen. Dieses % Zeichen bereitet mir immer wieder Fehlereinträge.
Wie kann ich das % Zeichen schon beim auslesen entfernen, oder nicht mit auslesen?
defmod Wetter_DD_WG_akt HTTPMOD http://api.wunderground.com/api/xxxxxxxxxxx/geolookup/conditions/lang:DL/q/DL/birkigt.xml 900
attr Wetter_DD_WG_akt reading02Name Luftfeuchte
attr Wetter_DD_WG_akt reading02XPath-Strict //relative_humidity/text()


Man musste definieren können das nur Zahlen von 0-100 gelesen werden.

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

stefan-dd

Danke, aber wie verwende ich "\d" ?
So z.B. ..../text(\d)? Das funktioniert aber nicht.
Der Link hilft mir als Anfänger leider auch nicht weiter.

Otto123

Sorry ich kann bei dem Modul bisher auch nur abschreiben. In meinem DEF für Spritpreise steht folgendes drin:
attr TankeJetRueckmarsdorfer reading03Regex SpritsortenController[^0-9]+([0-9,]+)[^0-9]+Super E5


Wenn ich das auf Deines übertrage, würde ich denken:

attr Wetter_DD_WG_akt reading02Regex relative_humidity[\d]

Aber das ist nur geraten. Einfach am Besten hier nachlesen und probieren, da sind genug Beispiele drin.
https://fhem.de/commandref.html#HTTPMOD

Gruß Otto

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

stefan-dd

Es will nicht. Sobald ich etwas ändere bekomme ich keine Daten mehr.
Nur der Originalzustand will funktionieren.
//relative_humidity/text()
Es ist sicher nur eine Frage der Formatierung. In der Comandoref habe ich leider auch nichts passendes gefunden.
Funktioniert alles nicht:
//relative_humidity/text([\d])
//relative_humidity/([\d])
//relative_humidity([\d])
relative_humidity([\d])

Otto123

Du hast schon verstanden, dass es ein zusätzliches Attribute ist und nicht deines einfach ersetzt?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

stefan-dd

Da lag ich mit meinen Versuchen definitiv falsch.
Müssten es dann mit folgenden attr funktionieren? So will es aber leider auch nicht.
attr Wetter_DD_WG_akt reading02Name humidity
attr Wetter_DD_WG_akt reading02Regex relative_humidity[\d]
attr Wetter_DD_WG_akt reading02XPath-Strict //relative_humidity/text()


stefan-dd

#7
So funktioniert es:
reading02Regex <relative_humidity>([\d\.]+)

Mein Problem ist aber noch immer nicht gelöst. Die Log wird voll geschrieben mit:
2017.01.30 20:28:10 1: PERL WARNING: Argument "69%" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 2018.
Auch in der logDB erscheint noch immer das %
2017-01-30 20:18:17|Wetter_DD_WG_akt|HTTPMOD|humidity: 69|humidity|69|%
Wie kann ich die Meldung weg bekommen? Kann man in der Plot Datei noch was verbessern?
#logdb Wetter_DD_WG_akt:humidity