<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									KNMI weer api met json - Arduino				            </title>
            <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/</link>
            <description>Tweaking4All.nl Discussie Forum</description>
            <language>nl-NL</language>
            <lastBuildDate>Mon, 13 Jul 2026 09:15:29 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1436</link>
                        <pubDate>Tue, 27 Jul 2021 10:20:51 +0000</pubDate>
                        <description><![CDATA[Alles loopt op een ESP8266 - er is geen gebruik gemaakt van een low-code tool. Van wat ik begrijp van low-code tools is dat het misschien makkelijker maakt om een verbinding te bouwen, maar ...]]></description>
                        <content:encoded><![CDATA[<p>Alles loopt op een ESP8266 - er is geen gebruik gemaakt van een low-code tool. <br />Van wat ik begrijp van low-code tools is dat het misschien makkelijker maakt om een verbinding te bouwen, maar sneller zal het niet, of niet altijd, zijn. Hoe hoger het abstractie level, hoe "slordiger" de code omgaat met resources.</p>
<p>De tool die hier gebruikt wordt is de standaard Arduino IDE, en we coderen redelijk dicht tegen de hardware aan.</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1436</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1435</link>
                        <pubDate>Tue, 27 Jul 2021 10:12:53 +0000</pubDate>
                        <description><![CDATA[Mooi om te zien dat dit probleem opgelost is, ik heb nog wat vragen. Had het geholpen om gebruik te maken van een low code voor het bouwen van de API koppeling? Dit zou in principe sneller m...]]></description>
                        <content:encoded><![CDATA[<p>Mooi om te zien dat dit probleem opgelost is, ik heb nog wat vragen. Had het geholpen om gebruik te maken van een low code voor het bouwen van de API koppeling? Dit zou in principe sneller moeten werken. Ik kon het niet terugvinden maar misschien heb je hier al wel gebruik van gemaakt, in dat geval ben ik benieuwd naar welke tool je gebruikt hebt. Ik probeer wat meer over coderen te leren, daarom vind ik het erg interessant om dit soort oplossingen zoals dit draadje te lezen.</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>Anoniem</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1435</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1434</link>
                        <pubDate>Mon, 26 Jul 2021 09:47:06 +0000</pubDate>
                        <description><![CDATA[Goede info 👍
N.b. Helaas is wget alleen onder Linux standaard aanwezig en dus niet onder Windows (download wget for Windows) of MacOS (kan via Homebrew).]]></description>
                        <content:encoded><![CDATA[<p>Goede info 👍</p>
<p>N.b. Helaas is wget alleen onder Linux standaard aanwezig en dus niet onder Windows (download <a href="http://gnuwin32.sourceforge.net/packages/wget.htm" target="_blank" rel="noopener">wget for Windows</a>) of MacOS (kan via <a href="https://formulae.brew.sh/formula/wget" target="_blank" rel="noopener">Homebrew</a>).</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1434</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1433</link>
                        <pubDate>Mon, 26 Jul 2021 09:16:40 +0000</pubDate>
                        <description><![CDATA[hallo naast de interactieve selectiepagina is het ook mogelijk om de selectie vanuit een script te benaderen, bijvoorbeeld met wget. Aangezien het selectieformulier via de POST-methode werkt...]]></description>
                        <content:encoded><![CDATA[<p>hallo naast de interactieve selectiepagina is het ook mogelijk om de selectie vanuit een script te benaderen, bijvoorbeeld met wget. Aangezien het selectieformulier via de POST-methode werkt, moeten de selectieparameters worden doorgegeven als "POST-gegevens". In wget ziet het er als volgt uit:</p>
<p>wget -O bestand --no-check-certificaat --post-data = "variabele = waarde &amp; variabele = waarde &amp; ...." https://www.daginformatie.knmi.nl/klimatologie/daginformatie<br />(om het zoekresultaat in het opgegeven bestand te corrigeren. Als "bestand" wordt vervangen door "-", wordt de uitvoer naar STDOUT gestuurd).</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>Anoniem</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1433</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1386</link>
                        <pubDate>Tue, 16 Mar 2021 15:04:25 +0000</pubDate>
                        <description><![CDATA[Mooi!
Niet vergeten dat zomer- en wintertijd dus nog gecorrigeerd moet worden.
Veel plezier ermee! 😊]]></description>
                        <content:encoded><![CDATA[<p>Mooi!</p>
<p>Niet vergeten dat zomer- en wintertijd dus nog gecorrigeerd moet worden.</p>
<p>Veel plezier ermee! 😊 </p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1386</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1385</link>
                        <pubDate>Tue, 16 Mar 2021 14:01:19 +0000</pubDate>
                        <description><![CDATA[Hans, ik ga er mee aan de gang en hier werkt het. Ga nu kijken of ik iets kan schakelen ..........]]></description>
                        <content:encoded><![CDATA[<p>Hans, ik ga er mee aan de gang en hier werkt het. Ga nu kijken of ik iets kan schakelen ..........</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>pimohans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1385</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1384</link>
                        <pubDate>Tue, 16 Mar 2021 12:54:24 +0000</pubDate>
                        <description><![CDATA[ESP8266 en HTTPS was nog niet zo&#039;n eenvoudige om aan de gang te krijgen (veel voorbeelden maken het voor onze toepassing veel moeilijker, en langzamer, dan nodig is). Ik heb het eerdere voor...]]></description>
                        <content:encoded><![CDATA[<p>ESP8266 en HTTPS was nog niet zo'n eenvoudige om aan de gang te krijgen (veel voorbeelden maken het voor onze toepassing veel moeilijker, en langzamer, dan nodig is). Ik heb het eerdere voorbeeld aangepast voor https gebruik.</p>
<p>Ik heb geen API key voor meteoserver.nl - ik heb er wel een aangemaakt, maar kreeg vervolgens de melding dat ik er voor moest betalen, en daar had ik dus even geen zin in. 🤣 </p>
<p>Ik heb dus de weerlive.nl gepakt wat ook met https werkt (ik vermoed dat ook hun in de toekomst http ondersteuning laten vallen).</p>
<p>Daarnaast pik ik de tijd van een NTP server (zomer en wintertijd correctie nog niet toegepast!) om de tijd op te halen en vervolgens te bepalen of het dag of nacht is.</p>
<p>Ik neem aan dat je hier iets mee kunt, of stukken hergebruiken als je een andere methode wilt gebruiken (b.v. meteoserver). 😊 </p>
<p> </p>
<p>Ook als downloadbare INO: </p>
51
<p> </p>
<pre contenteditable="false">#include &lt;ESP8266WiFi.h&gt;

#include &lt;WiFiClient.h&gt;
#include &lt;WiFiUdp.h&gt;
#include &lt;ESP8266WiFi.h&gt;
#include &lt;ESP8266HTTPClient.h&gt;
#include &lt;WiFiClientSecureBearSSL.h&gt;

#include &lt;StreamUtils.h&gt;

#include &lt;NTPClient.h&gt; // don't forget to install the NTPClient

#include &lt;ESP8266HTTPClient.h&gt;              // http web access library
#include &lt;ArduinoJson.h&gt;                    // JSON decoding library

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "nl.pool.ntp.org", 0); // take this NTP server so we do not need to calculate an offset

// remove comment slashes to see debug output
#define DEBUG

const char* ssid = "SkyNet";
const char* password = "22101967";
const char* weatherURL = "https://weerlive.nl/api/json-data-10min.php?key=19970382d1&amp;locatie=Tilburg";

int timeHours;
int timeMinutes;

int SupHours;
int SupMinutes;

int SunderHours;
int SunderMinutes;

boolean SunIsUp;

#define Richtingen 16
char * RichtingGraden  = { {"Noord", "0"     }, 
                                          {"NNO",   "22.5"  },
                                          {"NO",    "45"    },
                                          {"ONO",   "67.5"  },
                                          {"Oost",  "90"    },
                                          {"OZO",   "112.5" },
                                          {"ZO",    "135"   },
                                          {"ZZO",   "157.5" },
                                          {"Zuid",  "180"   },
                                          {"ZZW",   "202.5" },
                                          {"ZW",    "225"   }, 
                                          {"WZW"    "247.5" }, 
                                          {"West",  "270"   },
                                          {"WNW",   "292.5" },
                                          {"NW",    "315"   },
                                          {"NNW",   "337.5" }  };

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.print("\n\rConnecting.");

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);               // access Wi-FI point
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("connected\r\n");

  timeClient.begin();
}

void loop() {
  // Update time - sometimes, only at first read, this returns 00:00 (incorrectly)
  timeClient.update();
  timeHours = timeClient.getHours();
  timeMinutes = timeClient.getMinutes();
  
  Serial.println("-----------------------------------------------------------");
  Serial.printf("Current Time : %02d:%02d  (without daylight saving correction!)\n\r", timeHours, timeMinutes);
  Serial.println("-----------------------------------------------------------");
  
  std::unique_ptr&lt;BearSSL::WiFiClientSecure&gt;client(new BearSSL::WiFiClientSecure);
  client-&gt;setInsecure();
  
  if (WiFi.status() == WL_CONNECTED) {      // Check WiFi connection status

    HTTPClient http;                        // Declare an object of class HTTPClient
    http.begin(*client, weatherURL);
    
    int httpCode = http.GET();              // send the request

    // for debugging, dumps HTTP result (JSON) to serial monitor
    #ifdef DEBUG
      Serial.printf("HTTP Return code = %d\r\n",httpCode);
    #endif
    
    if (httpCode &gt; 0) {                     // check the returning code (&gt;0 may not be correct)
      
      DynamicJsonDocument doc(2048);
      
      #ifdef DEBUG
        Serial.print("JSON Data: ");
        ReadLoggingStream loggingStream(http.getStream(), Serial);
        DeserializationError error = deserializeJson(doc, loggingStream);
        Serial.println("\n\r-----------------------------------------------------------");
      #else
        DeserializationError error = deserializeJson(doc, http.getStream());
      #endif
        
      if (error) {
        Serial.print("JSON Deserialization failed: ");
        Serial.println(error.f_str());
      }
      
      float temp          = (float)(doc);        // get temperature (Celcius)
      int humidity        = doc;                   // get humidity (relatieve luchtvochtigheid)
      float pressure      = (float)(doc);      // get pressure (luchtdruk)
      float wind_speed    = doc;               // get wind speed (in m/s)
      const char* winddirection = doc;          // get wind degree (windrichting)
      float feels_like    = (float)(doc);       // get feel_like (gevoelstemperatuur)

      const char* ZonsOpgang = doc;
      const char* ZonsOndergang = doc;
      
      // print data
      Serial.println("Het weer NU in Tilburg");
      Serial.printf("Temperatuur   = %.2f°C\r\n", temp);
      Serial.printf("Voelt als     = %.2f°C\r\n", feels_like);
      Serial.printf("Vochtigheid   = %d %%\r\n", humidity);
      Serial.printf("Luchtdruk     = %.3f millibar (hPa)\r\n", pressure);
      Serial.printf("Wind snelheid = %.1f m/s\r\n", wind_speed);
      Serial.printf("Wind richting = %s (%s°)\r\n", winddirection, RichtingNaarGraden(winddirection));
      Serial.printf("Zonsopgang    = %s\r\n", ZonsOpgang);
      Serial.printf("Zonsondergang = %s\r\n\r\n", ZonsOndergang);

      // Convert SUP and SUNDER strings to number we can calculate with
      sscanf(ZonsOpgang, "%02d:%02d", &amp;SupHours, &amp;SupMinutes);
      sscanf(ZonsOndergang, "%02d:%02d", &amp;SunderHours, &amp;SunderMinutes);
      
      // See if we're dealing with daytime (I hope I did that right)
      SunIsUp = (  ( (timeHours&gt;SupHours) || ( (timeHours==SupHours) &amp;&amp; (timeMinutes&gt;=SupMinutes) ) ) &amp;&amp;
                   ( (timeHours&lt;SunderHours) || ( (timeHours==SunderHours) &amp;&amp; (timeMinutes&lt;=SunderMinutes) ) ) );

      if(SunIsUp) {
        Serial.println("The Sun is UP (daytime)"); // Do something here; eg. switch lights OFF
      } else {
        Serial.println("The Sun is DOWN (nighttime)"); // Do something here; eg. switch lights ON
      }
      
    }

    http.end(); // Close connection
  }

  // note: seems per documentation that the JSON data is only updated every 10 minutes, 
  // so it is probably better set the the interval to 10 minutes as well
  delay(60000); // wait 1 minute  
}

char* RichtingNaarGraden(const char* WindRichting) {
  for(int Counter=0; Counter&lt;Richtingen; Counter++) {
    if ( strcmp(WindRichting, RichtingGraden) == 0 )
      return RichtingGraden;
  }
}</pre>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1384</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1383</link>
                        <pubDate>Tue, 16 Mar 2021 09:49:40 +0000</pubDate>
                        <description><![CDATA[Gaat soms nog fout omdat het een https verbinding moet zijn de link hierboven werkt soms wel meestal niet]]></description>
                        <content:encoded><![CDATA[<p>Gaat soms nog fout omdat het een https verbinding moet zijn de link hierboven werkt soms wel meestal niet</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>pimohans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1383</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1382</link>
                        <pubDate>Tue, 16 Mar 2021 07:44:18 +0000</pubDate>
                        <description><![CDATA[Hans erg bedankt voor de voorbeelden waarom ik vroeg maar ...hier moet ik echt lossen want dit gaat ver boven mijn pet op dit moment.
Met dezelfde sketch maar een ander adresen door het gro...]]></description>
                        <content:encoded><![CDATA[<p>Hans erg bedankt voor de voorbeelden waarom ik vroeg maar ...hier moet ik echt lossen want dit gaat ver boven mijn pet op dit moment.</p>
<p>Met dezelfde sketch maar een ander adres http://data.meteoserver.nl/api/liveweer_synop.php?pc=5045CA&amp;key= en door het groter maken van de doc naar 6144 krijg ik nu in mijn seriële monitor:</p>
<p>time = 16-03-2021 08:28:03 <br />Zon komt op = 06:49 <br />Zon gaat onder om = 18:48       is hier wel mee te werken om te kunnen schakelen  en bijvoorbeeld maar om de 2 of 4 uur te updaten van de weersite?  hartelijke groet, Hans</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>pimohans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1382</guid>
                    </item>
				                    <item>
                        <title>RE: KNMI weer api met json</title>
                        <link>https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1381</link>
                        <pubDate>Mon, 15 Mar 2021 13:36:10 +0000</pubDate>
                        <description><![CDATA[Dat kan zeer zeker .... maar ik vrees dat je dan wel een bron moet hebben waar je de tijd vandaan haalt.
Een Realtime Clock is zeker een optie ... maar misschien kun je de actuele tijd erge...]]></description>
                        <content:encoded><![CDATA[<p>Dat kan zeer zeker .... maar ik vrees dat je dan wel een bron moet hebben waar je de tijd vandaan haalt.</p>
<p>Een Realtime Clock is zeker een optie ... maar misschien kun je de actuele tijd ergens op het Internet vandaan plukken.<br />Helaas bevat de JSON van de weerlive.nl niet de huidige tijd, anders kon je dat elke keer als je de data ophaalt vergelijken met sup en sunder.</p>
<p>Twee voorbeelden waar je misschien iets mee kunt:</p>
<p><a href="http://worldtimeapi.org/api/timezone/Europe/Amsterdam.txt" target="true">http://worldtimeapi.org/api/timezone/Europe/Amsterdam.txt</a></p>
<p>3de regel, maar je moet dan wel even rommelen om de tijd eruit te krijgen</p>
<pre contenteditable="false">abbreviation: CET
client_ip: 185.92.69.87
datetime: 2021-03-15T14:31:59.261087+01:00
day_of_week: 1
day_of_year: 74
dst: false
dst_from: 
dst_offset: 0
dst_until: 
raw_offset: 3600
timezone: Europe/Amsterdam
unixtime: 1615815119
utc_datetime: 2021-03-15T13:31:59.261087+00:00
utc_offset: +01:00
week_number: 11</pre>
<p> </p>
<p>of</p>
<p><a href="http://worldclockapi.com/api/json/cet/now" target="true">http://worldclockapi.com/api/json/cet/now</a></p>
<p>Waarbij je JSON kunt gebruiken, maar ook hier moet je even prullen om de tijd eruit te halen</p>
<pre contenteditable="false">{
  "$id": "1",
  "currentDateTime": "2021-03-15T14:31+01:00",
  "utcOffset": "01:00:00",
  "isDayLightSavingsTime": false,
  "dayOfTheWeek": "Monday",
  "timeZoneName": "Central Europe Standard Time",
  "currentFileTime": 132602922774084580,
  "ordinalDate": "2021-74",
  "serviceResponse": null
}</pre>
<p> </p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/arduino/">Arduino</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/arduino/knmi-weer-api-met-json/paged/2/#post-1381</guid>
                    </item>
							        </channel>
        </rss>
		