Grüezi Ihr Alle!
Der Beitrag http://forum.fhem.de/index.php/topic,39600.15.html (http://forum.fhem.de/index.php/topic,39600.15.html) hat mich dazu animiert, einen lang gehegten Wunsch noch einmal in Angriff zu nehmen. Leider ist der angegebene Link http://www.wetter.com/wetter_aktuell/wetterstationen/ (http://www.wetter.com/wetter_aktuell/wetterstationen/) nur für Deutschland gültig. :(
Nun versuche ich verzweifelt Wetterdaten einer nahe liegenden Station zu verarbeiten.
define wetter_regen_Lsne HTTPMOD http://www.weatherlink.com/user/meteolausanne 30
attr wetter_regen_Lsne userattr reading01Name reading01Regex
attr wetter_regen_Lsne group Wetter
attr wetter_regen_Lsne reading01Name Regen_pro_Stunde
attr wetter_regen_Lsne reading01Regex (Rain\<\/td\> \<td class="glamor_datatemp" nowrap\>)([\d\.]+)
attr wetter_regen_Lsne room Wetter
attr wetter_regen_Lsne showMatched 1
define FileLog_wetter_regen_Lsne FileLog ./log/Wetter1-%Y.log wetter_regen_Lsne
attr FileLog_wetter_regen_Lsne room File Logs
Ist der Regex Ausdruck in reading01Regex korrekt? Ich erhalte keinen Wert zurück (bei MATCHED_READINGS wird lediglich die Uhrzeit angezeigt).
Ich habe nach der Methode Trial and Error sehr viele Varianten versucht - but no luck.
Danke für einen Schubs in die richtige Richtung!!
Marcel
Der Textabschnitt, gegen welchen geprüft werden sollte ist:
Zitat<tr>
<td class="glamor_variable" style="padding-left: 40px;">Rain</td>
<td class="glamor_datatemp" nowrap>9.0mm</td>
<td class="glamor_detailtemp" nowrap>Seasonal Total 791.6mm</td>
</tr>
Wie ich in der Zwischenzeit herausgefunden habe, ist der reading01Regex Ausdruck im ersten Post fehlerhaft.
Folgende Versionen habe ich mit https://regex101.com/#pcre (https://regex101.com/#pcre)geprüft. Dort ergeben sie einen Match - in FHEM jedoch nicht!
# attr wetter_regen_Lsne reading01Regex Rain\<\/td\> \<td class="glamor_datatemp" nowrap\>([\d\.]+)
# attr wetter_regen_Lsne reading01Regex Rain<\/td> <td class="glamor_datatemp" nowrap>([\d\.]+)
# attr wetter_regen_Lsne reading01Regex Rain.{41}([\d\.]+)
# attr wetter_regen_Lsne reading01Regex Rain.........................................([\d\.]+)
attr wetter_regen_Lsne reading01Regex (?s)Rain.........................................([\d\.]+)
(Um zu zeigen, dass ich selber mein Möglichstes gebe - leider reicht dies nicht....)
Marcel
P.S. Habe natürlich die Zeilen erst auskommentiert, nachdem sie nicht das gewünschte Ergebnis gezeigt haben.
Da der Ausdruck über zwei Zeilen mit Tabulator geht, braucht es für diese Steuerzeichen auch Platzhalter.
Somit gibt es einen Match mit folgendem Ausdruck:
attr wetter_regen_Lsne reading01Regex (?s)Rain.{44}([\d\.]+)
Obwohl Platzhalter (für ZV,WR,Tab) vorhanden sind, ist "(?s)" zwingend nötig.
Marcel
P.S. Danke für das Forum --> das "ansprechen" von Anderen brachte mich aus dem Teufelskreis der Lösungssuche. Somit konnte ich an andere Lösungsansätze denken.