Regex / Wetter / wunderground.com / immer selber Wert

Begonnen von Shadow, 04 Mai 2016, 10:44:51

Vorheriges Thema - Nächstes Thema

Shadow

Guten Tag!

Ich habe von wunderground die XML laut Anleitung angebunden und auf meine Bedürfnisse angepasst.
Das Problem ist jetzt allerdings das er aus der XLM immer nur den ersten Tageswert ausließt und damit das Log füllt.
Das ist natürlich nicht gerade Zweckmäßig  ;D

Ich würde gern alle Daten Chronologisch erfassen.

Vermutlich liegt der Fehler im Log.

Hier die Def:
define wetter_blomberg HTTPMOD http://api.wunderground.com/weatherstation/WXDailyHistory.asp?ID=INRWBLOM2&format=XML 600
attr wetter_blomberg userattr readingsName_dewpointTemperature readingsName_humidity readingsName_pressure readingsName_solarRadiation readingsName_solarUV readingsName_temperature readingsName_windDegrees readingsName_windDirection readingsName_windGust readingsName_windSpeed readingsRegex_cloudiness readingsRegex_date readingsRegex_dewpointTemperature readingsRegex_fog readingsRegex_heatindex readingsRegex_humidity readingsRegex_pressure readingsRegex_solarRadiation readingsRegex_solarUV readingsRegex_temperature readingsRegex_time readingsRegex_windChill readingsRegex_windDegrees readingsRegex_windDirection readingsRegex_windGust readingsRegex_windSpeed

attr wetter_blomberg readingsName_dewpointTemperature dewpointTemperature
attr wetter_blomberg readingsName_humidity humidity
attr wetter_blomberg readingsName_pressure pressure
attr wetter_blomberg readingsName_solarRadiation solarRadiation
attr wetter_blomberg readingsName_solarUV solarUV
attr wetter_blomberg readingsName_temperature temperature
attr wetter_blomberg readingsName_windDegrees windDegrees
attr wetter_blomberg readingsName_windDirection windDirection
attr wetter_blomberg readingsName_windGust windGust
attr wetter_blomberg readingsName_windSpeed windSpeed
attr wetter_blomberg readingsRegex_dewpointTemperature <dewpoint_c>([\d\.]+)
attr wetter_blomberg readingsRegex_humidity <relative_humidity>([\d\.]+)
attr wetter_blomberg readingsRegex_pressure <pressure_mb>([\d\.]+)
attr wetter_blomberg readingsRegex_solarRadiation <solar_radiation>([\d\.]+)
attr wetter_blomberg readingsRegex_solarUV <UV>([\d\.]+)
attr wetter_blomberg readingsRegex_temperature <temp_c>([\d\.]+)
attr wetter_blomberg readingsRegex_windDegrees <wind_degrees>([\d\.]+)
attr wetter_blomberg readingsRegex_windDirection <wind_dir>([\d\.]+)
attr wetter_blomberg readingsRegex_windGust <wind_gust_mph>([\d\.]+)
attr wetter_blomberg readingsRegex_windSpeed <wind_mph>([\d\.]+)
attr wetter_blomberg room Wettervorhersage

define FileLog_wetter_blomberg FileLog ./log/wetter_blomberg-%Y-%m.log wetter_blomberg
attr FileLog_wetter_blomberg logtype text
attr FileLog_wetter_blomberg room Wettervorhersage

define wetter_blomberg_Temp_Hum_SVG SVG wetter_blomberg:WetterTempHum:CURRENT
attr wetter_blomberg_Temp_Hum_SVG room Wettervorhersage
define wetter_WetterWindWindrichtung_SVG SVG wetter_blomberg:WetterWindWindrichtung:CURRENT
attr wetter_WetterWindWindrichtung_SVG room Wettervorhersage


In der gPlot steht etwas von deiner Datenbank. Vermutlich hat es etwas mit meinem Fehler Zutun.

#DbLog <SPEC1>:windSpeed::
#DbLog <SPEC1>:windGust::
#DbLog <SPEC1>:windDegrees::


Außerdem wird bei meiner Station auch die Windrichtung im String angegeben. Die erfasst er aber leider nicht mit:
readingsRegex_windDirection

<wind_dir>([\d\.]+)

In der XML steht aber <wind_dir>North</wind_dir>
System:
RPi 1 (FHEM) + COC Modul (auf GPios) + Antenne, 6 x HM-LC-Dim1T-FM (Dim Licht), 6 x HM-LC-Bl1PBU-FM (Rolladen), 7 x HM-CC-VD (Heizkörer), 5 x HM-CC-TC (Temperatur), 6 x HM-SEC-SC-2 (Fenster), 2 x HM-PB-6-WM55 (Taster)

frank

#1
ZitatDas Problem ist jetzt allerdings das er aus der XLM immer nur den ersten Tageswert ausließt und damit das Log füllt.
mit event-on-change .* kannst du erstmal gleiche werte vom loggen ausschliessen, da keine events erzeugt werden.
das problem mit dem "ersten tageswert" verstehe ich nicht. ist mit deinen infos nicht zu durchschauen.

"North" besteht ja nicht aus ziffern. also zb:
<wind_dir>([\w]+)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Shadow

#2
Entschuldigung. Da hab ich mich nicht gut ausgedrückt.

Also aus dieser URL lese ich ja die Daten aus
http://api.wunderground.com/weatherstation/WXDailyHistory.asp?ID=INRWBLOM2&format=XML

Das ist quasi zur Vereinfachung wie folgt aufgebaut:

Abruf der Tabelle um 1 Uhr:



0 Uhr 15 Grad
1 Uhr 20 Grad

Abruf der Tabelle um 3 Uhr



0 Uhr 15 Grad
1 Uhr 20 Grad

2 Uhr 25 Grad
3 Uhr 30 Grad

Die XLM Tabelle wird quasi immer von unten mit den Aktuellen Werten befüllt. Mit dem Command, wie es in der Anleitung, steht rufe ich ja immer nur die erste Zeile ab. Deswegen ließt er immer nur 15 Grad aus und schreibt dieses ins Log. Ergibt dann im SVG Plot natürlich nur eine Gerade Linie ::).


Noch eine weitere Verständnissfrage zu wunderground.com

So sehen die Daten ja auf der Webseite aus:
https://www.wunderground.com/personal-weather-station/dashboard?ID=INRWBLOM2#history

Die Daten für die Werte auf der Webseite bekommt es ja von dieser Wetterstation (XML):
http://api.wunderground.com/weatherstation/WXDailyHistory.asp?ID=INRWBLOM2&format=XML

Leider finde ich in der XML nicht den UV wert. Er ist zwar aufgelistet aber nicht gesetzt.
<solar_radiation/>
<UV/>

Die Webseite zeigt aber trotzdem (derzeit) den Faktor 7 an. Nehme an das die Webseite einen Deutschland weiten Wert nimmt oder ihn anders woher bezieht. Liege ich damit richtig?
Die UV-Werte sind auf allen Wetterstationen. Sie werden wohl Zentral eingespeißt.
System:
RPi 1 (FHEM) + COC Modul (auf GPios) + Antenne, 6 x HM-LC-Dim1T-FM (Dim Licht), 6 x HM-LC-Bl1PBU-FM (Rolladen), 7 x HM-CC-VD (Heizkörer), 5 x HM-CC-TC (Temperatur), 6 x HM-SEC-SC-2 (Fenster), 2 x HM-PB-6-WM55 (Taster)

Prof. Dr. Peter Henning

Bitte mal unter XPath recherchieren, damit geht das ganz einfach.

LG

pah

Shadow

Habe versucht mir xPath anzueignen. Leider werde ich daraus nicht ganz schlau.

Habe es jetzt mit

attr wetter_blomberg reading01Name solarRadiation
attr wetter_blomberg reading01Regex <solar_radiation>([\d\.]+[last()])
attr wetter_blomberg reading02Name humidity
attr wetter_blomberg reading02Regex <relative_humidity>([\d\.]+[last()])
attr wetter_blomberg reading03Name windGust
attr wetter_blomberg reading03Regex <wind_gust_mph>([\d\.]+[last()])
attr wetter_blomberg reading04Name pressure
attr wetter_blomberg reading04Regex <pressure_mb>([\d\.]+[last()])
attr wetter_blomberg reading05Name windDegrees
attr wetter_blomberg reading05Regex <wind_degrees>([\d\.]+[last()])
attr wetter_blomberg reading06Name windSpeed
attr wetter_blomberg reading06Regex <wind_mph>([\d\.]+[last()])
attr wetter_blomberg reading07Name temperature
attr wetter_blomberg reading07Regex <temp_c>([\d\.]+[last()])
attr wetter_blomberg reading08Name solarUV
attr wetter_blomberg reading08Regex <UV>([\d\.]+[last()])
attr wetter_blomberg reading09Name dewpointTemperature
attr wetter_blomberg reading09Regex <dewpoint_c>([\d\.]+[last()])
attr wetter_blomberg reading10Name windDirection
attr wetter_blomberg reading10Regex <wind_dir>([\w\.]+[last()])


probiert. Also mit [last()]. Dieses Funktioniert allerdings NUR bei windDirection. Alle anderen Werte bleiben leider gleich.
System:
RPi 1 (FHEM) + COC Modul (auf GPios) + Antenne, 6 x HM-LC-Dim1T-FM (Dim Licht), 6 x HM-LC-Bl1PBU-FM (Rolladen), 7 x HM-CC-VD (Heizkörer), 5 x HM-CC-TC (Temperatur), 6 x HM-SEC-SC-2 (Fenster), 2 x HM-PB-6-WM55 (Taster)