Klient HTTP¶
Strona Klient HTTP umożliwia skonfigurowanie okresowego wysyłania żądań HTTP, a także żądań HTTP do wykorzystania w funkcji Zdarzenia.
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 formatXXX
– 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, CO21
dla T1, H1, DS, PM2
dla P1, INPA, VCC/VIN, TEMP3
dla POWER, ENERGY, DIFF (od HW 3.5+ SW 1.49. Wcześniej wartośćA
dla DIFF powinna wynosić1
,2
lub3
, 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).
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.