Forum: Mikrocontroller und Digitale Elektronik ⛈Regenvorhersage aus Internet-Wetterdaten mit ESP8266 (Arduino core)


von Info (Gast)


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

von Uli Spizig (Gast)


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.

von Mick (Gast)


Lesenswert?


von Mick (Gast)


Lesenswert?


von Info (Gast)


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...

von Info (Gast)


Lesenswert?

Hoppla, ich wollte auch den Auszug aus den Daten posten:
1
    "precipIntensity": 0,
2
    "precipProbability": 0,
3
    "temperature": 15.03,

von Info (Gast)


Lesenswert?

Info schrieb:
> aber der string wird nicht gefunden - und ich weiß noch nicht, wieso...

es gibt kein Leerzeichen in den Rohdaten.

von Arne (Gast)


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").

von Günter K. (Firma: Lurch Hobby Tec) (murkel)


Angehängte Dateien:

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

von Info (Gast)


Lesenswert?

Das hilft mir zwar leider gar nicht, da es für einen ESP32 und 
MicroPython ist, und nicht für ESP8266 mit Arduino Core, aber vielleicht 
nützt es ja jemand anderem...

von Wolfgang (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.