Gate HTTP - pobieranie danych z serwisu OpenWeatherMap
Jeśli chcemy wykorzystać w systemie informacje na temat pogody, wschodu lub zachodu słońca, możemy użyć do tego celu zewnętrznego serwisu, np.: https://openweathermap.org/
Według przykładu na stronie https://openweathermap.org/current, zapytanie API wygląda następująco:
API call: api.openweathermap.org/data/2.5/weather?q={city name}&appid={your api key}
Poniżej opisujemy, jak w prosty sposób można uzyskać wspomniane informacje:
- Należy utworzyć obiekt wirtualny HttpRequest:
- W obiekcie HttpRequest należy ustawić następujące parametry:
Gdzie:
Host: api.openweathermap.org
Path: /data/2.5/weather
QueryStringParams: q=Krakow&appid={your api key}
Uwaga! Klucz api otrzymuje się po założeniu konta na stronie https://home.openweathermap.org/users/sign_up - W kolejnym kroku należy utworzyć cechy użytkownika typu string oraz number:
- Następnie należy przygotować skrypt:
if(GATE_HTTP->open_weather_map->StatusCode==200) then
local resp = GATE_HTTP->open_weather_map->ResponseBody
GATE_HTTP->owm_lon = resp.coord.lon
GATE_HTTP->owm_lat = resp.coord.lat
GATE_HTTP->owm_weather_main = resp.weather[1].main
GATE_HTTP->owm_weather_desc = resp.weather[1].description
GATE_HTTP->owm_weather_base = resp.base
GATE_HTTP->owm_temp = resp.main.temp
GATE_HTTP->owm_temp_min = resp.main.temp_min
GATE_HTTP->owm_temp_max = resp.main.temp_max
GATE_HTTP->owm_pressure = resp.main.pressure
GATE_HTTP->owm_humidity = resp.main.humidity
GATE_HTTP->owm_visibility = resp.visibility
GATE_HTTP->owm_wind_speed = resp.wind.speed
GATE_HTTP->owm_wind_deg = resp.wind.deg
GATE_HTTP->owm_cloud_all = resp.clouds.all
GATE_HTTP->owm_country = resp.sys.country
GATE_HTTP->owm_sunrise = resp.sys.sunrise
GATE_HTTP->owm_sunset = resp.sys.sunset
GATE_HTTP->owm_timezone = resp.timezone
GATE_HTTP->owm_city = resp.name
end - Utworzony skrypt należy przypisać do zdarzenia OnResponse w obiekcie wirtualnym HttpRequest:
- Następnie należy przesłać konfigurację do CLU.
- Po poprawnym przesłaniu konfiguracji, w zakładce sterowanie obiektu wirtualnego HttpRequest należy wywołać metodę SendRequest:
- Po wywołaniu metody cecha StatusCode powinna przyjąć wartość 200:
- Wartości cech użytkownika powinny przyjąć odpowiednie wartości:
- Dla porównania - odpowiedź na zapytanie wklejone w oknie przeglądarki internetowej:
- Uzyskane dane można wyświetlić w aplikacji mobilnej, na Smart Panelu lub wykorzystać do tworzenia logiki w systemie.