[gelöst] Wunderworld Daten werden nicht aktualisiert

Begonnen von Goofy180173, 25 Juni 2018, 23:19:28

Vorheriges Thema - Nächstes Thema

Otto123

Du hast kein Problem die Daten vom Webserver zu holen, Du hast lediglich ein Anzeige Problem!?

Und wie gesagt, Deine Definition ist fehlerhaft! Aber das kam ja schon zweimal. Hast Du das korrigiert!?
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

Goofy180173

Ja, ich hab's schon korrigiert.
Die Daten werden korrekt ausgelesen und dargestellt.
Sie werden lediglich nicht automatisch nach dem eingestellten Intervall aktualisiert.
Ich kann auch nirgends sehen ob die Daten nach der eingestellten Zeit nochmals abgeholt werden.
Es gibt dazu weder einen Eintrag im Eventlog noch im Logfile.
Ich glaub einfach, dass die Daten nicht neu geholt und daher auch nicht aktualisiert werden.

CoolTux

Zitat von: CoolTux am 26 Juni 2018, 14:59:02
mach mal ein list von deinem httpmod device

list Wetterstation


Und änder das ganze mal auf eine stunde update.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Goofy180173

Kann ich erst wenn ich zuhause bin.
Hab ein update und shutdown restart gemacht.
Leider hat sich fhem nicht mehr gestartet.
Aber ich poste das Ergebnis.

Goofy180173

Das ist die Ausgabe von list Wetterstation

Internals:
   BUSY       0
   CHANGED   
   DEF        http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2 60
   Interval   60
   LASTSEND   1530038328.66323
   MainURL    http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2
   ModuleVersion 3.4.4 - 5.5.2018
   NAME       Wetterstation
   NR         42
   STATE      Temperatur 14.1 °C Windgeschwindigkeit:0.0 km/h Sonneneinstrahlung: 4
   TRIGGERTIME 1530038388.66211
   TRIGGERTIME_FMT 2018-06-26 20:39:48
   TYPE       HTTPMOD
   addr       http://api.wunderground.com:80
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2
   header     
   host       api.wunderground.com
   httpheader HTTP/1.0 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://www.wunderground.com
Content-Encoding: gzip
Content-Type: text/xml
Server: Apache/2.2.15 (CentOS)
X-Cacheable: YES
X-CreationTime: 0.007
X-Varnish: 1156623095
Content-Length: 914
Expires: Tue, 26 Jun 2018 18:38:48 GMT
Cache-Control: max-age=0, no-cache
Pragma: no-cache
Date: Tue, 26 Jun 2018 18:38:48 GMT
Connection: close
Vary: Accept-Encoding
   httpversion 1.0
   hu_blocking 0
   hu_filecount 72
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2
   protocol   http
   redirects  0
   timeout    2
   url        http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2
   value      0
   QUEUE:
   READINGS:
     2018-06-26 20:38:48   Luftdruck       1026.3
     2018-06-26 20:38:48   Luftfreuchtigkeit 94
     2018-06-26 20:38:48   Sonneneinstrahlung 4
     2018-06-26 20:38:48   Temperatur      14.1
     2018-06-26 20:38:48   Windgeschwindigkeitkmh 2.1
     2018-06-26 20:38:48   Windgeschwindigkeitmph 1.3
     2018-06-26 20:38:48   Windrichtung    13
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2
     value      0
   defptr:
     readingBase:
       Luftdruck  reading
       Luftfreuchtigkeit reading
       Sonneneinstrahlung reading
       Temperatur reading
       Windgeschwindigkeitmph reading
       Windrichtung reading
     readingNum:
       Luftdruck  01
       Luftfreuchtigkeit 02
       Sonneneinstrahlung 03
       Temperatur 04
       Windgeschwindigkeitmph 05
       Windrichtung 06
     readingOutdated:
     requestReadings:
       update:
         Luftdruck  reading 01
         Luftfreuchtigkeit reading 02
         Sonneneinstrahlung reading 03
         Temperatur reading 04
         Windgeschwindigkeitmph reading 05
         Windrichtung reading 06
   sslargs:
Attributes:
   event-on-change-reading Temperatur Luftfreuchtigkeit Windrichtung Sonneneinstrahlung Luftdruck Windgeschwindigkeitmph
   reading01Name Luftdruck
   reading01Regex <pressure_mb>([\d\.]+)
   reading02Name Luftfreuchtigkeit
   reading02Regex <relative_humidity>([\d\.]+)
   reading03Name Sonneneinstrahlung
   reading03Regex <solar_radiation>([\d]+)
   reading04Name Temperatur
   reading04Regex <temp_c>([\d\.]+)
   reading05Name Windgeschwindigkeitmph
   reading05Regex <wind_mph>([\d\.]+)
   reading06Name Windrichtung
   reading06Regex <wind_degrees>([\d]+)
   room       Wohnzimmer
   stateFormat {sprintf("Temperatur %.1f °C Windgeschwindigkeit:%.1f km/h Sonneneinstrahlung: %d", ReadingsVal($name,"Temperatur",0) ,ReadingsVal($name,"Windgeschwindigkeit",0), ReadingsVal($name,"Sonneneinstrahlung",0))}
   userReadings Windgeschwindigkeitkmh {sprintf("%.1f",(ReadingsVal($name,"Windgeschwindigkeitmph",0)*1.609344))}
   userattr   event-on-change-reading reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex

Wzut

Zitat von: Goofy180173 am 26 Juni 2018, 20:40:30

   event-on-change-reading Temperatur Luftfreuchtigkeit Windrichtung Sonneneinstrahlung Luftdruck Windgeschwindigkeitmph

aber laut command.ref :
Zitatevent-on-change-reading
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings".
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Goofy180173

Ich hab jetzt nochmal den Code angepasst von dort wo ich ihn geklaut hab

define wetter_mitterau HTTPMOD http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2 60
attr wetter_mitterau event-on-change-reading dewpointTemperature,humidity,pressure,solarRadiation,solarUV,temperature,windDegrees,windGust,windSpeed,windSpeedkmh
attr wetter_mitterau readingsName_dewpointTemperature dewpointTemperature
attr wetter_mitterau readingsName_humidity humidity
attr wetter_mitterau readingsName_pressure pressure
attr wetter_mitterau readingsName_solarRadiation solarRadiation
attr wetter_mitterau readingsName_solarUV solarUV
attr wetter_mitterau readingsName_temperature temperature
attr wetter_mitterau readingsName_windDegrees windDegrees
attr wetter_mitterau readingsName_windGust windGust
attr wetter_mitterau readingsName_windSpeed windSpeed
attr wetter_mitterau readingsRegex_dewpointTemperature <dewpoint_c>([\d\.]+)
attr wetter_mitterau readingsRegex_humidity <relative_humidity>([\d\.]+)
attr wetter_mitterau readingsRegex_pressure <pressure_mb>([\d\.]+)
attr wetter_mitterau readingsRegex_solarRadiation <solar_radiation>([\d\.]+)
attr wetter_mitterau readingsRegex_solarUV <UV>([\d\.]+)
attr wetter_mitterau readingsRegex_temperature <temp_c>(\+|-?[\d\.]+)
attr wetter_mitterau readingsRegex_windDegrees <wind_degrees>([\d\.]+)
attr wetter_mitterau readingsRegex_windGust <wind_gust_mph>([\d\.]+)
attr wetter_mitterau readingsRegex_windSpeed <wind_mph>([\d\.]+)
attr wetter_mitterau stateFormat Temperatur: temperature°C Luftfeuchtigkeit: humidity% Taupunkt: dewpointTemperature°C Windgeschwindikeit: windSpeedkmh km/h
attr wetter_mitterau userReadings windSpeedkmh {sprintf("%.1f",(ReadingsVal($name,"windSpeed",0)*1.609344))}

So funktioniert alles
Die Werte werden alle 60 Sekunden geholt und wenn sich was ändert aktualisiert
Ich wollte halt das ganze in Deutsch und die Warnings im Log weghaben
the attribute readingsRegex_windGust should no longer be used. Please use reading01Regex
Werd versuchen das ganze schrittweise umzubauen und schauen woran es liebt.
Vielleicht auch einfach an Groß und Kleinschreibung

Goofy180173

Danke an alle die mir geholfen haben.
Ich werde es jetzt schrittweise umbauen und das nächste mal genauer schauen wenn ich etwas nehme und verändere.
Es waren die Beistriche :(

Goofy180173

#23
Für alle die auch Daten von Wunderground lesen wollen.
Hier eine funktionierende Wetterstation

#Wetterstation
define Wetterstation HTTPMOD http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2 600
attr Wetterstation event-on-change-reading Temperatur,Luftfreuchtigkeit,Windrichtung,Sonneneinstrahlung,Luftdruck,Windgeschwindigkeitmph,Windgeschwindigkeitkmh, Taupunkt
attr Wetterstation reading01Name Luftdruck
attr Wetterstation reading01Regex <pressure_mb>([\d\.]+)
attr Wetterstation reading02Name Luftfreuchtigkeit
attr Wetterstation reading02Regex <relative_humidity>([\d\.]+)
attr Wetterstation reading03Name Sonneneinstrahlung
attr Wetterstation reading03Regex <solar_radiation>([\d]+)
attr Wetterstation reading04Name Temperatur
attr Wetterstation reading04Regex <temp_c>([\d\.]+)
attr Wetterstation reading05Name Windgeschwindigkeitmph
attr Wetterstation reading05Regex <wind_mph>([\d\.]+)
attr Wetterstation reading06Name Windrichtung
attr Wetterstation reading06Regex <wind_degrees>([\d]+)
attr Wetterstation reading07Name Taupunkt
attr Wetterstation reading07Regex <dewpoint_c>([[\d\.]+)
attr Wetterstation showBody 1
attr Wetterstation stateFormat {sprintf("Temperatur %.1f °C Windgeschwindigkeit:%.1f km/h Sonneneinstrahlung: %d ", ReadingsVal($name,"Temperatur",0) ,ReadingsVal($name,"Windgeschwindigkeit",0), ReadingsVal($name,"Sonneneinstrahlung",0))}
attr Wetterstation userReadings Windgeschwindigkeitkmh {sprintf("%.1f",(ReadingsVal($name,"Windgeschwindigkeitmph",0)*1.609344))}

Otto123

Moin,

ich sage es gern nochmal: Das Wetter ändert sich nicht alle 60 sec!
Du belastest mit dieser Abfragerate völlig unnötig dein System, das Internet, die Webseite des Providers.

Du postest das als Beispiel und jeder, der in diesem Moment ohne nachzudenken per Copy&Paste Deinen Code mal schnell probiert, macht mit.

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

Goofy180173

Ich hab die Zeit in meinem letzten Post auf 600 gestellt.
Das sollte jede Rollosteuerung auch reichen :)

Otto123

#26
 :D
Danke

ich habe gerade gesehen, unsere Freunde von MeinTechblog haben in ihrem Code sogar 30 sec drin stehen.  :-X
Ich habe mal noch einen Kommentar dazu und zum Fehlerhaften Code hinterlassen.

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

frank

mit "set upgradeAttributes" hätte man die "umstellung" auch per knopfdruck machen können.  ;)

ZitatSet-Commands
As defined by the attributes set.*Name
If you set the attribute enableControlSet to 1, the following additional built in set commands are available:
interval
set new interval time in seconds and restart the timer
reread
request the defined URL and try to parse it just like the automatic update would do it every Interval seconds without modifying the running timer.
stop
stop interval timer.
start
restart interval timer to call GetUpdate after interval seconds
upgradeAttributes
convert the attributes for this device from the old syntax to the new one.
atributes with the description "this attribute should not be used anymore" or similar will be translated to the new syntax, e.g. readingsName1 to reading01Name.
storeKeyValue
stores a key value pair in an obfuscated form in the file system. Such values can then be used in replacements where the mode is "key" e.g. to avoid storing passwords in the configuration in clear text
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

danillo

define wetter_mitterau HTTPMOD http://wunderground.com/weatherstation/WXCurrentObXML.asp?ID=I3POTTSC2 60
funktioniert noch, jedoch mit anderer Url (ohne"api.").