59_Weather, DarkSky und OpenWeatherMap API Bugfixes

Begonnen von CoolTux, 13 Januar 2019, 21:22:31

Vorheriges Thema - Nächstes Thema

Elektrolurch

Es scheint wohl ein Problem mit der Website zu sein, denn jetzt kommen auch keine Warnungen mehr. So wie das aussieht, kommen da wohl gelegentlich nicht alle Daten und die nicht initialisierten Werte machen das Problem.
Vielleicht kann man das in dem Modul abfangen, prüfen ob der Wert tatsächlich vorhanden ist, wenn nicht, dann das Feld ignorieren.
Die Fehler kamen jetzt ca. zwei Tage lang, dann habe ich das Wetter Modul auf disable gesetzt und hier den Post  gemacht.
Als Du gestern die Daten haben wolltest, habe ich das Modul enabled und seit dem sind bisher auch keine Fehler mehr aufgetreten.

Mit bestem Gruße
Elektrolurch
configDB und Windows befreite Zone!

CoolTux

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

Gisbert

Hallo,

ich möchte gerne die jeweils aktuellen Wetterbedingungen, die DarkSky und OpenWeather liefern, nutzen, um eine Beschattungsanlage zu steuern.
Ein Vorort-Lichtsensor wäre sicher viel besser geeignet, aber er ist erstens nicht vorhanden, und zweitens ist er schwierig zu positionieren wegen Bäumen und Nachbarbebauung.

Welches Reading könnte ich dafür sinnvoll einsetzen?
Bei DarkSky gibt es das Reading "condition", welches in Textform die Wetterbedingung liefert, z.B. "Leicht bewölkt". Um die Liste sinnvoll auswerten zu können, müsste man sie erst komplett haben. Falls ein anderes Reading bzgl. Sonnenintensität besser geeignet ist, dann gerne dieses vorschlagen.

Dito. für OpenWeather, hier liefert das Reading "condition" "Klarer Himmel".

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

CoolTux

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

Dersch

#439
Bei mir updated der forecast nur wenn ich every oder hourly einstelle. Wenn ich daily einstelle kommt nichts:

Internals:
   API        OpenWeatherMapAPI
   APIKEY     XXXX
   APIOPTIONS cachemaxage:600
   DEF        API=OpenWeatherMapAPI,cachemaxage:600 apikey=XXXX interval=3600 lang=de
   FUUID      5d588549-f33f-c2c3-0e1e-626c7f9a90eb3c6e
   INTERVAL   3600
   LANG       de
   LOCATION   49.925544,8.608220
   MODEL      OpenWeatherMapAPI
   NAME       Wetter
   NOTIFYDEV  global
   NR         367
   NTFY_ORDER 50-Wetter
   STATE      T: 16 °C F: 100 % W: 4 km/h P: 1015 hPa
   TYPE       Weather
   READINGS:
     2019-08-19 07:31:00   apiMaintainer   Leon Gaultier (<a href=https://forum.fhem.de/index.php?action=profile;u=13684>CoolTux</a>)
     2019-08-19 07:31:00   apiVersion      0.4.0
     2019-08-19 07:31:00   city            Weiterstadt
     2019-08-19 07:31:00   cloudCover      40
     2019-08-19 07:31:00   code            26
     2019-08-19 07:31:00   condition       Überwiegend bewölkt
     2019-08-19 07:31:00   country         DE
     2019-08-19 07:31:00   current_date_time Mo, 19 Aug 2019 07:31
     2019-08-19 07:31:00   dewpoint        16.0
     2019-08-19 07:31:00   high_c          18
     2019-08-19 07:31:00   humidity        100
     2019-08-19 07:31:00   icon            cloudy
     2019-08-19 07:31:00   iconAPI         03d
     2019-08-19 07:31:00   lastError       
     2019-08-19 07:31:00   lat             49.925544
     2019-08-19 07:31:00   long            8.608220
     2019-08-19 07:31:00   low_c           14
     2019-08-19 07:31:00   pressure        1015
     2019-08-19 07:31:00   pubDate         Mo, 19 Aug 2019 07:31
     2019-08-19 07:31:00   state           T: 16 °C F: 100 % W: 4 km/h P: 1015 hPa
     2019-08-19 07:31:00   status          ok
     2019-08-19 07:31:00   sunriseTime     Mo, 19 Aug 2019 06:20
     2019-08-19 07:31:00   sunsetTime      Mo, 19 Aug 2019 20:38
     2019-08-19 07:31:00   tempHigh        18
     2019-08-19 07:31:00   tempLow         14
     2019-08-19 07:31:00   temp_c          16
     2019-08-19 07:31:00   temperature     16
     2019-08-19 07:31:00   validity        up-to-date
     2019-08-19 07:31:00   visibility      10000
     2019-08-19 07:31:00   wind            4
     2019-08-19 05:30:59   wind_condition  Wind: SSW 5 km/h
     2019-08-19 05:30:59   wind_direction  200
     2019-08-19 07:31:00   wind_speed      4
   fhem:
     allowCache 1
     interfaces temperature;humidity;wind
Attributes:
   DbLogExclude .*
   forecast   daily
   group      Umweltsensoren
   icon       weather_station
   room       Zentral

CoolTux

Zitat von: Dersch am 19 August 2019, 08:08:55
Bei mir updated der forecast nur wenn ich every oder hourly einstelle. Wenn ich daily einstelle kommt nichts:

Internals:
   API        OpenWeatherMapAPI
   APIKEY     XXXX
   APIOPTIONS cachemaxage:600
   DEF        API=OpenWeatherMapAPI,cachemaxage:600 apikey=XXXX interval=3600 lang=de
   FUUID      5d588549-f33f-c2c3-0e1e-626c7f9a90eb3c6e
   INTERVAL   3600
   LANG       de
   LOCATION   49.925544,8.608220
   MODEL      OpenWeatherMapAPI
   NAME       Wetter
   NOTIFYDEV  global
   NR         367
   NTFY_ORDER 50-Wetter
   STATE      T: 16 °C F: 100 % W: 4 km/h P: 1015 hPa
   TYPE       Weather
   READINGS:
     2019-08-19 07:31:00   apiMaintainer   Leon Gaultier (<a href=https://forum.fhem.de/index.php?action=profile;u=13684>CoolTux</a>)
     2019-08-19 07:31:00   apiVersion      0.4.0
     2019-08-19 07:31:00   city            Weiterstadt
     2019-08-19 07:31:00   cloudCover      40
     2019-08-19 07:31:00   code            26
     2019-08-19 07:31:00   condition       Überwiegend bewölkt
     2019-08-19 07:31:00   country         DE
     2019-08-19 07:31:00   current_date_time Mo, 19 Aug 2019 07:31
     2019-08-19 07:31:00   dewpoint        16.0
     2019-08-19 07:31:00   high_c          18
     2019-08-19 07:31:00   humidity        100
     2019-08-19 07:31:00   icon            cloudy
     2019-08-19 07:31:00   iconAPI         03d
     2019-08-19 07:31:00   lastError       
     2019-08-19 07:31:00   lat             49.925544
     2019-08-19 07:31:00   long            8.608220
     2019-08-19 07:31:00   low_c           14
     2019-08-19 07:31:00   pressure        1015
     2019-08-19 07:31:00   pubDate         Mo, 19 Aug 2019 07:31
     2019-08-19 07:31:00   state           T: 16 °C F: 100 % W: 4 km/h P: 1015 hPa
     2019-08-19 07:31:00   status          ok
     2019-08-19 07:31:00   sunriseTime     Mo, 19 Aug 2019 06:20
     2019-08-19 07:31:00   sunsetTime      Mo, 19 Aug 2019 20:38
     2019-08-19 07:31:00   tempHigh        18
     2019-08-19 07:31:00   tempLow         14
     2019-08-19 07:31:00   temp_c          16
     2019-08-19 07:31:00   temperature     16
     2019-08-19 07:31:00   validity        up-to-date
     2019-08-19 07:31:00   visibility      10000
     2019-08-19 07:31:00   wind            4
     2019-08-19 05:30:59   wind_condition  Wind: SSW 5 km/h
     2019-08-19 05:30:59   wind_direction  200
     2019-08-19 07:31:00   wind_speed      4
   fhem:
     allowCache 1
     interfaces temperature;humidity;wind
Attributes:
   DbLogExclude .*
   forecast   daily
   group      Umweltsensoren
   icon       weather_station
   room       Zentral


OpenWeatherMap liefert in der Kostenlosen Version kein Daily. Lediglich hourly über 3 Tage hinweg.
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

Jamo

#441
Hallo CoolTux,
apiVersion      0.4.0
Can't call method "getWeather" on an undefined value at ./FHEM/59_Weather.pm line 314.

Siehe auch Antwort #357 vom: 23 April 2019, 09:15:43 »""

Bei mir auch vollständiger crash von FHEM.

Ist bisher schon 3x aufgetreten, immer kurz nachdem ich ein neues Device mit der DarkSkyAPI angelegt habe.
Tritt aber nicht immer auf.

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

CoolTux

Danke das schaue ich mir an.
Kann es sein das Du bei der Definition etwas vergessen hast?


Grüße
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

Jamo

Nein eigentlich nicht:

defmod WeatherLatLon Weather location=46.1234,11.1234 apikey=1234567890asdfjklo lang=de interval=10800
attr WeatherLatLon alias Wetter_Location-iPhone
attr WeatherLatLon disable 0
attr WeatherLatLon event-on-change-reading none
attr WeatherLatLon forecast daily
attr WeatherLatLon forecastLimit 7
attr WeatherLatLon group DarkSkyWeather_Location-iPhone
attr WeatherLatLon room Favourites,Weather
attr WeatherLatLon sortby 0361
attr WeatherLatLon stateFormat condition, temperature˚C, H: humidity%, wind_condition, N: precipIntensity mm/h
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

Hi Cooltux,
ich bin einen Schritt weiter, der Fehler Can't call method "getWeather" on an undefined value at ./FHEM/59_Weather.pm line 314. tritt immer dann auf, wenn ich automatisiert folgend sub aufrufe, also gleichzeitiges loeschen vom DarkSkyWheather device umd vom Weblink device.

sub deleteDarkSkyWetter(){
  my $sub       = "deleteDarkSkyWetter";
  my $device    = "WeatherLatLon";
  my $device_WL = $device . "_WL";
  Log 3,"[$sub] Delete devices: $device and $device_WL if exist";
  if (defined($defs{$device}))    {fhem "delete $device"}
  if (defined($defs{$device_WL})) {fhem "delete $device_WL"}
}
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

CoolTux

Zitat von: inoma am 02 September 2019, 13:05:10
Hi Cooltux,
ich bin einen Schritt weiter, der Fehler Can't call method "getWeather" on an undefined value at ./FHEM/59_Weather.pm line 314. tritt immer dann auf, wenn ich automatisiert folgend sub aufrufe, also gleichzeitiges loeschen vom DarkSkyWheather device umd vom Weblink device.

sub deleteDarkSkyWetter(){
  my $sub       = "deleteDarkSkyWetter";
  my $device    = "WeatherLatLon";
  my $device_WL = $device . "_WL";
  Log 3,"[$sub] Delete devices: $device and $device_WL if exist";
  if (defined($defs{$device}))    {fhem "delete $device"}
  if (defined($defs{$device_WL})) {fhem "delete $device_WL"}
}


Super das Du es testen kannst. Ich habe auch eine Ursache dafür und einen Fix ins Git geladen. Kannst Du die neue Version bitte einmal testen
https://github.com/fhem/Weather
Musst nur die 59_Weather.pm installieren


Grüße
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

Jamo

Yep, runtergeladen, und es scheint zu funktionieren, habs jetzt 3 mal probiert, der Fehler tritt nicht mehr auf.
Ich melde mich falls es nochmal klemmt.
DANKE! Super!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

holle75

Guten Morgen! .... Ich hatte es schon einmal an anderer Stelle beschrieben (welche ich leider gerade nicht mehr finde):

Mein HM-Lan Adapter (und wahrscheinlich andere Devices oder Hardware) disconnected oder hängt, wenn von DarkSky Daten geholt werden. Zugegebenermaßen sind es bei mir viele Daten, aber in meiner Theorie sollte das Eine nicht das Andere hervorrufen. Im Log ist das stündliche (intervall) Abholen  bei Darksky schön zu beobachten.

2019.10.06 00:25:59 1: 192.168.10.36:1000 disconnected, waiting to reappear (HM_LAN_FUNK)
2019.10.06 00:25:59 1: HMLAN_Parse: HM_LAN_FUNK new condition disconnected
2019.10.06 00:26:00 1: HMLAN_Parse: HM_LAN_FUNK new condition init
2019.10.06 00:26:00 1: 192.168.10.36:1000 reappeared (HM_LAN_FUNK)
2019.10.06 00:26:00 1: HMLAN_Parse: HM_LAN_FUNK new condition ok

2019.10.06 01:26:10 1: 192.168.10.36:1000 disconnected, waiting to reappear (HM_LAN_FUNK)
2019.10.06 01:26:10 1: HMLAN_Parse: HM_LAN_FUNK new condition disconnected
2019.10.06 01:26:11 1: HMLAN_Parse: HM_LAN_FUNK new condition init
2019.10.06 01:26:11 1: 192.168.10.36:1000 reappeared (HM_LAN_FUNK)
2019.10.06 01:26:11 1: HMLAN_Parse: HM_LAN_FUNK new condition ok
2019.10.06 02:26:23 1: 192.168.10.36:1000 disconnected, waiting to reappear (HM_LAN_FUNK)
2019.10.06 02:26:23 1: HMLAN_Parse: HM_LAN_FUNK new condition disconnected
2019.10.06 02:26:24 1: HMLAN_Parse: HM_LAN_FUNK new condition init
2019.10.06 02:26:24 1: 192.168.10.36:1000 reappeared (HM_LAN_FUNK)
2019.10.06 02:26:24 1: HMLAN_Parse: HM_LAN_FUNK new condition ok

2019.10.06 03:26:35 1: 192.168.10.36:1000 disconnected, waiting to reappear (HM_LAN_FUNK)
2019.10.06 03:26:35 1: HMLAN_Parse: HM_LAN_FUNK new condition disconnected
2019.10.06 03:27:35 1: HMLAN_Parse: HM_LAN_FUNK new condition init
2019.10.06 03:27:35 1: 192.168.10.36:1000 reappeared (HM_LAN_FUNK)
2019.10.06 03:27:35 1: HMLAN_Parse: HM_LAN_FUNK new condition ok

2019.10.06 05:26:57 1: 192.168.10.36:1000 disconnected, waiting to reappear (HM_LAN_FUNK)
2019.10.06 05:26:57 1: HMLAN_Parse: HM_LAN_FUNK new condition disconnected
2019.10.06 05:26:58 1: HMLAN_Parse: HM_LAN_FUNK new condition init
2019.10.06 05:26:58 1: 192.168.10.36:1000 reappeared (HM_LAN_FUNK)
2019.10.06 05:26:58 1: HMLAN_Parse: HM_LAN_FUNK new condition ok

2019.10.06 07:27:20 1: 192.168.10.36:1000 disconnected, waiting to reappear (HM_LAN_FUNK)
2019.10.06 07:27:20 1: HMLAN_Parse: HM_LAN_FUNK new condition disconnected
2019.10.06 07:27:20 1: HMLAN_Parse: HM_LAN_FUNK new condition init
2019.10.06 07:27:21 1: 192.168.10.36:1000 reappeared (HM_LAN_FUNK)
2019.10.06 07:27:21 1: HMLAN_Parse: HM_LAN_FUNK new condition ok


2019.10.06 08:27:33 1: 192.168.10.36:1000 disconnected, waiting to reappear (HM_LAN_FUNK)
2019.10.06 08:27:33 1: HMLAN_Parse: HM_LAN_FUNK new condition disconnected
2019.10.06 08:28:33 1: HMLAN_Parse: HM_LAN_FUNK new condition init
2019.10.06 08:28:33 1: 192.168.10.36:1000 reappeared (HM_LAN_FUNK)
2019.10.06 08:28:33 1: HMLAN_Parse: HM_LAN_FUNK new condition ok


mir scheint, dass weather.pm oder darksky fhem blockieren. Dies auch bei eingetragenem DNS Server. Ich habe eine recht langsame Internetverbindung, vielleicht fällt es darum so sehr auf.

Ich meine @cooltux hatte damals beschrieben, dass die Module nonblocking seien. Trotzdem wundert mich das Verhalten. Jemand einen Ansatz?

Danke und Gruß

CoolTux

Die Anzahl/Größe der Daten ist nicht relevant da der zu holende JSON String fast immer gleich ist.
Die Daten werden dann aufbereitet im DarkSky Modul und wenn das fertig ist bekommt das Weather Modul eine Info um die Daten ab zu holen. Im Weather Modul werden die Daten dann für die Readings bearbeitet. Hier kann man die Anzahl der Readings und somit der Datendurchläufe beeinflussen.
Um einen ersten Test zu machen kannst Du die Anzahl der Vorhersagen begrenzen und schauen ob das Problem dann immer noch besteht.

Das LAN Adapter Modul verwendet DevIo und DarkSky HttpUtils. Sollte sich also beim beziehen der Daten nicht wirklich beeinflussen.
Was für eine Hardware verwendest Du für FHEM.
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

holle75

Hallo cooltux, fhem läuft auf einem Raspi3 der außer beim fhem-Neustart (ca 25% für 10 Sekunden) bei 1-4% CPU Last herumdümpelt. Auch wird die Systemauslastung kontinuierlich geloggt und da gibt es keine Auffälligkeiten.

Ja, ich könnte (und werde) mal die Anzahl der Vorhersagen reduzieren, aber generell scheint es ja ein Problem zu geben. Ich weiß nicht, ob ein solcher Workaround (falls es denn dann funktioniert) dann eine Problemlösung oder Problemherumnavigation ist.