Pobieranie informacji o jakości powietrza

Uwaga! Poniższa instrukcja przeznaczona jest dla modułu Gate HTTP drugiej generacji!


Jeśli chcemy wykorzystać w systemie informacje na temat jakości powietrza w okolicy wybranego miejsca, możemy użyć do tego celu zewnętrznego serwisu, np.: https://developer.airly.eu/

Według przykładu umieszczonego na stronie https://developer.airly.eu/api, zapytanie API może wyglądać następująco:
API call: https://airapi.airly.eu/v2/measurements/nearest?indexType=AIRLY_CAQI&lat=50.062006&lng=19.940984&maxDistanceKM=3


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: https://airapi.airly.eu
    Path: /v2/measurements/nearest
    QueryStringParams: indexType=AIRLY_CAQI&lat=50.067358&lng=19.871613&maxDistanceKM=3

    Uwaga! Klucz api przesyłany jest przez cechę RequestHeaders, a otrzymuje się go po założeniu konta na stronie: https://developer.airly.eu/login

  • W kolejnym kroku należy utworzyć cechy użytkownika typu string oraz number:
  • Następnie należy przygotować skrypt:
    local resp = GATE_HTTP->Airly->ResponseBody

    GATE_HTTP->fromDate = resp.current.fromDateTime
    GATE_HTTP->tillDate = resp.current.tillDateTime
    GATE_HTTP->name1 = resp.current.values[1].name
    GATE_HTTP->value1 = resp.current.values[1].value
    GATE_HTTP->name2 = resp.current.values[2].name
    GATE_HTTP->value2 = resp.current.values[2].value
    GATE_HTTP->name3 = resp.current.values[3].name
    GATE_HTTP->value3 = resp.current.values[3].value
    GATE_HTTP->name4 = resp.current.values[4].name
    GATE_HTTP->value4 = resp.current.values[4].value
    GATE_HTTP->name5 = resp.current.values[5].name
    GATE_HTTP->value5 = resp.current.values[5].value
    GATE_HTTP->name6 = resp.current.values[6].name
    GATE_HTTP->value6 = resp.current.values[6].value
    GATE_HTTP->level1 = resp.current.indexes[1].level
    GATE_HTTP->description1 = resp.current.indexes[1].description
    GATE_HTTP->index_value1 = resp.current.indexes[1].value

     

  • Skrypt należy przypisać do zdarzenia OnResponse w obiekcie wirtualnym HttpRequest:
  • Dodatkowo należy utworzyć skrypt, w którym do cechy RequestHeaders zostanie przekazany klucz api:
    local key = "apikey: YOUR_API_KEY\r\n"
    GATE_HTTP->Airly->SetRequestHeaders(key)
    GATE_HTTP->Airly->SendRequest()

     

  • Następnie należy przesłać konfigurację do CLU.
  • Po poprawnym przesłaniu konfiguracji należy uruchomić skrypt ustawiający cechę RequestHeaders oraz wywołujący metodę SendRequest.
  • Po wywołaniu skryptu cecha StatusCode powinna przyjąć wartość 200:
  • Wartości cech użytkownika powinny przyjąć odpowiednie wartości:
  • Dla porównania - odpowiedź na zapytanie wysłane za pomocą innego programu:
  • Uzyskane dane można wyświetlić w aplikacji mobilnej, na Smart Panelu lub wykorzystać do tworzenia logiki w systemie.