Pobieranie i zapisywanie danych pogodowych z OpenWeather za pomocą wtyczki REST

Firma OpenWeather udostępnia dane meteorologiczne i prognozy za pośrednictwem swojej witryny OpenWeatherMap. Dane te można zintegrować z własnymi aplikacjami. Pobieranie informacji odbywa się poprzez oferowane API z interfejsem REST, dzięki czemu integracja może zostać zautomatyzowana. Oprócz szczegółowych prognoz długoterminowych, które są płatne, można bezpłatnie wywoływać aktualne dane pogodowe oraz prognozy krótkoterminowe.

REST Open Weather z OPC Routerem

REST Open Weather z OPC Routerem

Na przykładzie OpenWeatherMap pokazujemy, jak wykorzystać wtyczkę REST oprogramowania OPC Router do wywoływania interfejsów REST API oraz w jaki sposób

    • pobrać dane pogodowe z OpenWeatherMap
    • przetwarzane są dane pogodowe w formacie JSON
    • dane można przechowywać w bazie danych SQL za pomocą wtyczki SQL Server
    • dane pogodowe można przesyłać telegramem za pomocą wtyczki Telegram

API pogodowe, interfejs REST do danych pogodowych

 

REST API

Interfejs REST to interfejs danych oparty na technologiach webowych. Dane z REST API mogą być pobierane za pośrednictwem protokołu HTTPS. Technicznie rzecz biorąc, strona internetowa jest wywoływana za pomocą adresu URL, tak jak w przeglądarce. Do wywołania strony przekazywane są parametry, które zostają dołączone do adresu URL jako pola parametrów. Znaczenie parametrów zostało zdefiniowane w odpowiedniej dokumentacji REST API. W przypadku Weather API od OpenWeather dokumentacja jest dostępna online pod adresem https://openweathermap.org/api.
Dla każdej formy pobierania danych (aktualna pogoda, prognoza dzienna / 5-dniowa / 16- niowa / 30-dniowa itp.) istnieje oddzielny punkt końcowy (endpoint) interfejsu API REST (wywoławczy adres URL). Przykład pobierania bieżącej pogody dla Londynu wygląda następująco: dane wynikowe w formacie JSON (wywołanie zwraca wyłącznie dane testowe).

 

Wywołanie REST

Parametr „q” zawiera nazwę miasta oraz kod kraju. Punktem końcowym (endpoint) REST API jest „weather”. Parametry są dołączane do punktu końcowego za pomocą znaku „?” i łączone operatorem „&”. Każdy parametr składa się z nazwy i wartości, rozdzielonych znakiem „=”. Parametr „appid” służy w Weather API do uwierzytelniania w celu identyfikacji klienta pobierającego dane. Na potrzeby własnej konfiguracji testowej musisz uzyskać własny identyfikator App-ID, aby móc realizować zapytania. Klucz API (App-ID) można uzyskać, rejestrując się na stronie home.openweathermap.org/users/sign_up. Po zalogowaniu klucz API jest widoczny w panelu użytkownika w zakładce „API keys”. Opis procedury pobierania aktualnej pogody dla dowolnej lokalizacji został udokumentowany tutaj: openweathermap.org/current

 

Podłączenie interfejsu REST w OPC Routerze

Aby wywołać punkt końcowy (endpoint) REST za pomocą OPC Router, w pierwszej kolejności należy dodać wtyczkę REST Plug-in dla hosta, tworząc następujący wpis:

Podłączenie interfejsu REST w OPC Routerze
Podłączenie interfejsu REST w OPC Routerze

Po zdefiniowaniu hosta, w połączeniu OPC Routera można użyć obiektu transferu REST korzystającego z utworzonego hosta. W obiekcie transferu danych wybiera się odpowiedni punkt końcowy (endpoint) i określa parametry. Do pobierania aktualnej pogody służy endpoint „weather”, a w tym przypadku lokalizacja jest określana na podstawie ID lokalizacji (tutaj: Schenefeld z ID=2839763).

Aby znaleźć identyfikator (ID) swojej lokalizacji, po prostu wyszukaj swoje miasto na witrynie (https://openweathermap.org). Na stronie z prognozą pogody dla Twojego miasta ID znajdziesz w adresie URL: https://openweathermap.org/city/2839763. Jako metodę REST wykorzystuje się tutaj GET, a parametry są przekazywane jako „QueryString”. Dokumentację dotyczącą pobierania aktualnej pogody na podstawie ID miasta można znaleźć tutaj: https://openweathermap.org/current#cityid

Pobieranie danych pogodowych przez REST jako dokument JSON

Wywołanie interfejsu REST API zwraca dokument JSON z danymi pogodowymi. Dokument ten może zostać przekazany do obiektu transferu JSON w połączeniu OPC Router:

Pobieranie danych pogodowych przez REST jako dokument JSON
Pobieranie danych pogodowych przez REST jako dokument JSON

Po wykonaniu połączenia informacje o strukturze JSON stają się dostępne. W tym celu w połączeniu umieszczono już 30-sekundowy wyzwalacz (trigger), a samo połączenie zostało opublikowane, aby mogło zostać uruchomione. Po jego wykonaniu, w konfiguracji obiektu transferu JSON można użyć funkcji „Suggestions”, aby zidentyfikować dostępne pola w dokumencie JSON i udostępnić je do wyboru. Za pomocą przycisków strzałek można wybrać pola, które mają zostać użyte w połączeniu.

W tym przykładzie z dokumentu JSON wybrano podstawowe informacje o aktualnej pogodzie (temperatura, ciśnienie atmosferyczne, wilgotność, minimalna/maksymalna temperatura dobowa, prędkość oraz kierunek wiatru). Po wybraniu pól danych obiekt transferu zostanie odpowiednio zaktualizowany i wyświetlony.

Pobieranie danych pogodowych przez REST jako dokument JSON

Pobieranie danych pogodowych przez REST jako dokument JSON

Pobieranie danych pogodowych przez REST jako dokument JSON

Pobrane dane pogodowe można teraz poddać dalszemu przetwarzaniu. W tym przykładzie zapiszemy je w bazie danych i prześlemy do serwisu powiadomień. Do zapisu danych w bazie MS SQL wykorzystamy wtyczkę SQL Server. W konfiguracji wtyczki określa się standardowe parametry połączenia, po czym w obiekcie transferu dostępne stają się tabele i procedury składowane. Przykład pokazuje bazę „Weather” z tabel „TBL_WEATHER_CURRENT” jako miejsce przechowywania bieżących danych. Należy wybrać tę tabelę i zaznaczyć kolumny, które mają zostać użyte.

W rezultacie obiekt transferu SQL Server jest gotowy i połączony z polami dokumentu JSON. Jeśli wyzwalacz połączenia zostanie teraz aktywowany, połączenie zapisze dane pogodowe w tabeli SQL Server. Wyzwalacz został ustawiony na poranny transfer o godzinie 06:15.

Dane z tabeli są od teraz dostępne dla innych aplikacji.

Pobieranie danych pogodowych przez REST jako dokument JSON

Wysyłanie informacji pogodowych przez komunikator Telegram

Pobieranie danych pogodowych przez REST jako dokument JSON

Wtyczka Telegram pozwala na dystrybucję danych pogodowych nie tylko przez SQL, ale także – przykładowo – bezpośrednio jako wiadomość push na urządzenie mobilne (np. telefon). Wtyczka ta służy do łączenia się z tzw. botami Telegrama, co pozwala na dwukierunkową komunikację: przesyłanie instrukcji od użytkownika do OPC Routera, a także wysyłanie komunikatów systemowych do zdefiniowanej grupy odbiorców. W poniższym przykładzie skonfigurowano bota dedykowanego do dystrybucji prognoz. Proces generowania bota w środowisku Telegram przebiega następująco:

Aby wysłać wiadomość z danymi do zarejestrowanego użytkownika, w połączeniu OPC Routera umieszczamy obiekt transferu Telegram. Przesyła on przekazany mu tekst do wszystkich użytkowników. Aby wiadomość była czytelna, używamy obiektu Text Replace, który wstawia wartości z dokumentu JSON bezpośrednio do tekstu. Do przeliczenia temperatury z Kelwinów na stopnie Celsjusza wykorzystujemy obiekt transferu Calculator.

Pobieranie danych pogodowych przez REST jako dokument JSON

Efekt końcowy: od OpenWeather do SQL Server i Telegram

Efekt końcowy: od OpenWeather do SQL Server i Telegram

W rezultacie, o określonej godzinie wyzwolenia (możliwe jest również działanie cykliczne lub o kilku porach), zestaw danych zostaje zapisany w bazie danych SQL, a wiadomość Telegram zostaje wysłana.

Oprócz wtyczki SQL Server i wtyczki Telegram dostępnych jest wiele innych wtyczek, dzięki którym dane pogodowe można przesyłać do różnych systemów w celu dostarczania informacji lub optymalizacji procesów w zależności od pogody.

Efekt końcowy: od OpenWeather do SQL Server i Telegram

Przetestuj pobieranie danych pogodowych w OPC Router już teraz!

Dzięki funkcjonalności „przeciągnij i upuść”, OPC Router upraszcza dostęp oraz archiwizację danych pogodowych. Pobierz bezpłatną, pełną wersję demonstracyjną i sprawdź możliwości komunikacji poprzez interfejs REST.

Nie znalazłeś jeszcze odpowiednich informacji?

Tutaj znajdziesz więcej informacji o naszym oprogramowaniu, a także przegląd wszystkich dostępnych wtyczek OPC Router. Udostępniamy również bezpłatne demo, dzięki któremu możesz przetestować w pełni funkcjonalną wersję OPC Router.

Tel. +48 32 235 45 60     E-mail:

Mapa strony: opc-router.pl

© Wszystkie prawa zastrzeżone INEE Sp. z o.o. 2024 - 2026

Go to OPC UA