Sonnenaufgang vom OpenWeatherMap

Lib nicht eingebunden?

Gruß Tommy

taximan:
Ein Fehler ist dann doch aufgetaucht:

StaticJsonBuffer<4500> jsonBuffer;

'StaticJsonBuffer' does not name a type

Wieso läuft das im Beispielscript, und in einem anderem Script (auf demselben Rechner) nicht?
LIB ist die 5.13.2

Nein kein Fehler.
Ich ahne und befürchte was.

Bitte unbedingt die komplette Fehlermeldung unten aus dem Fenster rauskopieren und mir hier in codeTags einfügen.

#include <Arduino_JSON.h>

esp-wetter:50:1: error: 'StaticJsonBuffer' does not name a type
 StaticJsonBuffer<4500> jBuffer;

Also eingebunden ist die schon....
Was mich so stutzig macht, der eine Script wird compiliert, der andere nicht...

taximan:

#include <Arduino_JSON.h>

esp-wetter:50:1: error: 'StaticJsonBuffer' does not name a type
StaticJsonBuffer<4500> jBuffer;




Also eingebunden ist die schon....
Was mich so stutzig macht, der eine Script wird compiliert, der andere nicht...

Nochmal:
Die komplette Meldung unten aus dem schwarzen Fenster....
Das die eingebunden ist, habe ich vorausgesetzt.

Um das abzukürzen bitte Deinen Sketch.
Ne - mach mal nur ne komplette Kopie unten aus dem Fenster... Ich hab eh keinen ESP

Hier der Sketch mit der Fehlermeldung; sind 750 Zeilen, daher im Anhang

Das Ganze läuft / soll laufen auf einem ESP12F

taximan:
Hier der Sketch mit der Fehlermeldung; sind 750 Zeilen, daher im Anhang

PM LESEN!!!!

Nanu? Keine öffentliche Besprechung des Problems?

Gruß Tommy

#include <Arduino_JSON.h>

hatte sich reingemogelt, ist die falsche (mit Unterstrich)

Tommy56:
Nanu? Keine öffentliche Besprechung des Problems?

Doch.
Nur der Hinweis, das da was schief gelaufen ist - und das möchte ich nicht öffentlich darlegen!

taximan:
ist die falsche (mit Unterstrich)

Ja das auch - Deine Entscheidung ob Du öffentlich machen möchtest, warum Du eine PM bekommen hast....

API soll man ja nicht öffentlich machen, danke für den Hinweis

taximan:
API soll man ja nicht öffentlich machen, danke für den Hinweis

Und die PW für Wlan auch nicht :wink:

Damit denke ich ist es erklärt und es kann sich beruhigt in die Nacht begeben werden.

Beste Grüße!

Hab es eingebunden bekommen.
Scheint dann wohl zu laufen, danke für eure Tipps und Geduld!

Einen klitzekleinen hab ich doch noch gefunden; mit welcher Syntax kann ich "daily.weather.description" auslesen. Ich such mir schon den ganzen Abend einen Wolf. Das wäre für mich am logischten:
root["daily"][0]["weather"]["weather"]["description"];

funktioniert aber nicht, gibt mir immer "0" zurück. Was hab ich übersehen?

#include <ArduinoJson.h>

StaticJsonBuffer<3000> jsonBuffer;
char* json = "{\"lat\":51.7,\"lon\":7.4,\"timezone\":\"Europe/Berlin\",\"timezone_offset\":7200,\"daily\":[{\"dt\":1617793200,\"sunrise\":1617771094,\"sunset\":1617819181,\"temp\":{\"day\":277.26,\"min\":272.43,\"max\":278.7,\"night\":274.07,\"eve\":276.76,\"morn\":272.93},\"feels_like\":{\"day\":273.08,\"night\":267.69,\"eve\":271.88,\"morn\":267.69},\"pressure\":1014,\"humidity\":92,\"dew_point\":275.91,\"wind_speed\":5.63,\"wind_deg\":296,\"weather\":[{\"id\":616,\"main\":\"Snow\",\"description\":\"rain and snow\",\"icon\":\"13d\"}],\"clouds\":99,\"pop\":1,\"rain\":1.53,\"snow\":1.24,\"uvi\":2.01},{\"dt\":1617879600,\"sunrise\":1617857360,\"sunset\":1617905682,\"temp\":{\"day\":279.25,\"min\":272.5,\"max\":282.29,\"night\":278.19,\"eve\":281.28,\"morn\":272.93},\"feels_like\":{\"day\":275.76,\"night\":268.93,\"eve\":278.69,\"morn\":268.93},\"pressure\":1024,\"humidity\":56,\"dew_point\":271.08,\"wind_speed\":5.24,\"wind_deg\":244,\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":86,\"pop\":0.12,\"uvi\":2.36},{\"dt\":1617966000,\"sunrise\":1617943625,\"sunset\":1617992183,\"temp\":{\"day\":283.62,\"min\":276.81,\"max\":284.96,\"night\":280.64,\"eve\":283.48,\"morn\":276.81},\"feels_like\":{\"day\":282.13,\"night\":273.09,\"eve\":282.21,\"morn\":273.09},\"pressure\":1014,\"humidity\":54,\"dew_point\":274.62,\"wind_speed\":5.44,\"wind_deg\":235,\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":100,\"pop\":0,\"uvi\":3.07},{\"dt\":1618052400,\"sunrise\":1618029892,\"sunset\":1618078684,\"temp\":{\"day\":279.47,\"min\":279.2,\"max\":280.38,\"night\":280.07,\"eve\":279.45,\"morn\":279.2},\"feels_like\":{\"day\":277.38,\"night\":277.03,\"eve\":276.92,\"morn\":277.03},\"pressure\":1011,\"humidity\":96,\"dew_point\":278.76,\"wind_speed\":2.8,\"wind_deg\":57,\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate rain\",\"icon\":\"10d\"}],\"clouds\":100,\"pop\":1,\"rain\":19.02,\"uvi\":0.32},{\"dt\":1618138800,\"sunrise\":1618116159,\"sunset\":1618165185,\"temp\":{\"day\":287.95,\"min\":277.31,\"max\":287.95,\"night\":277.31,\"eve\":282.46,\"morn\":281.77},\"feels_like\":{\"day\":287.42,\"night\":280.59,\"eve\":281.57,\"morn\":280.59},\"pressure\":1007,\"humidity\":74,\"dew_point\":283.19,\"wind_speed\":7.65,\"wind_deg\":196,\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light rain\",\"icon\":\"10d\"}],\"clouds\":99,\"pop\":1,\"rain\":4.74,\"uvi\":0.82},{\"dt\":1618225200,\"sunrise\":1618202426,\"sunset\":1618251686,\"temp\":{\"day\":279.87,\"min\":275.79,\"max\":280.65,\"night\":276.91,\"eve\":278.49,\"morn\":275.79},\"feels_like\":{\"day\":276.64,\"night\":271.7,\"eve\":275.01,\"morn\":271.7},\"pressure\":1022,\"humidity\":56,\"dew_point\":271.83,\"wind_speed\":5,\"wind_deg\":354,\"weather\":[{\"id\":616,\"main\":\"Snow\",\"description\":\"rain and snow\",\"icon\":\"13d\"}],\"clouds\":100,\"pop\":0.8,\"rain\":0.13,\"snow\":0.45,\"uvi\":1},{\"dt\":1618311600,\"sunrise\":1618288695,\"sunset\":1618338187,\"temp\":{\"day\":282.66,\"min\":274.76,\"max\":282.88,\"night\":278.05,\"eve\":280.51,\"morn\":275.48},\"feels_like\":{\"day\":280.95,\"night\":273.95,\"eve\":278.9,\"morn\":273.95},\"pressure\":1026,\"humidity\":52,\"dew_point\":273.2,\"wind_speed\":3.21,\"wind_deg\":299,\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light rain\",\"icon\":\"10d\"}],\"clouds\":98,\"pop\":0.67,\"rain\":0.98,\"uvi\":1},{\"dt\":1618398000,\"sunrise\":1618374964,\"sunset\":1618424688,\"temp\":{\"day\":278.45,\"min\":276.25,\"max\":279.35,\"night\":277.44,\"eve\":277.95,\"morn\":277.55},\"feels_like\":{\"day\":276.64,\"night\":276.1,\"eve\":277.95,\"morn\":276.1},\"pressure\":1022,\"humidity\":93,\"dew_point\":277.44,\"wind_speed\":2.23,\"wind_deg\":227,\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate rain\",\"icon\":\"10d\"}],\"clouds\":100,\"pop\":1,\"rain\":12.29,\"uvi\":1}]}";


void setup() {
  Serial.begin(115200);
  Serial.println(F("Start..."));
  JsonObject& root = jsonBuffer.parseObject(json);
  if (!root.success()) {
    Serial.println(F("parseObject() failed"));
  }
  unsigned long sunrise = 0;
  unsigned long sunset = 0;
  unsigned long tzo = 0;
  byte tag = 0; // Forecast: maximal 7
  sunrise = root["daily"][tag]["sunrise"];
  sunset = root["daily"][tag]["sunset"];
  tzo = root["timezone_offset"];
  const char* descr = root["daily"][tag]["weather"][tag]["description"];
  Serial.print(sunrise);
  Serial.print(F("\t"));
  Serial.println(sunset);
  Serial.print(F("Mit Berücksichtigung der Zeitzone: Sonnenaufgang: "));
  Serial.print(((sunrise + tzo) % 86400) / 3600);
  Serial.print(":");
  Serial.print(((sunrise + tzo) % 86400) % 3600 / 60);
  Serial.print(F(" Sonnenuntergang: "));
  Serial.print(((sunset + tzo) % 86400) / 3600);
  Serial.print(":");
  Serial.println(((sunset + tzo) % 86400) % 3600 / 60);
  Serial.println(descr);


}

void loop() {}

Ich bekomme gerade "Mäßiger Regen" als Rückmeldung. :slight_smile:
Ich hatte im Eifer des Gefechts übersehen, dass ich eine Zeichenfolge , und keinen Wert als Rückgabe bekomme.
Danke für den Wink mit dem Zaunpfahl, war mir beim ersten durchlesen klar geworden.

taximan:
Ich bekomme gerade "Mäßiger Regen" als Rückmeldung. :slight_smile:

Bitte schau mal - das [ TAG ] nach Weather muss [ 0 ] sein. Ich war die Nacht nur kurz mit Schlitzaugen beim Antworten...

Ne, alles gut. War schon das aktuelle Wetter.
Auf die Lösung hätte ich vielleicht auch selber kommen können, aber manchmal sieht halt den Wald vor lauter Bäumen nicht mehr.

taximan:
War schon das aktuelle Wetter.

Ja, bei dem geht es.
Aber wenn Du TAG auf mehr als 0 stellst, bekommst Du da hinten keine Wert mehr.
Probiers. :wink:

Nicht das es hier noch langweilig wird; OWM überträgt jetzt anscheinend auch die Monddaten:
... "sunset":1618684192,"moonrise":1618642920,"moonset":1618615260,"moon_phase":0.16,"temp"...
Hat natürlich zur Folge, das die ganzen Datenzuweisungen nicht mehr passen. Aufgefallen ist es mir , weil der ESP neuerdings mit "Exception (9):" abgestürzt ist. Hab jetzt einige Tage dumm gesucht und geguckt, bis ich eher zufällig im Antwortstring die Monddaten gesehen habe. Jetzt mal sehen was ich wo ändern muss.

Da der String hier nicht mehr aufgetaucht ist und Du auch sonst schon ein paar Tage nichts mehr von Dir gegeben hast...

Gibt es Erkenntnisse?