FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: stefan-dd am 29 Januar 2017, 14:55:06

Titel: HTTPmod % entfernen
Beitrag von: stefan-dd am 29 Januar 2017, 14:55:06
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.
Titel: Antw:HTTPmod % entfernen
Beitrag von: Otto123 am 29 Januar 2017, 18:10:02
Hi,

das geht eventuell mit \d siehe -> https://wiki.selfhtml.org/wiki/Perl/Regul%C3%A4re_Ausdr%C3%BCcke

Gruß Otto
Titel: Antw:HTTPmod % entfernen
Beitrag von: stefan-dd am 29 Januar 2017, 18:50:02
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.
Titel: Antw:HTTPmod % entfernen
Beitrag von: Otto123 am 29 Januar 2017, 19:42:05
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

Titel: Antw:HTTPmod % entfernen
Beitrag von: stefan-dd am 29 Januar 2017, 21:04:08
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])
Titel: Antw:HTTPmod % entfernen
Beitrag von: Otto123 am 29 Januar 2017, 21:17:23
Du hast schon verstanden, dass es ein zusätzliches Attribute ist und nicht deines einfach ersetzt?
Titel: Antw:HTTPmod % entfernen
Beitrag von: stefan-dd am 30 Januar 2017, 18:09:08
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()

Titel: Antw:HTTPmod % entfernen
Beitrag von: stefan-dd am 30 Januar 2017, 19:59:09
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