Przejdź do treści

Klient HTTP

Strona Klient HTTP umożliwia skonfigurowanie okresowego wysyłania żądań HTTP, a także żądań HTTP do wykorzystania w funkcji Zdarzenia.

Klient HTTP

Elementy strony

Formularz konfiguracji klienta HTTP zawiera pola:

  • włączenia funkcji wysyłania za pośrednictwem modułu GSM zamiast połączenia Ethernet
  • włącz cykliczne wysyłanie zapytań na pierwszy adres
  • używanie podwójnego znaku % do wstawiania odczytów z urządzenia (pozwala na wprowadzanie znaku %)
  • używanie Digest Authentication (po próbie z Basic Authentication)
  • okres wysyłania cyklicznego zapytania
  • adresy serwerów lub raczej adresy URL do zapytania (do 4), w formacie <host>:<port>/<ścieżka>

Konfiguracja klienta HTTP

Klient wysyła zapytania HTTP metodą GET na wskazany serwer i port co określony czas.

W zapytaniu można wstawić wartości z czujników przy pomocy specjalnego wyrażenia %XXXAB, przy czym B jest tylko używane w OLED, a w kliencie HTTP pomijane. Więcej informacji na ten temat tutaj.

Przykładowe zapytanie HTTP GET do serwera thingspeak, zapisujące wartość z czujnika T1 na serwer

W pole Adres serwera wpisać:

api.thingspeak.com:80/update?api_key=H2PN0O35KRVRG6Q0&field1=%141

W efekcie na serwer wysyłany jest następujący tekst, w którym można zauważyć podstawienie wartości czujnika we wskazane miejsce:

update?api_key=H2PN0O35KRVRG6Q0&field1=26.3

Zapytanie można też wysłać ręcznie z poziomu przeglądarki internetowej bez udziału LK3 poprzez wklejenie/wpisanie poniższego tesktu w pasku wyszukiwania:

http://api.thingspeak.com/update?api_key=H2PN0O35KRVRG6Q0&field1=26.3

Pełna zawartość zapytania:

GET /update?api_key=H2PN0O35KRVRG6Q0&field1=26.3 HTTP/1.0
Host: api.thingspeak.com
Connection: close

Kody odczytów

Bieżące odczyty z czujników i wybrane parametry z urządzenia mogą być pobierane przy pomocy specjalnego formatu do: zapytań klienta HTTP, wyświetlania na wyświetlaczu OLED, tekstów emaili oraz SMSów (od HW3.5+ SW 1.40).

Format dla klienta HTTP to %XXXA, a dla OLED %XXXAB (z dodatkowym parametrem B). Jest tak od wersji HW3.5+ SW 1.36, dla poprzednich wersji dla klienta HTTP to %XXA, a dla OLED %XXAB.

  • % – znak rozpoczynający specjalny format
  • XXX – numer czujnika, koniecznie trzycyfrowa wartość (lista kodów poniżej)
  • A – dzielnik, zakres 0-3, pozwala dopasować miejsce po przecinku dla konkretnego odczytu, ponieważ wartości są zwracane w liczbach całkowitych

    • 0 – nie dziel wartości
    • 1 – podziel przez 10
    • 2 – podziel przez 100
    • 3 – podziel przez 1000

    Inny efekt dzielnika dla niektórych odczytów

    W przypadku niektórych zmiennych dzielnik A działa inaczej:

    • UPTIME:
      • 0 - wartość w sekundach
      • 1 - wartość w minutach
      • 2 - wartość w godzinach (przed SW 1.44 wartość w sekundach)
      • 3 - wartość w formacie dd hh:mm:ss (przed SW 1.44 wartość w godzinach)
    • Time:
      • 0 - hh:mm:ss
      • 1 - hhmmss
    • Date:
      • 0 - yyyy-mm-dd
      • 1 - yyyymmdd

    Zalecane ustawienia dzielnika

    Dzielnik powinien przyjmować następujące wartości aby odczyty były w tym samym formacie jak na stronie:

    • 0 dla OUT, PWM, INPD, INPA_RAW, CO2
    • 1 dla T1, H1, DS, PM
    • 2 dla P1, INPA, VCC/VIN, TEMP
    • 3 dla POWER, ENERGY, DIFF (od HW 3.5+ SW 1.49. Wcześniej wartość A dla DIFF powinna wynosić 1, 2 lub 3, w zależności od wybranych w nim odczytów)
  • B - obcinacz, zakres 0-9, skraca zapis o zadaną ilość znaków

Lista kodów odczytów

{
    "000": "INPA1",
    "001": "INPA2",
    "002": "INPA3",
    "003": "INPA4",
    "004": "INPA5",
    "005": "INPA6",
    "006": "VCC",
    "007": "INPA1_RAW",
    "008": "INPA2_RAW",
    "009": "INPA3_RAW",
    "010": "INPA4_RAW",
    "011": "INPA5_RAW",
    "012": "INPA6_RAW",
    "013": "TEMP",
    "014": "T1",
    "015": "H1",
    "016": "DS1",
    "017": "DS2",
    "018": "DS3",
    "019": "DS4",
    "020": "DS5",
    "021": "DS6",
    "062": "DS7",
    "063": "DS8",
    "022": "DIFF1",
    "023": "DIFF2",
    "067": "DIFF3",
    "103": "DIFF4", // dodane w HW 3.5+ SW 1.49
    "104": "DIFF5", // dodane w HW 3.5+ SW 1.49
    "105": "DIFF6", // dodane w HW 3.5+ SW 1.49
    "035": "POWER1",
    "036": "POWER2",
    "037": "POWER3",
    "038": "POWER4",
    "106": "POWER5", // dodane w HW 3.5+ SW 1.49
    "107": "POWER6", // dodane w HW 3.5+ SW 1.49
    "039": "ENERGY1",
    "040": "ENERGY2",
    "041": "ENERGY3",
    "042": "ENERGY4",
    "108": "ENERGY5", // dodane w HW 3.5+ SW 1.49
    "109": "ENERGY6", // dodane w HW 3.5+ SW 1.49
    "043": "OUT0",
    "044": "OUT1",
    "045": "OUT2",
    "046": "OUT3",
    "047": "OUT4",
    "048": "OUT5",
    "049": "PWM0",
    "050": "PWM1",
    "051": "PWM2",
    "052": "PWM3",
    "053": "INPD1",
    "054": "INPD2",
    "055": "INPD3",
    "056": "INPD4",
    "065": "PM1.0",
    "057": "PM2.5",
    "066": "PM4.0",
    "058": "PM10.0",
    "059": "P1",
    "060": "CO2/GMQ125", // zmienione w HW 3.5+ SW 1.49
    "061": "UPTIME",
    "064": "IP",
    "068": "Distance sensor",
    "069": "Time",
    "070": "Date",
    "071": "m1",
    "072": "m2",
    "073": "m3",
    "074": "m4",
    "075": "m5",
    "076": "m6",
    "077": "m7",
    "078": "m8",
    "079": "m9",
    "080": "m10",
    "081": "m11",
    "082": "m12",
    "083": "m13",
    "084": "m14",
    "085": "m15",
    "086": "m16",
    "087": "m17",
    "088": "m18",
    "089": "m19",
    "090": "m20",
    "091": "m21",
    "092": "m22",
    "093": "m23",
    "094": "m24",
    "095": "m25",
    "096": "m26",
    "097": "m27",
    "098": "m28",
    "099": "m29",
    "100": "m30",
    "101": "RHEWA 82comfort", // dodane w HW 3.5+ SW 1.38
    "102": "IAQ", // dodane w HW 3.5+ SW 1.40
    "024": "DUX0",
    "026": "DUX1",
    "028": "DUX2",
    "030": "DUX3",
    "032": "DUX4",
    "034": "DUX5",
    "025": "DUX6",
    "027": "DUX7",
    "029": "DUX8",
    "031": "DUX9",
    "033": "DUX10",
}
{
    "00": "INPA1",
    "01": "INPA2",
    "02": "INPA3",
    "03": "INPA4",
    "04": "INPA5",
    "05": "INPA6",
    "06": "VIN",
    "07": "INPA1_RAW",
    "08": "INPA2_RAW",
    "09": "INPA3_RAW",
    "10": "INPA4_RAW",
    "11": "INPA5_RAW",
    "12": "INPA6_RAW",
    "13": "TEMP",
    "14": "T1",
    "15": "H1",
    "16": "DS1",
    "17": "DS2",
    "18": "DS3",
    "19": "DS4",
    "20": "DS5",
    "21": "DS6",
    "62": "DS7",
    "63": "DS8",
    "22": "DIFF1",
    "23": "DIFF2",
    "81": "DIFF3",
    "35": "POWER1",
    "36": "POWER2",
    "37": "POWER3",
    "38": "POWER4",
    "39": "ENERGY1",
    "40": "ENERGY2",
    "41": "ENERGY3",
    "42": "ENERGY4",
    "43": "OUT0",
    "44": "OUT1",
    "45": "OUT2",
    "46": "OUT3",
    "47": "OUT4",
    "48": "OUT5",
    "49": "PWM0",
    "50": "PWM1",
    "51": "PWM2",
    "52": "PWM3",
    "53": "INPD1",
    "54": "INPD2",
    "55": "INPD3",
    "56": "INPD4",
    "65": "PM1.0",
    "57": "PM2.5",
    "66": "PM4.0",
    "58": "PM10.0",
    "59": "P1",
    "60": "CO2",
    "61": "UPTIME",
    "64": "IP",
    "67": "sdm1 (Voltage/Total system power)",
    "68": "sdm2 (Current/Import Energy since last reset)",
    "69": "sdm3 (Active power/Export Energy since last reset)",
    "70": "sdm4 (Apparent power/Total Energy)",
    "71": "sdm5 (Reactive power/Settable total Energy)",
    "72": "sdm6 (Power factor/Settable import Energy)",
    "73": "sdm7 (Phase angle/Settable export Energy)",
    "74": "sdm8 (Frequency/Import power)",
    "75": "sdm9 (Import active energy/Export power)",
    "76": "sdm10 (Export active energy/-)",
    "77": "sdm11 (Import reactive energy/-)",
    "78": "sdm12 (Export reactive energy/-)",
    "79": "sdm13 (Total active energy/-)",
    "80": "sdm14 (Total reactive energy/-)",
    "24": "DUX0",
    "26": "DUX1",
    "28": "DUX2",
    "30": "DUX3",
    "32": "DUX4",
    "34": "DUX5",
    "25": "DUX6",
    "27": "DUX7",
    "29": "DUX8",
    "31": "DUX9",
    "33": "DUX10",
}

Aktualna lista kodów odczytów jest dostępna na stronie Lan Kontrolera w sekcjach, w których może być wykorzystana: Klient HTTP, OLED, E-mail, Port szeregowy > GSM SIM800L. Wygląda ona jak poniżej (fragment ze strony Klient HTTP).

Klient HTTP - lista kodów odczytów

Wykorzystanie z kamerą Dahua

Klienta HTTP można wykorzystać do wysyłania danych do wyświetlenia na obrazie kamery Dahua, np. odczyty z czujników.

W tym celu należy skonfigurować klienta HTTP na LK w następujący sposób:

  • zaznaczyć Użyj Digest Authentication
  • w polu Adres serwera 1 wpisać <NAZWA_UŻYTKOWNIKA>:<HASŁO>@<ADRES_IP_KAMERY>:80/cgi-bin/configManager.cgi?action=setConfig&ChannelTitle[0].Name=<TEKST_DO_WYŚWIETLENIA>, np. admin:admin@192.168.1.14:80/cgi-bin/configManager.cgi?action=setConfig&ChannelTitle[0].Name=T %0141 H %0151|U %061 (%0141 - odczyt T1, %0151 - odczyt H1, %061 - uptime). Ewentualnie można wybrać inne pole adresu, ale dla pierwszego jest dostępna funkcja cyklicznego wysyłania. Pozostałe pole mogą być wykorzystane w funkcji Zdarzeń, tak by, np. warunkowo ustawiać różne teksty.
  • zaznaczyć Włącz okresowe wysyłanie (tylko pierwszy adres)
  • ustawić Okres wysyłania na 30 (im mniejsza wartość tym częstsze aktualizacje tekstu na widoku kamery)

W efekcie na widoku kamery będzie widoczny zadany tekst, który będzie aktualizowany co 30 sekund. Na obrazie poniżej jest przedstawiony omawiana funkcja na kamerze Dahua IPC-HFW5241T-ASE. Na kamerze jest wyłączony dostęp HTTPS (System > Safety > HTTPS), ponieważ LK obecnie nie obsługuje zapytań HTTPS, tylko HTTP.

Dahua