network.lib > Modulentwicklung

Neuer Wetter-Baustein für Weatherbit.io

(1/3) > >>

mattsches:
Hallo zusammen,

nachdem openweathermap.org auch für die bestehenden API Keys die tagesgenaue Wettervorhersage abgeschaltet hat, stand ich wieder einmal vor dem Problem, keine Wetterdaten zu bekommen. Yahoo und World Weather sind ja bekanntlich schon länger tot.

Also habe ich mich mal wieder an das Thema gesetzt und einen neuen Baustein geschrieben. Dieses Mal für Weatherbit.io. Dort enthält der kostenlose API-Zugang die tagesgenauen Daten - hoffen wir, dass das so bleibt.

Eine kleine Hürde war die Bereitstellung der Daten durch den Dienst. Weatherbit.io liefert (wie zwischenzeitlich viele andere Dienste auch) die Daten nicht im XML-, sondern im JSON-Format aus. Also musste im selben Zuge noch ein JSON-Parser her.

Zum Wetterbaustein: Die Handhabung ist ähnlich wie bei YAHOO_WEATHER:


* Variable anlegen, in der die Wetterdaten bereitgestellt werden sollen (Typ WEATHERBIT_DATA)
* Gewünschten Ort mittels CITY_ID an den Baustein übergeben (Liste mit verfügbaren IDs siehe https://www.weatherbit.io/api/meta)
* API Key übergeben (dazu bei Weatherbit registrieren unter https://www.weatherbit.io/account/create)
* IP_C, S_BUF, R_BUF und IP_CONTROL-Aufruf wie bei YAHOO_WEATHER beschrieben
* Start der Abfrage mittels positiver Flanke an ACTIVATE
Es werden Daten für den aktuellen und die vier folgenden Tage abgerufen. Einheiten sind metrisch + °C; Imperial und Fahrenheit habe ich mir gespart, könnten aber leicht nachgerüstet werden.

Der neue JSON_READER wird vom Weatherbit-Baustein intern genutzt und ist in der angehängten Exportdatei bereits enthalten.

Das Ganze gibt es aktuell für CODESYS V2.3/TwinCAT 2. Eine Portierung auf CODESYS V3.5 ist sehr einfach möglich, eine angepasste Quelle kann ich bei Bedarf gerne nachliefern.

Bitte habt bei Fragen Verständnis, dass ich u. U. nicht sofort antworte. Ich schaue hier nicht unbedingt jeden Tag rein, schon gar nicht bei dem Wetter.  ;D

Viel Spaß!

Nete:
Hallo,

Haben sie diese Portierung auf CODESYS3.5 zur verfügung bitte ?


Danke !

mattsches:
Sorry, bin gerade im Urlaub. Wird noch etwas dauern.

Nete:
Any updates ?

Thanks !

mattsches:
Hier eine Portierung für CODESYS V3.5. Namensräume sind OSCAT_BASIC für die Basic.lib und OSCAT_NETWORK für die Network.lib. Bitte entsprechend einstellen oder halt meine Bausteine anpassen.

Getestet habe ich nicht wirklich (=auf einer Steuerung). Das Programm lässt sich aber fehlerfrei übersetzen, die Bausteine (JSON_READER und WEATHERBIT) sollten so funktionieren.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln