[59_WUup.pm] Wetterdaten zu Wunderground hochladen

Begonnen von mahowi, 23 Januar 2017, 18:52:39

Vorheriges Thema - Nächstes Thema

Aeroschmelz

Hallo,

Upload läuft alle 5 Minuten wie ein Schweizer Uhrwerk.

Grüße
Marcus

mahowi

Zitat von: Aeroschmelz am 01 September 2017, 16:50:48
Vielleicht noch eine andere Frage. Geht das Attribut event-on-change-reading um den Upoad so zu steuern?
Das hatte ich erst überlesen. Nein, event-on-... wird nicht unterstützt. Momentan sehe ich da auch keinen Nutzen drin, da eigentlich kontinuierlich Daten gesendet werden sollten. Intervall kann man ja eingeben.

Wenn der Upload funktioniert, sollte das Reading response auf success stehen.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Aeroschmelz

#47
Na ja, man kann sich halt den Upload sparen, wenn sich nichts an den Daten geändert hat. Wenn ich mir die Daten von Netamo Wetterstationen anschaue, so gehen diese wohl genau nach dem Prinzp bei Wunderground vor. Dadurch sehen die Graphen bei Wunderground auch besser geglättet aus, bei mir zappelt das hin und her, weil sich die Nachkommastellen gering unterscheiden

mahowi

#48
Ich werde mir bei Gelegenheit mal ansehen, ob ich das einbauen kann. Ich kann aber nichts versprechen, da ich mir erst ansehen muß, wie ich auf Events anderer Geräte reagiere. Bisher werden ja einfach die Readings übernommen und gesendet.

Die Daten werden aber jetzt bei Dir in WU angezeigt?

Edit: Ich habe mir das mal durch den Kopf gehen lassen. Das Modul reagiert ja nicht auf Events, sondern liest die Readings aus. Es müsste also komplett umgebaut werden und das event-on-change-reading im entsprechenden Device gesetzt werden. Daher würde ich eventuell eher einen konfigurierbaren Schwellenwert einbauen, ab dem erst gesendet wird. Wenn sich also z.B. die Temperatur um x° ändert, wird gesendet, darunter nicht. Das ist 1. einfacher für mich und stört 2. nicht eventuell andere Module, die mit dem Gerät arbeiten.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Aeroschmelz

Das hört sich doch gut an und hat eigentlich auch keine weiteren Nachteile  :D Gut wenn man den Schwellenwert noch als Attribut angeben könnte.

mumpitzstuff

Ich habe relativ oft einen timeout error. Die hardcoded 4 Sekunden sind vielleicht etwas wenig.
Wenn ich einmal einen Fehler hatte, dann steht der State dauerhaft auf Error, weil er im Erfolgsfall nicht zurück gesetzt wird. Das ist irgendwie unschön.

Besteht hier die Möglichkeit etwas zu ändern?

mahowi

Das mit dem Error ist mir auch schon aufgefallen. Ich muß mir mal ansehen, wie ich den Status wieder zurücksetze.
Das kann etwas dauern, da ich momentan wenig Zeit habe .
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

mumpitzstuff

#52
Ich mach dir eine angepasste Version fertig.

Das wäre mein Vorschlag basierend auf deinem aktuellen Code:

fhem/FHEM/59_WUup.pm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fhem/FHEM/59_WUup.pm b/fhem/FHEM/59_WUup.pm
index 554230408..05ba6ff9b 100644
--- a/fhem/FHEM/59_WUup.pm
+++ b/fhem/FHEM/59_WUup.pm
@@ -258,7 +258,7 @@ sub WUup_send($) {
         }
         my $param = {
             url     => $url,
-            timeout => 4,
+            timeout => 6,
             hash    => $hash,
             method  => "GET",
             header =>
@@ -298,6 +298,7 @@ sub WUup_receive($) {
     }
     elsif ( $data ne "" ) {
         Log3 $name, 4, "WUup ($name) - server response: $data";
+        readingsSingleUpdate( $hash, "state", "active", undef );
         readingsSingleUpdate( $hash, "response", $data, undef );
     }
}

Aeroschmelz

Hi,

diese Attribute tauchen nicht mehr in der Attribut-Liste auf:


windspdmph_avg2m  - [mph 2 minute average wind speed mph]
winddir_avg2m - [0-360 2 minute average wind direction]
windgustmph_10m - [mph past 10 minutes wind gust mph ]
windgustdir_10m - [0-360 past 10 minutes wind gust direction]


Wenn ich diese manuell definiere, kommt eine Fehlermeldung...

Version ist die aktuelle:


Internals:
   DEF        IESSINGE19 s43r7js1
   INTERVAL   300
   NAME       Wunderground
   NR         364
   STATE      ERROR
   TYPE       WUup
   VERSION    0.9.2
   Helper:
     DBLOG:
       data:
         myDbLog:
           TIME       1507450618.35462
           VALUE      &rainin=0.0000&windgustmph=7.5807&humidity=86&winddir=289&baromin=30.0025&dailyrainin=0.0591&UV=0&tempf=48.9200&dewptf=44.9600
       state:
         myDbLog:
           TIME       1507450618.2439
           VALUE      active
   READINGS:
     2017-10-08 10:16:58   data            &rainin=0.0000&windgustmph=7.5807&humidity=86&winddir=289&baromin=30.0025&dailyrainin=0.0591&UV=0&tempf=48.9200&dewptf=44.9600
     2017-10-08 10:17:06   response        write to https://weatherstation.wunderground.com:443 timed out
     2017-10-08 10:17:06   state           ERROR
   helper:
     password   s43r7js1
     softwaretype FHEM
     stationid  IESSINGE19
     url        https://weatherstation.wunderground.com/weatherstation/updateweatherstation.php
     url_rf     https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php
Attributes:
   group      Wetterdienste
   interval   300
   room       Umwelt
   unit_windspeed km/h
   verbose    3
   wuUV       UV:UV
   wubaromin  Pressure:pressure-nn
   wudailyrainin Regeninfo:statTotal_rainDay
   wudewptf   Kueche:dewpoint
   wuhumidity Kueche:humidity
   wurainin   Regeninfo:rain_lasthour
   wutempf    Kueche:temperature
   wuwinddir  Windinfo:windDirAverage
   wuwindgustmph Windinfo:wind_gust


Viele Grüsse
Marcus

mahowi

Hm, sieht fast so aus, als hätte ich die einfach vergessen einzubauen.  ::)

Sobald ich den Patch von mumpitzstuff einbauen, kümmere ich mich darum. Wahrscheinlich Mitte bis Ende der Woche. Bin noch bis Dienstag unterwegs.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

mahowi

Ich habe die fehlenden Attribute und den Fix von mumpitzstuff eingebaut. Ist jetzt im SVN und wird ab morgen per Update verteilt. Danke an euch beide!  :)

@Aeroschmelz: Ich habe Deine Idee vom September nicht vergessen.  ;)  Ich muß mir nur mal ansehen, wie ich am günstigsten die alten Werte zwischenspeichere, um auf einen Schwellenwert zu vergleichen.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Aeroschmelz

#56
Hallo,

danke für die Info und die Aktualisierung, funktioniert, mir ist nur aufgfallen, dass es ein Attribut ohne Prefix "wu" gibt:


windgustmph_10m


Daher die Frage, ob das beabsichtigt war  :D

Manchmal wäre es auch ganz praktisch, wenn man den Upload manuell anstoßen könnte wie bei anderen Modulen...

Viele Grüsse
Marcus

mahowi

Die Attribut-Namen habe ich jetzt bereinigt, sollten jetzt alle mit "wu" anfangen. Ein paar waren auch versehentlich doppelt angegeben.

Am "set update" zum manuellen Anstoßen arbeite ich noch.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

mahowi

Ab morgen ist das set-Command "update" verfügbar, mit der das Senden der Daten an Weather Underground angestoßen werden kann. Ich habe es gerade im SVN eingecheckt.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

ak323

Danke mahowi für das Modul... läuft seit heute und lädt die Wetterdaten meiner WH1080 hoch ...
VG ak323
RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...