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:
    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

  • 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.