[Erledigt] RegEx für Weather Underground Beispiel: Temperaturen unter Null

Begonnen von ph1959de, 07 Januar 2017, 12:16:10

Vorheriges Thema - Nächstes Thema

ph1959de

Ich habe per Mail den folgenden Kommentar bekommen:
Zitat von: Maik H.mir ist aufgefallen das ein Wiki Eintrag fehlerhaft ist. Leider weiß ich nicht wie ich den Author der Seite kontaktieren kann daher versuche ich dieses über diesen Weg.

Auf der Seite https://wiki.fhem.de/wiki/Wetter_und_Wettervorhersagen wird Beschrieben wie mittels HTTPMOD Wetter Daten ins FHEM geladen werden können.

Im Beispiel für Wetter von Weather Underground stimmen die RegEx Expression nicht. Diese reagieren nur auf einen Positiven Wert.

Zum Beispiel:

attr wetter_prenzelberg readingsRegex_temperature <temp_c>([\d\.]+)

richtig wäre hier:

attr wetter_prenzelberg readingsRegex_temperature <temp_c>(\+|-?[\d\.]+)

Vielen Dank für die Zeit.

Die gleiche Änderung ist meiner Ansicht nach auch für alle anderen "_c" Readings erforderlich.

Ich habe die vorgeschlagene Änderung jetzt für

  • dewpoint_c
  • heat_index_c
  • temp_c
  • windchill_c
gemacht. Für dewpoint und temp konnte ich die Änderung an meiner eigenen Definition verifizieren. Für heat_index und windchill liefert die von mir abgefragte Wetterstation leider keine Werte.

Falls also jemand die zwei verifizieren kann - gern hier kommentieren. Ebenso, wenn ich noch einen potenziell negativen Wert übersehen haben sollte.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Markus Bloch

Warum nicht eher:

(-?[\d\.]+)

Die aktuelle Regexp bedeutet:

(\+|-?[\d\.]+)

\+

oder

-?[\d\.]+


Die Pipe ver-ODER't den gesamten Ausdruck. Ich glaube, dass + als einzelner Wert aber nicht vorkommen wird. Der zweite Ausdruck heißt eine Ganz-/Fließkommazahl welcher optional ein Minus vorangestellt sein kann.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

ph1959de

Hallo Markus,

ich bin nicht soo der Regexp(erte) und hatte den ursprünglichen Kommentar nur getestet und dann übernommen.

Mit Deinen Anregungen habe ich mir die Sache mal etwas genauer angeschaut (und hoffentlich hinreichend verstanden) - möchte aber doch die jetzt gewählte RegExp so lassen. Lt. Regex-Tester regex101 unterscheiden sich beide Versionen vom Aufwand her wohl nur wenig (34 steps oder 36 steps), aber die ausführlichere Version funktioniert dafür auch noch zuverlässig, wenn wirklich mal positive Zahlen mit einem vorangestellten "+" daherkommen.

Da sich der ursprüngliche Tippgeber hier bisher nicht gemeldet hat, setze ich den Thread mal selbst auf "Erledigt" - Einspruch ist selbstverständlich weiterhin jederzeit möglich.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"