59_Buienradar

Begonnen von Christoph Morrison, 23 Juli 2019, 21:37:15

Vorheriges Thema - Nächstes Thema

Papaloewe

Habe gearde versucht auf "testing" umzustellen:

2019.07.29 18:07:54 1 : Buienradar
2019.07.29 18:07:54 1 : UPD FHEM/59_Buienradar.pm
2019.07.29 18:07:54 1 : Got 25387 bytes for FHEM/59_Buienradar.pm, expected 23162
2019.07.29 18:07:54 1 : aborting.

Christoph Morrison

Zitat von: mahowi am 29 Juli 2019, 15:59:02
Die Commandref kenne ich.  ;)
Also rainNow für die jetzt und rainTotal für den gesamten Zeitraum. Für rainAmount steht aber nichts da.

Öh ganz oben?

mahowi

#47
Ja klar, oben steht die Beschreibung.   :D  Aber vielleicht bin ich zu doof, sie zu verstehen.   ???

ZitatrainAmount - Menge des gemeldeten Niederschlags in mm/h.
[...]
rainMax - Die maximale Niederschlagsmenge in mm/h für ein 5 Min. Intervall auf Basis der vorliegenden Daten.
rainNow - Die vorhergesagte Niederschlagsmenge für das aktuelle 5 Min. Intervall in mm/h.
rainTotal - Die gesamte vorhergesagte Niederschlagsmenge in mm/h

Wenn ich das richtig verstehe, gibt rainNow an, was die nächsten 5 Minuten runter kommt. rainMax, was maximal innerhalb von 5 Minuten im Vorhersagezeitraum kommt. rainTotal wäre dann die Menge über den gesamten Zeitraum der Vorhersage. Damit bleibt rainAmount übrig. Ist das die Menge innerhalb 1 Stunde, wie die Einheit vermuten lässt, oder in der Zeit zwischen rainBegin und rainEnd? Eigentlich macht die Einheit mm/h für 5-Minuten-Intervalle auch keinen Sinn, eher nur mm, was dann 1 l/mm^2 entspricht.

Sorry, wenn die Fragen vielleicht etwas blöd klingen. Leider hab ich auch keine Beschreibung der API gefunden,  sonst hätte ich da mal nachgelesen.

Edit: Hab jetzt mal genauer ins Modul geguckt (development, Zeile 667,668):
                ::readingsBulkUpdate( $hash, "rainTotal", sprintf( "%.3f", $rainTotal) );
                ::readingsBulkUpdate( $hash, "rainAmount", sprintf( "%.3f", $rainTotal) );

Demnach sind rainTotal und rainAmount identisch.
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

Jamo

Hallo Christoph,
ich habe auf die Version 2.2.0 ge-updated, folgende Bebachtung / Fehlermeldung im state/STATE:

Die gleiche Fehlermeldung bekomme ich auch wenn ich region 'nl' einstelle, und die Koordinaten in den Niederlanden liegen.
Mit der Version 2.1.0 hat alles problemlos funktioniert. Hier das list und der Json-String.

Internals:
   CHANGED   
   DEF        48.1234 11.1234
   FUUID      ddddddd-aaaa-bbbb-cccc-bc78f1f69daf123a
   INTERVAL   300
   LATITUDE   48.1690
   LONGITUDE  11.5941
   NAME       Buienradar
   NEXTUPDATE 2019-07-29 22:52:16
   NR         4766
   REGION     de
   STATE      Got JSON but buienradar.nl has some troubles delivering meaningful data!
   TYPE       Buienradar
   URL        https://cdn-secure.buienalarm.nl/api/3.4/forecast.php?lat=48.1234&lon=11.1234&region=de&unit=mm/u
   VERSION    2.2.0
   READINGS:
     2019-07-29 22:49:30   rainAmount      unknown
     2019-07-29 22:49:30   rainBegin       unknown
     2019-07-29 22:49:30   rainData        unknown
     2019-07-29 22:49:30   rainDataEnd     unknown
     2019-07-29 22:49:30   rainDataStart   unknown
     2019-07-29 22:49:30   rainEnd         unknown
     2019-07-29 22:49:30   rainLaMetric    unknown
     2019-07-29 22:49:30   rainMax         unknown
     2019-07-29 22:49:30   rainNow         unknown
     2019-07-29 22:49:30   rainTotal       unknown
     2019-07-29 22:49:30   state           Got JSON but buienradar.nl has some troubles delivering meaningful data!
Attributes:
   disabled   off
   event-on-change-reading rainBegin
   interval   300
   region     de
   room       Weather


{"success":true,"start":1564433100,"start_human":"22:45","temp":15,"delta":300,"precip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"levels":{"light":0.25,"moderate":1,"heavy":2.5},"grid":{"x":915,"y":813},"source":"de","bounds":{"N":56.123456,"E":18.123456,"S":45.123456,"W":3.123456}}
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

choenig

Zitat von: Papaloewe am 29 Juli 2019, 18:09:00
Habe gearde versucht auf "testing" umzustellen:

2019.07.29 18:07:54 1 : Buienradar
2019.07.29 18:07:54 1 : UPD FHEM/59_Buienradar.pm
2019.07.29 18:07:54 1 : Got 25387 bytes for FHEM/59_Buienradar.pm, expected 23162
2019.07.29 18:07:54 1 : aborting.


Das selbe bekomme ich auch, nachdem ich dem angegebenen Link gefolgt bin ("testing") und nicht den aus dem 1. Post genommen habe ("release/testing").

Update hat bislang nicht geklappt.

Christoph Morrison

Ich publiziere meinen Code nur in Kopie auf Github. Irgendwas hat bei der Übertragung dorthin wohl nicht geklappt.
Die controls habe ich aktualisiert, dauert ein bisschen bis sie aus dem Cache bei Github raus ist. Dann sollte es klappen.

Christoph Morrison

Zitat von: inoma am 29 Juli 2019, 22:57:05
Hallo Christoph,
ich habe auf die Version 2.2.0 ge-updated, folgende Bebachtung / Fehlermeldung im state/STATE:

Ich hab mir die Def gerade mal selbst angelegt und kann das nicht reproduzieren. Ist das Verhalten bei dir noch so?

Christoph Morrison

#52
Zitat von: mahowi am 29 Juli 2019, 19:08:03
Ja klar, oben steht die Beschreibung.   :D  Aber vielleicht bin ich zu doof, sie zu verstehen.   ???

Wenn ich das richtig verstehe, gibt rainNow an, was die nächsten 5 Minuten runter kommt. rainMax, was maximal innerhalb von 5 Minuten im Vorhersagezeitraum kommt. rainTotal wäre dann die Menge über den gesamten Zeitraum der Vorhersage. Damit bleibt rainAmount übrig. Ist das die Menge innerhalb 1 Stunde, wie die Einheit vermuten lässt, oder in der Zeit zwischen rainBegin und rainEnd? Eigentlich macht die Einheit mm/h für 5-Minuten-Intervalle auch keinen Sinn, eher nur mm, was dann 1 l/mm^2 entspricht.


Da hast du wirklich einen Bug entdeckt, hab ich gar nicht weiter drüber nachgedacht. Leider gibt es dazu, wie du schon geschrieben hast, wohl keine Doku, denn nur Niederschlagsdaten soll man gar nicht selbst beziehen können, sondern nur die Stationsdaten. Insofern muss ich mir das mit den Einheiten noch mal überlegen.

Gefixt in testing & development.

Jamo

ZitatZitat von: inoma am Gestern um 22:57:05
Hallo Christoph,
ich habe auf die Version 2.2.0 ge-updated, folgende Bebachtung / Fehlermeldung im state/STATE:

Ich hab mir die Def gerade mal selbst angelegt und kann das nicht reproduzieren. Ist das Verhalten bei dir noch so?

Hallo Christoph,
ja, das Verhalten ist immer noch so, ich habe sowohl lat/lon koordinaten in NL mit region=nl, in Hamburg und München mit region=de getestet.

Kann ich helfen, das einzugrenzen? Der JSON String scheint ok zu sein, die Fehlermeldung kommt ja aus dem Buienradar Modul selbst, aber ich kann nicht sehen wieso die Daten nicht meaningful sein sollen. Das einzige was mir aufgefallen ist, ist das die Human readable time (start_human":"22:45) vor der aktuellen Zeit liegt. Keine Ahnung
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Christoph Morrison

Zitat von: inoma am 30 Juli 2019, 18:07:30
Kann ich helfen, das einzugrenzen? Der JSON String scheint ok zu sein, die Fehlermeldung kommt ja aus dem Buienradar Modul selbst, aber ich kann nicht sehen wieso die Daten nicht meaningful sein sollen. Das einzige was mir aufgefallen ist, ist das die Human readable time (start_human":"22:45) vor der aktuellen Zeit liegt. Keine Ahnung

Auf jeden Fall. Poste mal bitte lists von jedem Device (einzeln).

Jamo

Hallo Christoph,
hier das list mit der location Hamburg, und der JSON string dazu. Ich habe aber nur 1 device, was meintest Du mit "lists von jedem Device (einzeln)."

Internals:
   CHANGED   
   DEF        53.737011 10.144003
   FUUID      5d39f59a-f33f-97bf-f0a3-ec67f1f68daf307e
   INTERVAL   120
   LATITUDE   53.737011
   LONGITUDE  10.144003
   NAME       Buienradar
   NEXTUPDATE 2019-07-30 19:25:31
   NR         4766
   REGION     de
   STATE      Got JSON but buienradar.nl has some troubles delivering meaningful data!
   TYPE       Buienradar
   URL        https://cdn-secure.buienalarm.nl/api/3.4/forecast.php?lat=53.737011&lon=10.144003&region=de&unit=mm/u
   VERSION    2.2.0
   READINGS:
     2019-07-30 19:23:31   rainAmount      unknown
     2019-07-30 19:23:31   rainBegin       unknown
     2019-07-30 19:23:31   rainData        unknown
     2019-07-30 19:23:31   rainDataEnd     unknown
     2019-07-30 19:23:31   rainDataStart   unknown
     2019-07-30 19:23:31   rainEnd         unknown
     2019-07-30 19:23:31   rainLaMetric    unknown
     2019-07-30 19:23:31   rainMax         unknown
     2019-07-30 19:23:31   rainNow         unknown
     2019-07-30 19:23:31   rainTotal       unknown
     2019-07-30 19:23:31   state           Got JSON but buienradar.nl has some troubles delivering meaningful data!
Attributes:
   disabled   off
   event-on-change-reading rainBegin
   interval   300
   region     de
   room       Weather


{"success":true,"start":1564506300,"start_human":"19:05","temp":24,"delta":300,"precip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"levels":{"light":0.25,"moderate":1,"heavy":2.5},"grid":{"x":687,"y":194},"source":"de","bounds":{"N":56.397869,"E":18.257635,"S":45.506641,"W":3.454513}}
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

#56
Hallo Christoph,
In Zeile 921 if ($forecast_data->{'success'} ne "true") { durch if (!$forecast_data->{'success'}) { ersetzen, dann funktionierts. Irgendwie funktioniert also die Abfrage von 'success' auf "true" nicht.

Bei mir liefert $forecast_data->{'success'} eine '1' zurück, und nicht "true". Ich glaube der Interpretiert 'true' als '1';

Ich habe die perl_version v5.24.1, hängts damit zusammen?

Danke!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

mahowi

Im development Branch ist ein Fehler drin, das Modul lädt nicht:
2019.07.30 20:39:05.947 1: PERL WARNING: Bareword found where operator expected at ./FHEM/59_Buienradar.pm line 669, near "kk
                ::readingsBulkUpdate"
2019.07.30 20:39:05.948 1: stacktrace:
2019.07.30 20:39:05.948 1:     main::__ANON__                      called by ./FHEM/59_Buienradar.pm (669)
2019.07.30 20:39:05.948 1:     (eval)                              called by fhem.pl (2605)
2019.07.30 20:39:05.948 1:     (eval)                              called by fhem.pl (2604)
2019.07.30 20:39:05.948 1:     main::CommandReload                 called by fhem.pl (1236)
2019.07.30 20:39:05.949 1:     main::AnalyzeCommand                called by fhem.pl (1089)
2019.07.30 20:39:05.949 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2678)
2019.07.30 20:39:05.949 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (951)
2019.07.30 20:39:05.949 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (578)
2019.07.30 20:39:05.949 1:     main::FW_Read                       called by fhem.pl (3753)
2019.07.30 20:39:05.949 1:     main::CallFn                        called by fhem.pl (748)
2019.07.30 20:39:05.949 1: PERL WARNING:        (Do you need to predeclare kk?)
2019.07.30 20:39:05.950 1: stacktrace:
2019.07.30 20:39:05.950 1:     main::__ANON__                      called by ./FHEM/59_Buienradar.pm (669)
2019.07.30 20:39:05.950 1:     (eval)                              called by fhem.pl (2605)
2019.07.30 20:39:05.950 1:     (eval)                              called by fhem.pl (2604)
2019.07.30 20:39:05.950 1:     main::CommandReload                 called by fhem.pl (1236)
2019.07.30 20:39:05.950 1:     main::AnalyzeCommand                called by fhem.pl (1089)
2019.07.30 20:39:05.951 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2678)
2019.07.30 20:39:05.951 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (951)
2019.07.30 20:39:05.951 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (578)
2019.07.30 20:39:05.951 1:     main::FW_Read                       called by fhem.pl (3753)
2019.07.30 20:39:05.951 1:     main::CallFn                        called by fhem.pl (748)


In Zeile 668 ist Dir wohl irgendwie ein "kk" hinter die Zeile geraten:
                ::readingsBulkUpdate( $hash, "rainTotal", sprintf( "%.3f", $rainTotal) );kk
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

Jamo

Hallo Christoph,
wie lautet denn der Aufruf, um den gChart zu erzeugen? Ein defmod Buienradar_gChart weblink htmlCode { FHEM::Buienradar::GChart("Buienradar")} liefert bei mir folgendes Bild, da ist aber der Niederschlag von -1 bis +1, und mann kann die Zeiten nicht lesen.

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

mahowi

Wenn es Werte gibt außer 0 fängt der Chart bei 0 an und nicht bei -1. Allerdings kann man bei mir auch die Zeiten nicht lesen.
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