⛈Regenvorhersage aus Internet-Wetterdaten mit ESP8266 (Arduino core)

Gast #6007039
Lesenswert?

- Gibt es einen kostenlosen Wetterdienst mit "API", der mir sagen kann, 
ob es gleich/heute noch regnet?

- Wie sähen diese Daten im besten Fall aus (z.b. nützt "Possible light 
rain tomorrow afternoon and evening." [darksky.com] nicht viel)?
Wie könnte man die Wahrscheinlichkeiten (precipProbability) der "hourly" 
Vorhersage dazu nutzen? Reicht ein fester Schwellwert? Welcher?

- Die Wetterdaten müssen kompakt sein (Filter möglich?), denn z.B. lässt 
sich ein 16 kB JSON Paket von darksky nicht mit ArduinoJSON auf ESP8266 
parsen (NoMemory error).

Die Verarbeitug sollte direkt geschehen, d.h. z.B. eine Art 
JSON-Filter-Proxy (siehe EEL) auf separatem Rechner möchte ich 
vermeiden.

Also muss man sich wahrscheinlich die Daten gezielt aus dem Stream 
picken.

Hier noch ein paar Links:


- https://openweathermap.org/api
- https://api.darksky.net/
- https://www.arduino.cc/en/Reference/WiFiClient
- 
https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/client-secure-class.html
Gast #6007072
Lesenswert?

Ich nutze als Filter proxy 'google scripts' auf google drive. Dann die 
von dir erwähnten openweather api und filtere damit für den esp8266 die 
Daten vor. Google scripts ist zwar streng genommen ein externer 
Rechner... Aber den muss ich nicht warten/pflegen.
Gast #6007167
Lesenswert?

Uli Spizig schrieb:
> Ich nutze als Filter proxy 'google scripts' auf google drive. Dann die
> von dir erwähnten openweather api und filtere damit für den esp8266 die
> Daten vor. Google scripts ist zwar streng genommen ein externer
> Rechner... Aber den muss ich nicht warten/pflegen.

https://en.wikipedia.org/wiki/Google_Apps_Script
Sehr cool, das kannte ich noch nicht.
Gibt es dazu Näheres oder kannst du es im Detail beschreien?
Wird folgende Library benötigt?:
https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect

@Mick
Danke, die basieren beide auf JsonStreamingParser (bzw. Varianten).


Ich versuch's gerade mit
1
const char search[] = "ability\": ";
2
  while ( client.available() ){
3
    ok = client.find(search);
4
...

aber der string wird nicht gefunden - und ich weiß noch nicht, wieso...
Gast #6007378
Lesenswert?

Bei yr.no gibt's die Daten als XML -- die Doku dazu ist allerdings nur 
auf norwegisch verfuegbar. Einfach eine Stadt waehlen und dann in der 
URL hinten "forecast.xml" dranhaengen. Die Regenvorhersage ist in mm 
fuer den angegebenen Zeitraum (normalerweise pro 6h fuer die normale 
Vorhersage und pro 1h bei "time for time").
(Firma: Lurch Hobby Tec) #6007548
Lesenswert?

Hallo,

hier ein praktisches Beispiel für den m5stack, bringt auch gleich ein 
Display mit.
Anzeigewerte sind Luftdruck, Temperatur und Feuchte. Außerdem die 
Wetterdaten der ausgewählten Stadt. ( City ID )
Wenn man die Seite aufruft, kann man seine persönliche ID für die API 
anfordern.
Diese dann eintragen im Projekt.
WLAN ist erforderlich, programmiert ist das alles in µPython.
Wir haben das in einem Seminar als Gruppe getestet und es hat bei allen 
funktioniert.

Viel Spaß beim probieren!

Gruß
MURKEL
Angehängte Dateien:
Gast #6007574
Lesenswert?

Info schrieb:
> Wie könnte man die Wahrscheinlichkeiten (precipProbability) der "hourly"
> Vorhersage dazu nutzen? Reicht ein fester Schwellwert? Welcher?

Eine Wahrscheinlichkeit ist eine Wahrscheinlichkeit. Die lebt, um es mit 
den Worten der Statistiker zu sagen, von einer Grundgesamtheit.

Regen kann sehr lokal auftreten, d.h. ein Schwellwert für deine 
"precipProbability" nützt dir überhaupt nichts für einen bestimmten Ort. 
Sie sagt dir, wie groß die Chance ist, nass zu werden, aber nicht ob du 
nass wirst.

Beim Lotto kannst du auch den Jackpot knacken, obwohl die 
Wahrscheinlichkeit gering ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren