Novatek-Electro TR-100E Documentation
https://www.overvis.com/docs/pl/tr-100e/
2026-10-28
| |
|---|
Novatek-Electro TR-100E
TR-100E to cyfrowy przekaźnik temperatury do monitorowania maksymalnie czterech stref temperaturowych. Zapewnia ochronę przekaźnikową, rejestrację zdarzeń i temperatury, interfejs Web, Modbus TCP oraz bezpieczny dostęp zdalny przez VPN WireGuard. DokumentacjaDział zatytułowany „Dokumentacja”
|
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Instrukcja obsługi TR-100ENOVATEK-ELECTRO CYFROWY PRZEKAŹNIK TEMPERATURY TR-100EDział zatytułowany „CYFROWY PRZEKAŹNIK TEMPERATURY TR-100E”
INSTRUKCJA OBSŁUGI (PASZPORT)Dział zatytułowany „INSTRUKCJA OBSŁUGI (PASZPORT)”Instrukcja obsługi przeznaczona jest do zapoznania się z urządzeniem, zasadą działania, zasadami eksploatacji i konfiguracji przekaźnika temperatury TR-100E. Podczas eksploatacji i obsługi technicznej należy przestrzegać wymagań dokumentów normatywnych:
Podłączenie i obsługa techniczna produktu powinny być wykonywane przez wykwalifikowanych specjalistów, którzy zapoznali się z niniejszą Instrukcją obsługi. Przy przestrzeganiu zasad eksploatacji produkt jest bezpieczny w użyciu. TERMINY I SKRÓTYDział zatytułowany „TERMINY I SKRÓTY”SPIS TREŚCIDział zatytułowany „SPIS TREŚCI”
1 PRZEZNACZENIE I CHARAKTERYSTYKI TECHNICZNEDział zatytułowany „1 PRZEZNACZENIE I CHARAKTERYSTYKI TECHNICZNE”1.1 Przeznaczenie produktuDział zatytułowany „1.1 Przeznaczenie produktu”Cyfrowy przekaźnik temperatury TR-100E (dalej TR-100E) przeznaczony jest do pomiaru i kontroli temperatury obiektu za pomocą czterech czujników, podłączanych w układzie dwu- lub trzyprzewodowym. TR-100E wyświetla zmierzone wartości temperatury na wyświetlaczu, kontroluje linie czujników pod kątem zerwania i zwarcia, generuje sygnały sterujące „Przegrzanie”, „Alarm”, „Awaria”, „Wentylacja”, prowadzi dziennik zdarzeń (do 2048 wpisów) oraz rejestrację temperatury z zadanym interwałem (do 16384 wpisów), a także zapewnia interfejs webowy. W razie potrzeby TR-100E może być podłączony do systemu nadrzędnego (SCADA) za pomocą protokołu Modbus TCP lub Web API. TR-100E ma uniwersalne zasilanie: 24–250 V AC/DC. Główne możliwości:
1.2 Charakterystyki techniczneDział zatytułowany „1.2 Charakterystyki techniczne”Podstawowe charakterystyki techniczne podano w tabeli 1. Tabela 1 – podstawowe charakterystyki techniczne
1.3 Warunki eksploatacjiDział zatytułowany „1.3 Warunki eksploatacji”TR-100E przeznaczone jest do eksploatacji w następujących warunkach:
1.4 Wygląd zewnętrzny i wymiary gabarytoweDział zatytułowany „1.4 Wygląd zewnętrzny i wymiary gabarytowe”Na rysunku 1 pokazano wygląd zewnętrzny i wymiary gabarytowe TR-100E.
Rysunek 1 – wygląd zewnętrzny i wymiary gabarytowe 1.5 Czujniki temperaturyDział zatytułowany „1.5 Czujniki temperatury”TR-100E obsługuje następujące typy czujników temperatury: Pt100/Pt1000, Ni100/Ni1000, Cu100, Ptc1000/EKS111, KTY83, KTY84 i PTC minika. Pt100 / Pt1000 — platynowe termometry rezystancyjne o rezystancji nominalnej 100 Ω i 1000 Ω przy 0 °C odpowiednio. Charakterystyka opisana jest współczynnikiem W₁₀₀=1,3850 (wg IEC 60751) lub W₁₀₀=1,3910. Zakres pomiaru: od minus 40 do +240 °C. Podłączane do kanałów 1–4 w układzie dwu- lub trzyprzewodowym. Ni100 / Ni1000 — niklowe termometry rezystancyjne o rezystancji nominalnej 100 Ω i 1000 Ω przy 0 °C (W₁₀₀=1,6178). Zakres pomiaru: od minus 40 do +180 °C. Podłączane do kanałów 1–4 w układzie dwu- lub trzyprzewodowym. Cu100 — miedziane termometry rezystancyjne o rezystancji nominalnej 100 Ω przy 0 °C (W₁₀₀=1,4274). Zakres pomiaru: od minus 40 do +200 °C. Podłączane do kanałów 1–4 w układzie dwu- lub trzyprzewodowym. Ptc1000 / EKS111 — platynowy termometr rezystancyjny o rezystancji nominalnej 1000 Ω przy 0 °C i podwyższonym współczynniku temperaturowym (W₁₀₀=2,0805). Zakres pomiaru: od minus 40 do +100 °C. Podłączane do kanałów 1–4 w układzie dwu- lub trzyprzewodowym. KTY83 — krzemowy termometr rezystancyjny o rezystancji nominalnej R₂₅=1000 Ω przy 25 °C, modele 110/120/150. Zakres pomiaru: od minus 40 do +175 °C. Podłączane do kanałów 1–4 w układzie dwu- lub trzyprzewodowym. KTY84 — krzemowy termometr rezystancyjny o rezystancji nominalnej R₁₀₀=1000 Ω przy 100 °C, modele 130/150. Zakres pomiaru: od minus 40 do +200 °C. Podłączane do kanałów 1–4 w układzie dwu- lub trzyprzewodowym. PTC minika — półprzewodnikowe pozystory, gwałtownie zwiększające swoją rezystancję elektryczną po osiągnięciu nominalnej temperatury zadziałania (NTC). Czujniki są produkowane z różnymi wartościami NTC w zakresie od 60 do 180 °C z krokiem 10 °C. 2 UŻYTKOWANIE ZGODNE Z PRZEZNACZENIEMDział zatytułowany „2 UŻYTKOWANIE ZGODNE Z PRZEZNACZENIEM”2.1 Przygotowanie TR-100E do użytkowaniaDział zatytułowany „2.1 Przygotowanie TR-100E do użytkowania”2.1.1 Środki bezpieczeństwaDział zatytułowany „2.1.1 Środki bezpieczeństwa”2.1.2 Podłączyć TR-100E zgodnie ze schematem połączeń na rysunku 2.
Rysunek 2 – schemat połączeń TR-100E 2.1.3 Włączyć zasilanie TR-100E i w razie potrzeby ustawić tryby pracy zgodnie z tabelą 3. 2.2 Użytkowanie TR-100EDział zatytułowany „2.2 Użytkowanie TR-100E”2.2.1 Zasada działaniaDział zatytułowany „2.2.1 Zasada działania”TR-100E stale mierzy temperaturę w 4 strefach za pomocą podłączonych czujników (kanały 1–4). Kanały 1–3 przeznaczone są do kontroli temperatury uzwojeń transformatora, a kanał 4 — do kontroli temperatury rdzenia transformatora lub otoczenia. Rejestrowanie zdarzeń i rejestracja temperatury odbywają się w trybie tle, nie wpływając na podstawową pracę TR-100E. Zapisane dane są dostępne do przeglądania na wyświetlaczu i mogą być wyeksportowane do pliku przez interfejs Web. Po włączeniu zasilania TR-100E przeprowadza kontrolę integralności i uruchamia wbudowane oprogramowanie, a następnie przechodzi na ekran główny — podstawowy tryb wyświetlania informacji podczas normalnej pracy (rysunek 3).
Rysunek 3 – ekran główny TR-100E Na ekranie głównym wyświetlane są:
Jeśli czujnik kanału jest niesprawny (przerwanie lub zwarcie), zamiast wartości temperatury wyświetlany jest symbol błędu: „OBR.” (przerwanie) lub „ZAMK.” (zwarcie). Jeśli kanał skonfigurowany jest na czujnik PTC minika i temperatura jeszcze nie osiągnęła NTC, wyświetlany jest symbol „< NTC”. Jeśli kanał jest wyłączony (parametr Kanał N → Włączenie = 0, gdzie N — numer kanału; tabela 3), jego pole na ekranie pozostaje puste. Oprócz ekranu głównego, dla każdego włączonego kanału dostępny jest ekran wykresu temperatury. Wykres pokazuje zmianę temperatury kanału w ciągu ostatnich 10 minut z okresem aktualizacji 5 s. Na ekranie wyświetlany jest numer kanału, skala temperatury oraz ostatnia zmierzona wartość. Skala wykresu dobierana jest automatycznie. Ta operacyjna historia tworzona jest po włączeniu TR-100E i nie zastępuje danych rejestratora temperatury. Do przeglądania wykresów krótko nacisnąć przycisk „W górę” (UP) do przejścia na następny ekran lub przycisk „W dół” (DOWN) do przejścia na poprzedni. Ekrany przełączają się cyklicznie; wykresy wyłączonych kanałów są pomijane. Stany wszystkich wskaźników LED podano w tabeli 2. Tabela 2 – Stany wskaźników LED
2.2.2 Dziennik zdarzeńDział zatytułowany „2.2.2 Dziennik zdarzeń”W procesie pracy TR-100E automatycznie prowadzi dziennik zdarzeń w trybie tła — nie są wymagane żadne działania ze strony użytkownika. Do dziennika zapisywane są istotne zdarzenia i komunikaty diagnostyczne o pracy TR-100E. Poniżej przedstawiono główne rodzaje wpisów; ten wykaz nie jest wyczerpujący:
Każdy wpis zawiera datę i czas zdarzenia, jego opis oraz dodatkowe informacje pozwalające ustalić przyczynę zadziałania zabezpieczenia lub niesprawności. Dziennik jest obliczony na 2048 wpisów. Po osiągnięciu limitu nowe zdarzenia nadal są zapisywane, wypierając najstarsze. Dane zachowywane są w pamięci nieulotnej i nie giną przy wyłączeniu zasilania. Praca z dziennikiem z panelu przedniego: znajdując się na ekranie głównym, nacisnąć i przytrzymać przycisk „Menu” (MENU) przez co najmniej 5 s. W razie potrzeby wprowadzić hasło zgodnie z p. 2.2.5. Przyciskami „W górę” / „W dół” (UP/DOWN) wybrać pozycję Dziennik zdarzeń i nacisnąć przycisk „Wprowadź” (SET). Następnie wykonać wymagane działanie:
Przeglądanie i eksport przez interfejs Web: otworzyć interfejs Web TR-100E i przejść na zakładkę Dziennik. Do zapisu dziennika do pliku 2.2.3 Rejestrator temperaturyDział zatytułowany „2.2.3 Rejestrator temperatury”Rejestrator okresowo zapisuje wartości temperatury wszystkich czterech kanałów, co pozwala analizować reżim cieplny obiektu za okres, którego dane zachowane są w pamięci rejestratora. Domyślnie rejestrator jest włączony z okresem zapisu 600 sekund. Okres można zmienić w zakresie od 5 do 3600 sekund parametrem Rejestrator → Okres zapisu, a wyłączyć rejestrator — parametrem Rejestrator → Włączenie (tabela 3). Każdy wpis zawiera datę i czas pomiaru, temperaturę wszystkich czterech kanałów, a także aktualne flagi stanu każdego kanału (zadziałanie TRIP, ALARM, FAN, niesprawność czujnika). Rejestrator jest obliczony na 16384 wpisy. Po osiągnięciu limitu nowe dane nadal są zapisywane, wypierając najstarsze. Im mniejszy okres zapisu — tym szybciej wypełnia się bufor i mniejsza głębokość przechowywanej historii. Dane zachowywane są w pamięci nieulotnej i nie giną przy wyłączeniu zasilania. Praca z rejestratorem z panelu przedniego: znajdując się na ekranie głównym, nacisnąć i przytrzymać przycisk „Menu” (MENU) przez co najmniej 5 s. W razie potrzeby wprowadzić hasło zgodnie z p. 2.2.5. Przyciskami „W górę” / „W dół” (UP/DOWN) wybrać pozycję Rejestrator i nacisnąć przycisk „Wprowadź” (SET). Następnie wykonać wymagane działanie:
Przeglądanie i eksport przez interfejs Web: otworzyć interfejs Web TR-100E i przejść na zakładkę Rejestrator. Do zapisu wpisów do pliku 2.2.4 Sterowanie TR-100EDział zatytułowany „2.2.4 Sterowanie TR-100E”Sterowanie TR-100E odbywa się za pomocą przycisków znajdujących się na panelu przednim (rys. 1, poz. 10, 11, 13–15):
2.2.5 Zmiana parametrów (menu ustawień)Dział zatytułowany „2.2.5 Zmiana parametrów (menu ustawień)”Do wejścia w tryb zmiany parametrów, znajdując się na ekranie głównym, nacisnąć i przytrzymać przycisk „Menu” (MENU) przez co najmniej 5 s. Jeśli dostęp jest chroniony hasłem, wprowadzić hasło zgodnie z poniższą instrukcją. Przy prawidłowym wprowadzeniu na wyświetlaczu pokazywany jest komunikat Hasło przyjęte, po czym otwiera się menu parametrów. Przy nieprawidłowym wprowadzeniu wyświetlana jest liczba pozostałych prób. Po pięciu nieudanych próbach dostęp jest blokowany na 5 minut. Hasło fabryczne podane jest na naklejce z kodem QR. W menu Dostęp można zmieniać hasła oraz niezależnie włączać lub wyłączać ich sprawdzanie. Wyłączenie sprawdzania nie usuwa zapisanego hasła. Hasło dostępu lokalnego musi zawierać 4…23 znaki, a hasła Web i Modbus — 8…23 znaki. Bieżące hasła nie są wyświetlane: po wybraniu pozycji Zmień hasło wprowadzanie rozpoczyna się od pustego pola, a anulowanie zachowuje poprzednią wartość. 2.2.6 Przywracanie ustawień fabrycznychDział zatytułowany „2.2.6 Przywracanie ustawień fabrycznych”Istnieją dwa sposoby wykonania przywrócenia ustawień fabrycznych: Do zakończenia przywracania ustawień fabrycznych którymkolwiek ze sposobów:
Po zapisaniu hasła użytkownika zastępowane są hasłami fabrycznymi podanymi na naklejce z kodem QR. 2.2.7 Testowanie TR-100EDział zatytułowany „2.2.7 Testowanie TR-100E”2.2.7.1 Sprawdzenie wskaźników LED i przeglądanie minimalnej i maksymalnej temperatury kanałówDział zatytułowany „2.2.7.1 Sprawdzenie wskaźników LED i przeglądanie minimalnej i maksymalnej temperatury kanałów”Do sprawdzenia wskazań LED należy, znajdując się na ekranie głównym, nacisnąć przycisk „Test” (TEST). TR-100E przejdzie na osobny ekran testowania, włączy wszystkie wskaźniki LED i wyświetli dla każdego kanału minimalną i maksymalną zarejestrowaną temperaturę. Do wyjścia z trybu testowania nacisnąć przycisk „Menu” (MENU). Przy braku naciśnięć przycisków w ciągu 60 s ekran testowy zamyka się automatycznie. 2.2.7.2 Testowanie przekaźników wyjściowychDział zatytułowany „2.2.7.2 Testowanie przekaźników wyjściowych”Kolejność testowania:
Do zakończenia testowania nacisnąć przycisk „Menu” (MENU). Stany testowe wszystkich przekaźników zostaną wyłączone, po czym TR-100E powróci do menu parametrów. 2.2.8 Aktualizacja wbudowanego oprogramowania (oprogramowania wewnętrznego)Dział zatytułowany „2.2.8 Aktualizacja wbudowanego oprogramowania (oprogramowania wewnętrznego)”TR-100E obsługuje dwa sposoby aktualizacji wbudowanego oprogramowania bez użycia programatora:
Do aktualizacji używany jest plik oprogramowania wewnętrznego TR-100E w formacie Szczegółową kolejność czynności, ponowną instalację wcześniej wczytanego obrazu oraz objaśnienia komunikatów bootloadera podano w „Załączniku A. Awaryjne odzyskiwanie oprogramowania wewnętrznego”. 2.2.9 Ustawianie daty, czasu i strefy czasowejDział zatytułowany „2.2.9 Ustawianie daty, czasu i strefy czasowej”TR-100E używa zegara czasu rzeczywistego (RTC) do oznaczania czasu w dzienniku zdarzeń i rejestratorze. Datę i czas można ustawić ręcznie z panelu przedniego lub przez interfejs Web. Dostępna jest również automatyczna synchronizacja czasu przez NTP. Ustawianie daty i czasu z panelu przedniego:
Do anulowania wprowadzania bez zapisu nacisnąć przycisk „Menu” (MENU). Ustawianie daty i czasu przez interfejs Web:
Strefa czasowa: W sekcji Ustawienia → Data i czas w polu Strefa czasowa wybrać wymagane przesunięcie względem UTC, na przykład UTC+02:00 lub UTC+03:00. Wybrana strefa czasowa stosowana jest przy wyświetlaniu czasu lokalnego. Do zapisu ustawienia nacisnąć przycisk Zapisz. Czas letni (DST): W polu Tryb DST dostępne są następujące wartości:
Po zmianie trybu DST i związanych z nim parametrów nacisnąć przycisk Zapisz. 2.3 Programowalne i używane parametry TR-100EDział zatytułowany „2.3 Programowalne i używane parametry TR-100E”Pełny wykaz zapisywanych parametrów podano w tabeli 3. W kolumnie „Adres rejestru Holding” znak Tabela 3 – Programowalne i używane parametry
2.4 Korzystanie z interfejsu WebDział zatytułowany „2.4 Korzystanie z interfejsu Web”Dla dostępu do interfejsu Web TR-100E potrzebny jest komputer z zainstalowaną przeglądarką Web. 2.4.1 Logowanie i poziomy dostępuDział zatytułowany „2.4.1 Logowanie i poziomy dostępu”Po otwarciu interfejsu Web wyświetlany jest formularz wprowadzania hasła.
TR-100E używa dwóch niezależnych haseł dostępu Web:
Wprowadzone hasło określa przyznany poziom dostępu. Użytkownikowi poziomu Sprawdzanie haseł Web 2.4.2 Zakładka „Monitorowanie”Dział zatytułowany „2.4.2 Zakładka „Monitorowanie””Zakładka wyświetla bieżący stan TR-100E:
Nieprzeczytane zdarzenia można oznaczyć jako przejrzane przyciskiem Potwierdź.
2.4.3 Zakładka „Rejestrator”Dział zatytułowany „2.4.3 Zakładka „Rejestrator””Zakładka wyświetla liczbę zapisanych wpisów, okres zapisu, tabelę wpisów i wykresy temperatury kanałów. Dostępne są:
Czyszczenie rejestratora dostępne jest tylko dla użytkownika poziomu
2.4.4 Zakładka „Dziennik”Dział zatytułowany „2.4.4 Zakładka „Dziennik””Zakładka wyświetla zdarzenia z datą, czasem, poziomem ważności i opisem. Dostępne są:
Czyszczenie dziennika dostępne jest tylko dla użytkownika poziomu
2.4.5 Zakładka „Ustawienia”Dział zatytułowany „2.4.5 Zakładka „Ustawienia””Zakładka dostępna jest tylko dla użytkownika poziomu Ustawienia każdej sekcji są ładowane i zapisywane oddzielnie. Przycisk Odśwież ponownie odczytuje ustawienia otwartej sekcji z TR-100E, przycisk Zapisz zapisuje zmiany. Jeśli dla zastosowania zapisanych ustawień wymagany jest restart, interfejs Web wyświetla odpowiednie ostrzeżenie; restart nie wykonuje się automatycznie. W sekcji Bezpieczeństwo zapisane hasła nie są wyświetlane. Aby pozostawić hasło bez zmian, nie należy wypełniać odpowiedniego pola; aby je zmienić, należy wprowadzić nową wartość.
2.4.6 Zakładka „Serwis”Dział zatytułowany „2.4.6 Zakładka „Serwis””Zakładka dostępna jest tylko dla użytkownika poziomu
2.5 Korzystanie z VPN WireGuardDział zatytułowany „2.5 Korzystanie z VPN WireGuard”2.5.1 Przeznaczenie VPNDział zatytułowany „2.5.1 Przeznaczenie VPN”TR-100E obsługuje połączenie VPN przy użyciu protokołu WireGuard. VPN tworzy zabezpieczony kanał sieciowy między TR-100E a zdalnym węzłem WireGuard i umożliwia dostęp do usług sieciowych urządzenia przez interfejs VPN. Parametry połączenia VPN mogą być ustawione ręcznie lub otrzymane automatycznie. Tryb konfiguracji wybierany jest w interfejsie Web TR-100E. Dla działania VPN TR-100E musi mieć dostęp do sieci Internet, poprawnie skonfigurowaną bramę i serwery DNS, a sieć nie może blokować połączenia ze zdalnym węzłem WireGuard. 2.5.2 Ręczna konfiguracja WireGuardDział zatytułowany „2.5.2 Ręczna konfiguracja WireGuard”Parametry VPN znajdują się w interfejsie Web w sekcji Ustawienia → VPN-WireGuard. Ręczna konfiguracja używana jest do połączenia z samodzielnie wybranym węzłem WireGuard. Aby ją zastosować:
Po zapisaniu zmienionych parametrów usługa WireGuard restartuje się automatycznie; restart TR-100E nie jest wymagany. Szczegółową kolejność ręcznej konfiguracji podano w „Załączniku B. Konfiguracja VPN WireGuard”. 2.5.3 Automatyczna konfiguracja przez OvervisDział zatytułowany „2.5.3 Automatyczna konfiguracja przez Overvis”Overvis — to chmurowy system monitorowania i wizualizacji, który może używać VPN WireGuard do dostępu do TR-100E. Przy wyborze trybu automatycznego TR-100E identyfikowany jest za pomocą fabrycznego kodu PIN, otrzymuje od Overvis parametry WireGuard i ustanawia połączenie VPN. Statyczny zewnętrzny adres IP i przekierowanie portów przychodzących na routerze nie są wtedy wymagane. Przy włączonym parametrze Automatyczne połączenie z serwerem Overvis pola konfiguracji ręcznej nie są używane. Pole URL serwera automatycznej konfiguracji należy pozostawić puste, jeśli inny adres nie został udostępniony przez producenta lub wsparcie techniczne. Dla połączenia przez Overvis niezbędne jest:
Szczegółową kolejność połączenia podano w „Załączniku B. Konfiguracja VPN WireGuard”. Dodatkowe informacje o systemie Overvis zamieszczono na stronie www.overvis.com. 2.5.4 Dostęp do interfejsu Web i Modbus TCP przez VPNDział zatytułowany „2.5.4 Dostęp do interfejsu Web i Modbus TCP przez VPN”Ustanowione połączenie VPN samo w sobie nie zezwala na dostęp do usług sieciowych TR-100E. Niezbędne usługi i dostęp do nich przez VPN konfigurowane są oddzielnie:
W trybie Według ochrony ogólnej sesje VPN podlegają ogólnemu trybowi ochrony Modbus i wymagają odblokowania hasłem na takich samych zasadach jak połączenia lokalne. Tryb Tylko odczyt zezwala na odczyt przez VPN bez hasła i odrzuca wszystkie polecenia zapisu. Tryb Odczyt i zapis zezwala na odczyt i zapis przez VPN bez hasła; połączenia lokalne nadal podlegają ogólnemu trybowi ochrony Modbus. Zezwalajcie przez VPN tylko na niezbędne usługi i przyznawajcie minimalnie wystarczający poziom dostępu. 2.6 Korzystanie z Modbus TCPDział zatytułowany „2.6 Korzystanie z Modbus TCP”TR-100E podłącza się do sieci lokalnej przez interfejs Ethernet. Protokół Modbus TCP używany jest do wymiany danych między TR-100E a klientem Modbus przez sieć TCP/IP. Przez Modbus TCP można:
W celach bezpieczeństwa bezpośrednie sterowanie przekaźnikami wyjściowymi przez Modbus TCP nie jest przewidziane: przekaźniki są sterowane wbudowanymi algorytmami zabezpieczeń zgodnie z wynikami pomiarów, ustawionymi progami, histerezą i opóźnieniami. To wyklucza ominięcie algorytmów zabezpieczeń zdalnym poleceniem. TR-100E używa dwóch niezależnych grup rejestrów Modbus: rejestrów Input i rejestrów Holding. Bieżące stany odczytywane są z rejestrów Input funkcją Parametr Limit czasu określa dopuszczalny czas braku danych od klienta Modbus. Jeśli dane nie zostaną odebrane w ustawionym czasie, TR-100E zamyka połączenie TCP. Pakiety sterujące TCP Keepalive nie zerują tego limitu czasu. Wartość Domyślnie mechanizm ochrony Modbus ogranicza zapis w chronione rejestry Holding. Dla odblokowania niezbędne jest zapisanie hasła Modbus do rejestrów 52–63 w znakach ASCII (dwa znaki w rejestrze, starszy bajt pierwszy, ciąg kończy się bajtem zerowym). Domyślnie obowiązuje hasło fabryczne wskazane na naklejce z kodem QR. Pomyślna weryfikacja odblokuje tylko bieżącą sesję TCP; stan mechanizmu ochrony dostępny jest w rejestrze 51. Po pięciu nieprawidłowych próbach żądania z danego adresu IP są blokowane na 5 minut. Przy zmianie hasła Modbus dopuszczalne jest hasło o długości 8…23 znaków. Sprawdzanie hasła włącza się i wyłącza parametrem Hasło Modbus → Zabezpieczenia; wyłączenie sprawdzania nie usuwa zapisanego hasła. Tryb działania mechanizmu ochrony określany jest rejestrem 169: Dla sesji VPN dodatkowo obowiązuje poziom ustawiony parametrem Dostęp do Modbus przez VPN. Poziomy Tylko odczyt i Odczyt i zapis nie wymagają odblokowania hasłem przez VPN i nie zmieniają ochrony lokalnych połączeń Modbus. Tabela 4 - Wykaz obsługiwanych funkcji (Modbus)
Tabela 5 - Typy danych
Tabela 6 – Rejestry Input (funkcja 0x04)
Rozszyfrowanie rejestrów 5–6 „Flagi stanu” Ustawiony bit (
Rozszyfrowanie rejestrów 7–8 „Gotowość funkcji urządzenia” Każdy bit pokazuje gotowość odpowiedniego podsystemu:
Rozszyfrowanie rejestrów 24–27 „Stan CH1–CH4” Każdemu kanałowi odpowiada oddzielny rejestr: 24 — CH1, 25 — CH2, 26 — CH3, 27 — CH4.
Tabela 7 – Rejestry Holding: wartości serwisowe i polecenia
2.7 Porty siecioweDział zatytułowany „2.7 Porty sieciowe”Dla konfiguracji routera lub zapory sieciowej należy uwzględnić połączenia sieciowe podane w tabeli 8. Tabela 8 – Porty sieciowe TR-100E
Połączenia przychodzące do interfejsu Web i Modbus TCP należy zezwalać tylko z zaufanych sieci. Przy używaniu tylko połączeń wychodzących z NTP, DNS i serwerem autokonfiguracji przekierowanie portów na routerze nie jest wymagane; zapora sieciowa powinna zezwalać na ruch odpowiedzi ustanowionych połączeń. 3 OBSŁUGA TECHNICZNADział zatytułowany „3 OBSŁUGA TECHNICZNA”3.1 Środki bezpieczeństwaDział zatytułowany „3.1 Środki bezpieczeństwa”3.2 Okresowość obsługi technicznejDział zatytułowany „3.2 Okresowość obsługi technicznej”Zalecana okresowość obsługi technicznej – co sześć miesięcy. 3.3 Porządek obsługi technicznej:Dział zatytułowany „3.3 Porządek obsługi technicznej:”
3.4 Diagnostyka i usuwanie niesprawnościDział zatytułowany „3.4 Diagnostyka i usuwanie niesprawności”Tabela 9 – Możliwe niesprawności i sposoby ich usuwania
4 OKRES UŻYTKOWANIA I GWARANCJA PRODUCENTADział zatytułowany „4 OKRES UŻYTKOWANIA I GWARANCJA PRODUCENTA”4.1 Okres użytkowania produktuDział zatytułowany „4.1 Okres użytkowania produktu”Okres użytkowania produktu wynosi 15 lat. Po upływie okresu użytkowania należy skontaktować się z producentem. 4.2 Okres przechowywaniaDział zatytułowany „4.2 Okres przechowywania”Okres przechowywania produktu wynosi 3 lata. 4.3 Okres gwarancyjny eksploatacjiDział zatytułowany „4.3 Okres gwarancyjny eksploatacji”Okres gwarancyjny eksploatacji produktu wynosi 10 lat od dnia sprzedaży. 4.4 Obsługa gwarancyjnaDział zatytułowany „4.4 Obsługa gwarancyjna”Obsługa gwarancyjna jest wykonywana w miejscu zakupu lub przez producenta produktu. 4.5 Obsługa pogwarancyjnaDział zatytułowany „4.5 Obsługa pogwarancyjna”Obsługa pogwarancyjna produktu jest wykonywana przez producenta według obowiązujących taryf. 5 TRANSPORT I PRZECHOWYWANIEDział zatytułowany „5 TRANSPORT I PRZECHOWYWANIE”TR-100E w opakowaniu producenta dopuszcza się do transportu i przechowywania w temperaturze od minus 30 do +60 °C i wilgotności względnej nie więcej niż 98% przy 35 °C (bez kondensacji wilgoci). |
| | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Załącznik A: Awaryjne odzyskiwanie oprogramowaniaZAŁĄCZNIK A. AWARYJNE ODZYSKIWANIE OPROGRAMOWANIA WEWNĘTRZNEGODział zatytułowany „ZAŁĄCZNIK A. AWARYJNE ODZYSKIWANIE OPROGRAMOWANIA WEWNĘTRZNEGO”Dokument główny: „Instrukcja obsługi TR-100E” Niniejszy załącznik opisuje odzyskiwanie oprogramowania wewnętrznego TR-100E za pomocą bootloadera. Procedurę stosuje się, jeżeli standardowy interfejs Web nie otwiera się, aktualizacja zakończyła się błędem lub TR-100E zgłasza nieprawidłową aplikację. Bootloader udostępnia dwa sposoby odzyskiwania:
Do odzyskiwania potrzebne są:
A.1 Wejście do menu bootloaderaDział zatytułowany „A.1 Wejście do menu bootloadera”
Do obsługi menu służą:
Menu zawiera następujące pozycje:
A.2 Odzyskiwanie wcześniej wgranego obrazuDział zatytułowany „A.2 Odzyskiwanie wcześniej wgranego obrazu”Ta metoda nie wymaga komputera. Należy jej użyć, jeżeli przed awarią plik aktualizacji został w pełni wgrany do TR-100E.
Jeżeli pojawi się Image not found, Image invalid lub Operation failed, należy wgrać nowy plik A.3 Wgrywanie nowego obrazu przez Recovery modeDział zatytułowany „A.3 Wgrywanie nowego obrazu przez Recovery mode”A.3.1 PodłączenieDział zatytułowany „A.3.1 Podłączenie”
W trybie odzyskiwania używane są stałe parametry sieciowe:
A.3.2 Wgrywanie i sprawdzanie plikuDział zatytułowany „A.3.2 Wgrywanie i sprawdzanie pliku”
Jeżeli wgrywanie zostało przerwane przed naciśnięciem Firmware, zainstalowane oprogramowanie nie ulega zmianie. Bez restartowania TR-100E należy ponownie wybrać plik i jeszcze raz nacisnąć Send: nieukończone wgrywanie zostanie zastąpione nowym. A.3.3 Instalacja oprogramowaniaDział zatytułowany „A.3.3 Instalacja oprogramowania”
Przed instalacją bootloader sprawdza zgodność, integralność i autentyczność pliku. Nie można zainstalować pliku uszkodzonego, zmienionego po wydaniu lub przeznaczonego dla innego urządzenia. A.4 Komunikaty bootloaderaDział zatytułowany „A.4 Komunikaty bootloadera”
Jeżeli strona odzyskiwania się nie otwiera:
Jeżeli po ponownym wgraniu poprawnego pliku odzyskiwanie nadal nie kończy się powodzeniem, należy zapisać treść komunikatu na wyświetlaczu, stan |
| | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Załącznik B: Konfiguracja VPN WireGuardZAŁĄCZNIK B. KONFIGURACJA VPN WIREGUARDDział zatytułowany „ZAŁĄCZNIK B. KONFIGURACJA VPN WIREGUARD”Dokument główny: „Instrukcja obsługi TR-100E” Niniejszy załącznik opisuje dwa tryby konfiguracji VPN WireGuard:
W obu trybach TR-100E samodzielnie inicjuje wymianę danych ze zdalnym węzłem. Do konfiguracji wymagany jest dostęp do interfejsu Web TR-100E z poziomem B.1 Ręczna konfiguracja WireGuardDział zatytułowany „B.1 Ręczna konfiguracja WireGuard”B.1.1 Wprowadzanie parametrówDział zatytułowany „B.1.1 Wprowadzanie parametrów”W przypadku konfiguracji statycznej administrator VPN powinien przekazać parametry WireGuard dla TR-100E i skonfigurować odpowiedni peer na zdalnym węźle.
Klucz prywatny, adres interfejsu, klucz publiczny i host peer są obowiązkowe. Dla adresu interfejsu używany jest prefiks od
Jeżeli przez statyczne połączenie VPN wymagany jest dostęp do interfejsu Web lub Modbus TCP, należy dodatkowo wykonać ustawienia opisane w krokach 5–11 p. B.2.2.
Rysunek B.1 – statyczna konfiguracja WireGuard B.1.2 Sprawdzanie połączeniaDział zatytułowany „B.1.2 Sprawdzanie połączenia”Przejść do zakładki Serwis, w bloku Diagnostyka wybrać Sieć → VPN i włączyć Autoodświeżanie. Dla poprawnie wypełnionej konfiguracji statycznej wyświetlane są:
Pomyślna wymiana danych ze zdalnym węzłem jest potwierdzana stanem Połączone lub Aktywne, czasem w polu Handshake oraz wzrostem liczników pakietów RX/TX. Stan Nieprawidłowa konfiguracja oznacza, że co najmniej jeden parametr obowiązkowy nie został wypełniony: klucz prywatny, adres interfejsu, klucz publiczny lub host peer.
Rysunek B.2 – stan statycznego połączenia WireGuard Jeżeli połączenie statyczne nie zostaje ustanowione:
B.2 Automatyczna konfiguracja przez OvervisDział zatytułowany „B.2 Automatyczna konfiguracja przez Overvis”B.2.1 Sprawdzanie danych identyfikacyjnychDział zatytułowany „B.2.1 Sprawdzanie danych identyfikacyjnych”
Rysunek B.3 – dane identyfikacyjne TR-100E B.2.2 Włączanie automatycznego połączeniaDział zatytułowany „B.2.2 Włączanie automatycznego połączenia”
Rysunek B.4 – konfiguracja automatycznego połączenia z Overvis
Rysunek B.5 – konfiguracja dostępu do interfejsu Web przez VPN
Poziom Odczyt i zapis zapewnia dostęp bez hasła każdej sesji Modbus TCP przyjętej przez interfejs VPN. Należy go używać wyłącznie z zaufaną konfiguracją WireGuard. Jeżeli zdalna zmiana parametrów nie jest wymagana, należy wybrać Tylko odczyt.
Rysunek B.6 – konfiguracja dostępu do Modbus TCP przez VPN B.2.3 Kontrola automatycznego połączeniaDział zatytułowany „B.2.3 Kontrola automatycznego połączenia”Po zapisaniu ustawień przejść do zakładki Serwis, w bloku Diagnostyka wybrać Sieć → VPN i włączyć Autoodświeżanie. Poczekać na zakończenie automatycznej konfiguracji. Oznaki gotowości do połączenia przez Overvis:
Po pojawieniu się tych stanów należy przejść do łączenia TR-100E z kontem Overvis HMI.
Rysunek B.7 – gotowość WireGuard do połączenia przez Overvis B.2.4 Łączenie TR-100E z kontem Overvis HMIDział zatytułowany „B.2.4 Łączenie TR-100E z kontem Overvis HMI”Przed kontynuowaniem należy upewnić się, że TR-100E jest połączony z Internetem, a automatyczna konfiguracja WireGuard została zakończona zgodnie z p. B.2.3. Przygotować 8-znakowy kod PIN podany na naklejce obudowy.
Rysunek B.8 – tworzenie połączenia TR-100E za pomocą kodu PIN
Rysunek B.9 – TR-100E połączony z obszarem roboczym Po utworzeniu połączenia nie można zmienić Typu ani powiązanego urządzenia. Jeżeli kod PIN podano nieprawidłowo, połączenie należy usunąć i utworzyć ponownie. Samo to połączenie nie wyświetla temperatur: parametry TR-100E dodaje się oddzielnie. B.2.5 Dodawanie parametrów TR-100E z szablonuDział zatytułowany „B.2.5 Dodawanie parametrów TR-100E z szablonu”Po utworzeniu połączenia należy dodać parametry sterownika z szablonu Novatek-Electro TR-100E. Nie jest wymagane ponowne wprowadzanie adresu ani portu połączenia.
Rysunek B.10 – dodawanie parametrów TR-100E z szablonu Po zastosowaniu szablonu w drzewie Parametry pojawi się nowa gałąź główna z parametrami TR-100E. Aby sprawdzić wymianę danych ze sterownikiem, należy zaznaczyć nową gałąź i nacisnąć Odczytaj (Read). Po prawej stronie parametrów powinny pojawić się odebrane wartości. Aby włączyć ciągłe odpytywanie, należy włączyć Online (Live).
Rysunek B.11 – sprawdzanie odczytu parametrów TR-100E Jeżeli zamiast wartości wyświetlany jest błąd, należy sprawdzić, czy pole ID urządzenia odpowiada adresowi Modbus sterownika oraz czy utworzone połączenie ma stan Połączono. Dodatkowe informacje podano w dokumentacji Overvis dotyczącej podłączania urządzeń. |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HTTP APIInterfejs HTTP API umożliwia komunikację z urządzeniem TR-100E. Wszystkie ścieżki żądań rozpoczynają się od Zasady ogólneDział zatytułowany „Zasady ogólne”
Poziomy dostępuDział zatytułowany „Poziomy dostępu”
Wszystkie żądania AutoryzacjaDział zatytułowany „Autoryzacja”
Uwierzytelnianie WWW używa dwóch niezależnych haseł: jednego dla poziomu
Częściowe aktualizacje ustawieńDział zatytułowany „Częściowe aktualizacje ustawień”Żądanie
Żądania GETDział zatytułowany „Żądania GET”
Żądania POSTDział zatytułowany „Żądania POST”
Błędy i kody stanuDział zatytułowany „Błędy i kody stanu”
|
| | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/version/Podstawowy publiczny punkt końcowy służący do identyfikacji urządzenia i pobrania wersji oprogramowania układowego przed logowaniem. Uwierzytelnianie: niewymagane. Punkt końcowy nie zwraca poufnych ustawień, haseł, danych uwierzytelniających do sieci ani danych diagnostycznych. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
deviceId | liczba | tak | Numeryczny identyfikator typu urządzenia |
deviceName | ciąg znaków | tak | Nazwa urządzenia |
firmwareVersion | ciąg znaków | tak | Wersja oprogramowania układowego |
bootloaderVersion | ciąg znaków | null | tak | Wersja programu rozruchowego opublikowana przez niego w rejestrze zapasowym RTC; null, jeśli program rozruchowy nie zgłosił wersji |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
GET /api/auth/status/Zwróć bieżący poziom dostępu dla tego żądania. Uwierzytelnianie: niewymagane. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
accessLevel | ciąg znaków | tak | Bieżący poziom dostępu: guest, user lub powerUser |
guest, user lub powerUser.powerUser jest wyłączona, zwracana jest wartość powerUser; w przeciwnym razie, gdy wyłączona jest weryfikacja user, zwracana jest wartość user.| | ||||||||
|---|---|---|---|---|---|---|---|---|
GET /api/auth/salt/Pobiera wartość Uwierzytelnianie: niewymagane. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
salt | ciąg znaków | tak | 40-znakowy ciąg znaków ASCII |
salt40 znaków.[A-Za-z0-9].POST /api/auth/login/, niezależnie od jej wyniku.| | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/auth/login/Utwórz uwierzytelnioną sesję. Uwierzytelnianie: niewymagane. ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Wzór skrótuDział zatytułowany „Wzór skrótu”gdzie wartość
Wartość Jeśli weryfikacja hasła interfejsu Web jest wyłączona za pomocą ustawienia Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
authType | ciąg znaków | tak | Zawsze "Bearer" |
token | ciąg znaków | tak | 48-znakowy ciąg znaków ASCII [A-Za-z0-9] |
ttlSec | liczba | tak | Czas trwania sesji w sekundach |
accessLevel | ciąg znaków | tak | "user" lub "powerUser" |
5 nieudanych próbach wszystkie interfejsy zostają zablokowane na 300 sekund.300 sekundach bezczynności lub po pomyślnym logowaniu.401 (nieprawidłowe hasło){ "error": "ERROR_UNAUTHORIZED", "message": "3 attempts left"}429 (aktywna blokada){ "error": "ERROR_LOCKED", "message": "Retry after 247 seconds"}| |
|---|
POST /api/auth/logout/Zamknij bieżącą sesję. Uwierzytelnianie: Bearer. ŻądanieDział zatytułowany „Żądanie”Treść żądania nie zawiera istotnych pól. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/state/get/?device&network&relays&leds&protection&recorder&channels&log&ntp&httpd&modbus&wireguardPobierz jedną albo więcej grup najwyższego poziomu stanu roboczego. Uwierzytelnianie: Bearer. Parametry zapytaniaDział zatytułowany „Parametry zapytania”Każdy klucz zapytania jest flagą żądającą odpowiedniej grupy. Prawidłowe klucze:
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
uptimeSec | liczba | Czas pracy od włączenia zasilania (w sekundach) |
dateTimeUtc | ciąg znaków | Bieżący czas urządzenia w formacie ISO 8601 UTC |
localOffsetMin | liczba | Rzeczywiste przesunięcie czasu lokalnego w minutach, z uwzględnieniem czasu letniego |
dstActive | wartość logiczna | Określa, czy obowiązuje czas letni |
deviceNeedReboot | wartość logiczna | Określa, czy urządzenie wymaga ponownego uruchomienia |
isDiagnosticMode | wartość logiczna | Określa, czy podczas uruchamiania włączono tryb diagnostyczny przez naciśnięcie przycisków Up + Down |
settingsValid | wartość logiczna | Określa, czy zapisane ustawienia są prawidłowe |
calibrationValid | wartość logiczna | Określa, czy zapisana kalibracja fabryczna jest prawidłowa |
rebootAfterSec | liczba|null | Liczba sekund do zaplanowanego ponownego uruchomienia (null = nie zaplanowano) |
network| Pole | Typ | Opis |
|---|---|---|
macAddress | ciąg znaków | Adres MAC |
isUnique | wartość logiczna | true = unikatowy EUI-48, false = adres zastępczy |
ipAddress | ciąg znaków | Adres IP |
subnetMask | ciąg znaków | Maska podsieci |
gateway | ciąg znaków | Brama |
dns | ciąg[] | Serwery DNS |
dhcp.state | ciąg znaków | Stan DHCP: off, configuring, searching, requesting, bound, renewing, rebinding, retrying |
dhcp.serverAddress | ciąg znaków | Adres IPv4 serwera DHCP |
dhcp.leaseSeconds | liczba | Pełny czas dzierżawy w sekundach |
dhcp.remainingSeconds | liczba | Pozostały czas dzierżawy w sekundach |
relays| Pole | Typ | Opis |
|---|---|---|
trip | wartość logiczna | Stan przekaźnika wyłączenia awaryjnego |
alarm | wartość logiczna | Stan przekaźnika alarmu |
fan | wartość logiczna | Stan przekaźnika wentylatora |
fault | wartość logiczna | Stan przekaźnika usterki |
inTestMode | wartość logiczna | Określa, czy aktywny jest test serwisowy przekaźników |
leds| Pole | Typ | Opis |
|---|---|---|
inTestMode | wartość logiczna | Określa, czy aktywny jest test serwisowy diod LED |
protection| Pole | Typ | Opis |
|---|---|---|
trip | wartość logiczna | Logiczna flaga zabezpieczenia wyłączenia awaryjnego |
alarm | wartość logiczna | Logiczna flaga zabezpieczenia alarmowego |
fan | wartość logiczna | Logiczna flaga zabezpieczenia wentylatora |
fault | wartość logiczna | Logiczna flaga zabezpieczenia przed usterką |
recorder| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Rejestrator jest włączony |
available | wartość logiczna | Rejestrator jest dostępny |
total | liczba | Liczba dostępnych rekordów |
periodSec | liczba | Bieżący okres rejestrowania (w sekundach) |
lastError | liczba | Kod ostatniego błędu |
errorCount | liczba | Liczba błędów |
channelsTablica 4 elementów (CH1..CH4).
| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Kanał jest włączony |
temperature | ciąg|null | Bieżąca temperatura (liczba dziesiętna z 1 cyfrą po przecinku), null, jeśli wartość jest nieprawidłowa |
minTemperature | ciąg|null | Temperatura minimalna |
maxTemperature | ciąg|null | Maksymalna temperatura |
trend | ciąg znaków | "up", "down", "stable" |
circuitState | ciąg znaków | "normal", "open", "short" |
trip | wartość logiczna | Kanał znajduje się w stanie wyłączenia awaryjnego |
alarm | wartość logiczna | Kanał znajduje się w stanie alarmu |
fan | wartość logiczna | Kanał znajduje się w stanie wentylatora |
log| Pole | Typ | Opis |
|---|---|---|
available | wartość logiczna | Dziennik jest dostępny |
total | liczba | Liczba dostępnych zdarzeń |
lastTimestampUtc | ciąg|null | Znacznik czasu UTC ostatniego zdarzenia; null, jeśli dziennik jest pusty |
pending | liczba | Liczba niepotwierdzonych zdarzeń w bieżącej sesji zasilania |
ntp| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | NTP jest włączony w ustawieniach |
available | wartość logiczna | Klient NTP jest gotowy w bieżącym stanie roboczym |
lastSyncUtc | ciąg|null | Czas UTC ostatniej udanej synchronizacji; null, jeśli synchronizacja jeszcze nie nastąpiła |
syncCount | liczba | Liczba udanych synchronizacji od włączenia zasilania |
failCount | liczba | Liczba nieudanych prób od włączenia zasilania |
httpd| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Serwer WWW jest włączony w ustawieniach |
available | wartość logiczna | Serwer HTTPD jest gotowy w bieżącym stanie roboczym |
activeConnections | liczba | Aktualnie aktywne połączenia TCP |
maxConnections | liczba | Maksymalna liczba jednoczesnych połączeń (stała) |
activeSessions | liczba | Aktualnie autoryzowane sesje |
maxSessions | liczba | Maksymalna liczba jednoczesnych sesji (stała) |
port | liczba | Port TCP serwera HTTP |
connections | tablica | Aktywne połączenia TCP |
connections[].ip | ciąg znaków | Adres IP klienta |
connections[].port | liczba | Port TCP klienta |
modbus| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Modbus TCP jest włączony w ustawieniach |
available | wartość logiczna | Serwer Modbus TCP jest gotowy |
activeConnections | liczba | Bieżąca liczba aktywnych połączeń TCP |
maxConnections | liczba | Maksymalna liczba jednoczesnych połączeń |
blockedIps | liczba | Liczba adresów IP zablokowanych po nieudanych próbach podania hasła |
port | liczba | Port Modbus TCP |
rxPackets | liczba | Pakiety odebrane we wszystkich połączeniach od uruchomienia |
txPackets | liczba | Pakiety wysłane we wszystkich połączeniach od uruchomienia |
rxErrors | liczba | Błędy odbioru we wszystkich połączeniach od uruchomienia |
txErrors | liczba | Błędy transmisji we wszystkich połączeniach od uruchomienia |
exceptionResp | liczba | Odpowiedzi wyjątków Modbus wysłane od uruchomienia |
rxBytes | liczba | Bajty odebrane we wszystkich połączeniach od uruchomienia |
txBytes | liczba | Bajty wysłane we wszystkich połączeniach od uruchomienia |
rxPerSec | liczba | Bieżąca łączna szybkość odbioru w pakietach/s |
txPerSec | liczba | Bieżąca łączna szybkość transmisji w pakietach/s |
connections | tablica | Aktywne połączenia TCP |
connections[].ip | ciąg znaków | Adres IP klienta |
connections[].port | liczba | Port TCP klienta |
connections[].uptimeSec | liczba | Czas trwania połączenia w sekundach |
connections[].unlocked | wartość logiczna | Określa, czy chronione operacje są odblokowane dla połączenia |
connections[].rxPackets | liczba | Pakiety odebrane w ramach połączenia |
connections[].txPackets | liczba | Pakiety wysłane w ramach połączenia |
connections[].rxErrors | liczba | Błędy odbioru w ramach połączenia |
connections[].txErrors | liczba | Błędy transmisji w ramach połączenia |
connections[].exceptionResp | liczba | Odpowiedzi wyjątków Modbus wysłane w ramach połączenia |
connections[].rxBytes | liczba | Bajty odebrane w ramach połączenia |
connections[].txBytes | liczba | Bajty wysłane w ramach połączenia |
connections[].rxPerSec | liczba | Bieżąca szybkość odbioru dla połączenia w pakietach/s |
connections[].txPerSec | liczba | Bieżąca szybkość transmisji dla połączenia w pakietach/s |
wireguard| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | WG jest włączony w ustawieniach |
mode | ciąg znaków | Tryb konfiguracji: "auto" albo "static" |
status | obiekt | Skrócony stan działania WireGuard |
endpoint | obiekt | Punkt końcowy zdalnego partnera |
interface | obiekt | Odwzorowanie skonfigurowanego i roboczego interfejsu |
wireguard.status| Pole | Typ | Opis |
|---|---|---|
link | ciąg znaków | Stan łącza: "disabled", "netif", "configured", "connected", "up" |
config | ciąg znaków | Stan konfiguracji: "disabled", "staticInvalid", "pause", "serverResolving", "serverConnecting", "discoverWait", "connectWait", "peerResolving", "ready" |
lastPeerUpUtc | ciąg|null | Czas UTC, gdy partner był ostatnio aktywny; null, jeśli nigdy nie był aktywny |
lastHandshakeAgeSec | liczba|null | Czas od ostatniego uzgodnienia lub pakietu podtrzymującego partnera w sekundach; null, jeśli brak |
lastActivityAgeSec | liczba|null | Czas od ostatniej aktywności partnera (handshake/keepalive, RX albo TX) w sekundach; null, jeśli brak |
rxPackets | liczba | Pakiety odebrane przez tunel WG |
txPackets | liczba | Pakiety wysłane przez tunel WG |
wireguard.endpoint| Pole | Typ | Opis |
|---|---|---|
hostname | ciąg|null | Nazwa hosta punktu końcowego |
address | ciąg|null | Rozpoznany adres IP punktu końcowego |
port | liczba|null | Port punktu końcowego |
keepaliveSec | liczba|null | Bieżący interwał podtrzymywania połączenia z partnerem w sekundach |
peerPublicKey | ciąg|null | Klucz publiczny partnera |
allowedIps | tablica | Dozwolone sieci partnera w formacie IPv4 CIDR |
wireguard.interface| Pole | Typ | Opis |
|---|---|---|
configured | ciąg|null | Skonfigurowany adres interfejsu w notacji CIDR |
runtime | ciąg|null | Rzeczywisty aktywny adres interfejsu w notacji CIDR |
devicePublicKey | ciąg|null | Klucz publiczny urządzenia |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/settings/get/?meta&general&dateTime&display&access&recorder&network&ntp&web&modbus&vpnWireguard&channels&protectionPobierz jedną albo więcej grup najwyższego poziomu ustawień trwałych. Uwierzytelnianie: Bearer.
Parametry zapytaniaDział zatytułowany „Parametry zapytania”Każdy klucz zapytania jest flagą żądającą odpowiedniej grupy. Prawidłowe klucze:
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
sequence | liczba | Numer sekwencyjny zapisu ustawień |
fwVersion | ciąg znaków | Wersja oprogramowania układowego, które utworzyło migawkę |
isDefault | wartość logiczna | Określa, czy są to ustawienia domyślne |
savedAt | ciąg znaków | Czas ostatniego zapisu (ISO 8601 UTC) |
dataLength | liczba | Długość danych |
dataCrc32 | ciąg znaków | Suma CRC32 danych (zapis szesnastkowy, 8 znaków) |
headerCrc32 | ciąg znaków | Suma CRC32 nagłówka (zapis szesnastkowy, 8 znaków) |
general| Pole | Typ | Opis |
|---|---|---|
language | ciąg znaków | Język interfejsu |
logDebugMask | liczba | Maska bitowa modułów dziennika debugowania (bit0 = WireGuard) |
dateTime| Pole | Typ | Opis |
|---|---|---|
timezoneOffset | liczba | Przesunięcie strefy czasowej w minutach |
dst | obiekt | Ustawienia czasu letniego |
dst.mode | liczba | Tryb czasu letniego |
dst.deltaMin | liczba | Wartość przesunięcia w minutach |
dst.startLocal | ciąg znaków | Początek czasu letniego (czas lokalny) |
dst.endLocal | ciąg znaków | Koniec czasu letniego (czas lokalny) |
display| Pole | Typ | Opis |
|---|---|---|
contrast | liczba | Kontrast |
activeBacklightPercent | liczba | Jasność aktywnego podświetlenia, % |
idleBacklightEnable | wartość logiczna | Określa, czy podświetlenie jest przyciemniane w stanie bezczynności |
idleBacklightPercent | liczba | Jasność podświetlenia w stanie bezczynności, % |
idleTimeoutSec | liczba | Czas bezczynności przed przyciemnieniem w sekundach |
access| Pole | Typ | Opis |
|---|---|---|
devPasswordEnable | wartość logiczna | Wymaga hasła przy wejściu do menu lokalnego |
webUserPassEnable | wartość logiczna | Wymaga hasła dostępu WWW na poziomie user |
webPwrPassEnable | wartość logiczna | Wymaga hasła dostępu WWW na poziomie powerUser |
modbusPasswordEnable | wartość logiczna | Wymaga hasła do odblokowania chronionych operacji Modbus TCP |
Pola devPassword, webUserPass, webPwrPass i modbusPassword są celowo pomijane w odpowiedzi. Interfejs API nie ujawnia ani zapisanych haseł, ani informacji o ustawieniu wartości niestandardowej. Klienci muszą używać wyłącznie flag ...PasswordEnable jako informacji o stanie ochrony. Na poziomie user flagi te są zwracane jako null; ich wartości są dostępne dla powerUser.
recorder| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Rejestrowanie temperatury jest włączone |
periodSec | liczba | Okres rejestrowania w sekundach |
network| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Ethernet jest włączony |
dhcpEnable | wartość logiczna | DHCP jest włączony |
dns | ciąg[] | Serwery DNS |
ipAddress | ciąg znaków | Statyczny adres IP |
subnetMask | ciąg znaków | Maska podsieci |
gateway | ciąg znaków | Brama |
ntp| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | NTP jest włączony |
syncPeriodSec | liczba | Okres synchronizacji (w sekundach) |
server1 | ciąg znaków | Główny serwer NTP |
server2 | ciąg znaków | Zapasowy serwer NTP |
web| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Serwer WWW jest włączony |
port | liczba | Port HTTP |
vpnTrusted | wartość logiczna | Zezwala na zaufany dostęp WWW przez VPN |
vpnAccessLevel | liczba | Dostęp przez VPN: 0 = standardowa autoryzacja hasłem, 1 = user, 2 = powerUser |
modbus| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Modbus TCP jest włączony |
unitId | liczba | Identyfikator jednostki |
port | liczba | Port TCP |
timeoutSec | liczba | Limit czasu (w sekundach) |
protectMode | liczba | Tryb ochrony: 0 = brak, 1 = ochrona zapisu, 2 = ochrona odczytu i zapisu |
vpnAccessLevel | liczba | Dostęp przez VPN: 0 = wyłączony, 1 = korzysta z ochrony ogólnej, 2 = tylko odczyt, 3 = odczyt i zapis |
vpnWireguard| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | WireGuard jest włączony |
autoConfigEnable | wartość logiczna | Tryb automatycznej konfiguracji Overvis (parametry są pobierane z chmury przy użyciu tożsamości urządzenia) |
autoConfigUrl | ciąg znaków | Adres URL serwera automatycznej konfiguracji |
privateKey | ciąg znaków | Statyczny klucz prywatny WireGuard w formacie base64 |
address | ciąg znaków | Adres lokalnego interfejsu w notacji CIDR, na przykład 10.0.0.2/24 |
peerPublicKey | ciąg znaków | Statyczny klucz publiczny elementu równorzędnego WireGuard w formacie base64 |
peerHostname | ciąg znaków | Nazwa hosta partnera |
peerPort | liczba | Port partnera |
allowedIps | ciąg[] | Dokładnie 2 trasy CIDR partnera |
keepaliveSec | liczba | Stały interwał podtrzymywania połączenia w sekundach |
autoConfigEnable = false, używane są wszystkie statyczne pola vpnWireguard, w tym klucze i punkt końcowy.autoConfigEnable = true, statyczne pola vpnWireguard są ignorowane podczas działania; WireGuard/Overvis pobiera parametry za pośrednictwem interfejsu API tożsamości usługi na potrzeby automatycznej konfiguracji.channels| Pole | Typ | Opis |
|---|---|---|
filterLevel | liczba | Poziom filtrowania |
items | tablica | Tablica 4 kanałów |
channels.items[]| Pole | Typ | Opis |
|---|---|---|
enabled | wartość logiczna | Kanał jest włączony |
sensorTypeId | liczba | Identyfikator typu czujnika (patrz /api/reference/sensor-types/) |
userOffset | liczba | Przesunięcie użytkownika |
ptcMinikaNominal | liczba | Wartość nominalna PTC Minika |
linked | liczba | Przynależność do wspólnej grupy progu i histerezy TRIP/ALARM/FAN: 0 = niezależny, 1 = połączony |
protectionprotection.trip / protection.alarm| Pole | Typ | Opis |
|---|---|---|
delaySec | liczba | Opóźnienie aktywacji (w sekundach) |
channels | tablica | Wartości zadane poszczególnych kanałów (4 elementy) |
protection.trip.channels[] / protection.alarm.channels[]| Pole | Typ | Opis |
|---|---|---|
threshold | liczba | Wartość zadana temperatury |
hysteresis | liczba | Histereza |
protection.fan| Pole | Typ | Opis |
|---|---|---|
mode | liczba | Tryb pracy |
delaySec | liczba | Opóźnienie aktywacji (w sekundach) |
channels | tablica | Wartości zadane poszczególnych kanałów (4 elementy) |
protection.fault| Pole | Typ | Opis |
|---|---|---|
delaySec | liczba | Opóźnienie aktywacji (w sekundach) |
Poniższe zakresy odpowiadają ograniczeniom oprogramowania układowego w Application/User/settings.h.
general.language: en | pl | ua | ru.general.logDebugMask: 0..65535 (maska bitowa).dateTime.timezoneOffset: -720..840 minut.dateTime.dst.mode: 0..3 (OFF, EU, US, MANUAL).dateTime.dst.deltaMin: 0..180 minut.display.contrast: 0..64.display.activeBacklightPercent: 0..100.display.idleBacklightEnable: true | false.display.idleBacklightPercent: 0..100.display.idleTimeoutSec: 30..3600 sekund.access.devPasswordEnable, access.webUserPassEnable, access.webPwrPassEnable, access.modbusPasswordEnable: true | false.access nie są zwracane przez ten punkt końcowy; ograniczenia ich zapisu opisano w POST /api/settings/set/.recorder.enabled: true | false.recorder.periodSec: 5..3600 sekund.ntp.syncPeriodSec: 300..86400 sekund.ntp.server1, ntp.server2: maksymalnie 31 znaków każdy.web.port: 1..65535.web.vpnTrusted: true | false.web.vpnAccessLevel: 0..2 (password, user, powerUser); 0 używa standardowej autoryzacji hasłem.modbus.unitId: 0..247; 0 — akceptuje żądania z dowolnym identyfikatorem jednostki.modbus.port: 1..65535.modbus.timeoutSec: 1..3600 sekund.modbus.protectMode: 0..2 (none, write-protect, read-write-protect).modbus.vpnAccessLevel: 0..3 (disabled, password, read-only, read-write).vpnWireguard.peerPort: 1..65535.vpnWireguard.keepaliveSec: 1..300 sekund.channels.filterLevel: 1..10.channels.items[].sensorTypeId: 0..MSR_SENSOR_COUNT-1; prawidłowe wartości są udostępniane przez GET /api/reference/sensor-types/.channels.items[].userOffset: -10.0..10.0 °C.channels.items[].ptcMinikaNominal: 60.0..180.0 °C.channels.items[].linked: 0..1.protection.trip.delaySec, protection.alarm.delaySec, protection.fan.delaySec, protection.fault.delaySec: 0..60 sekund.protection.trip.channels[].threshold, protection.alarm.channels[].threshold, protection.fan.channels[].threshold: -40.0..240.0 °C.protection.trip.channels[].hysteresis, protection.alarm.channels[].hysteresis, protection.fan.channels[].hysteresis: 0.0..100.0 °C.protection.fan.mode: 0..3.| |
|---|
POST /api/settings/set/Częściowo zaktualizuj zapisane ustawienia (semantyka scalania). Uwierzytelnianie: Bearer ( ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
WalidacjaDział zatytułowany „Walidacja”
Ograniczenia pól zapisywalnychDział zatytułowany „Ograniczenia pól zapisywalnych”Poniższe ograniczenia odpowiadają walidacji oprogramowania układowego w
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/reference/sensor-types/Pobierz listę obsługiwanych typów czujników. Uwierzytelnianie: Bearer. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
items | tablica | tak | Lista typów |
items[].id | liczba | tak | Identyfikator liczbowy |
items[].shortName | ciąg znaków | tak | Skrócona nazwa czujnika |
items[].description | ciąg znaków | tak | Opis czujnika |
| | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/history/temperature/info/Pobiera metadane okna bieżącej historii bez tablicy próbek. Uwierzytelnianie: Bearer. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
capacity | liczba | tak | Maksymalna pojemność bufora cyklicznego na kanał |
periodSec | liczba | tak | Interwał rejestrowania próbek w sekundach |
total | liczba | tak | Bieżąca liczba prawidłowych próbek |
lastSequence | liczba | tak | Numer sekwencyjny najnowszej próbki |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/history/temperature/samples/?page=1&pageSize=2&direct=descPobiera stronę zsynchronizowanych próbek historii dla wszystkich czterech kanałów. Uwierzytelnianie: Bearer. Parametry zapytaniaDział zatytułowany „Parametry zapytania”
*Wymagany jest parametr Kursor zapewnia stabilną, sekwencyjną paginację bez duplikatów ani luk.
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
nextCursor | liczba|null | Kursor dla następnego żądania. null, jeśli osiągnięto koniec zapytania. |
periodSec | liczba | Interwał rejestrowania historii w sekundach. |
lastSequence | liczba | Bieżący monotoniczny numer sekwencyjny w chwili wysłania żądania. |
samples | tablica | Próbki w kolejności określonej przez direct (0..pageSize elementów). |
sampleCount | liczba | Liczba próbek w bieżącym zestawie wyników. |
Jeśli nie ma więcej dostępnych danych, odpowiedź zawiera sampleCount: 0, samples: []
oraz nextCursor: null. Nie jest to błąd.
samples[]| Pole | Typ | Opis |
|---|---|---|
sequence | liczba | Numer sekwencyjny tej próbki. |
channels | tablica | 4 elementy (CH1..CH4). |
samples[].channels[]| Pole | Typ | Opis |
|---|---|---|
state | ciąg znaków | "normal", "open", "short", "invalid" |
temperature | liczba|null | Temperatura (null, jeśli wartość jest nieprawidłowa) |
GET /api/history/temperature/samples/?page=1&pageSize=20&direct=desc→ { "nextCursor": 1216, "sampleCount": 20, "samples": [...] }
GET /api/history/temperature/samples/?cursor=1216&pageSize=20&direct=desc→ { "nextCursor": 1196, "sampleCount": 20, "samples": [...] }
GET /api/history/temperature/samples/?cursor=1196&pageSize=20&direct=desc→ { "nextCursor": null, "sampleCount": 20, "samples": [...] }Pierwsze żądanie używa page=1; kolejne używają parametru cursor z poprzedniej odpowiedzi.
| | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/recorder/info/Pobiera metadane rejestratora bez tablicy rekordów. Uwierzytelnianie: Bearer. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
capacity | liczba | tak | Maksymalna pojemność bufora cyklicznego |
total | liczba | tak | Liczba dostępnych zarchiwizowanych rekordów |
oldestSequence | liczba | tak | Numer sekwencyjny najstarszego rekordu |
lastSequence | liczba | tak | Numer sekwencyjny najnowszego rekordu |
period | liczba | tak | Skonfigurowany interwał rejestrowania w sekundach (1..3600); rejestrowanie włącza się niezależnie za pomocą ustawienia tempRecordEnable |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/recorder/records/?page=1&pageSize=2&direct=descPobiera stronę zarchiwizowanych wpisów rejestratora. Uwierzytelnianie: Bearer. Parametry zapytaniaDział zatytułowany „Parametry zapytania”
*Wymagany jest parametr Kursor zapewnia stabilną, sekwencyjną paginację bez duplikatów ani luk.
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
nextCursor | liczba|null | Kursor dla następnego żądania. null, jeśli osiągnięto koniec zapytania. |
recordCount | liczba | Liczba rekordów w bieżącym zestawie wyników (0..pageSize). |
records | tablica | Rekordy w kolejności określonej przez direct. |
Jeśli nie ma więcej dostępnych danych, odpowiedź zawiera recordCount: 0, records: []
oraz nextCursor: null. Nie jest to błąd.
records[]| Pole | Typ | Opis |
|---|---|---|
sequence | liczba | Numer sekwencyjny rekordu |
timestamp | ciąg znaków | ISO 8601 UTC |
channels | tablica | 4 elementy (CH1..CH4) |
records[].channels[]| Pole | Typ | Opis |
|---|---|---|
state | ciąg znaków | "normal", "open", "short", "invalid" |
temperature | liczba|null | Temperatura (null, jeśli stan jest inny niż "normal") |
enabled | wartość logiczna | Określa, czy kanał jest włączony |
trip | wartość logiczna | Stan wyłączenia awaryjnego |
alarm | wartość logiczna | Stan alarmu |
fan | wartość logiczna | Stan wentylatora |
GET /api/recorder/records/?page=1&pageSize=5&direct=desc→ { "nextCursor": 1529, "recordCount": 5, "records": [...] }
GET /api/recorder/records/?cursor=1529&pageSize=5&direct=desc→ { "nextCursor": 1524, "recordCount": 5, "records": [...] }
GET /api/recorder/records/?cursor=1524&pageSize=5&direct=desc→ { "nextCursor": 1519, "recordCount": 5, "records": [...] }
GET /api/recorder/records/?cursor=1519&pageSize=5&direct=desc→ { "nextCursor": 1514, "recordCount": 5, "records": [...] }
GET /api/recorder/records/?cursor=1514&pageSize=5&direct=desc→ { "nextCursor": null, "recordCount": 5, "records": [...] }Pierwsze żądanie używa page=1; kolejne używają parametru cursor z poprzedniej odpowiedzi.
| |
|---|
GET /api/recorder/export.csv/Eksportuje dane rejestratora w formacie CSV. Uwierzytelnianie: Bearer. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/recorder/clear/Czyści rejestrator. Uwierzytelnianie: ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Pusta lub niepoprawna składniowo treść JSON → Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/log/info/Pobiera podsumowanie dziennika zdarzeń. Uwierzytelnianie: Bearer. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
capacity | liczba | tak | Maksymalna pojemność bufora cyklicznego |
total | liczba | tak | Liczba dostępnych zdarzeń |
pending | liczba | tak | Liczba niepotwierdzonych zdarzeń w bieżącej sesji zasilania |
oldestSequence | liczba | tak | Numer sekwencyjny najstarszego dostępnego zdarzenia w buforze cyklicznym. Na stronach interfejsu wyświetlających najstarsze zdarzenia (oldest) jest to główny wskaźnik, że granica okna po stronie starszych zdarzeń faktycznie się przesunęła wskutek usunięcia zdarzeń z bufora. |
lastSequence | liczba | tak | Numer sekwencyjny najnowszego zdarzenia. Interfejs używa tego pola do wykrywania nowych zdarzeń: jeśli wartość wzrosła względem poprzednio zapisanej, do dziennika dodano N = lastSequence_new - lastSequence_old nowych zdarzeń. Pobranie tych N zdarzeń jest właściwe tylko wtedy, gdy bieżąca strona interfejsu zawiera poprzednio zapisane lastSequence (czyli użytkownik znajduje się na najnowszej stronie, na której pojawiają się nowe wpisy); na pozostałych stronach aktualizacja nie jest potrzebna. |
totalBySeverity | obiekt | tak | Podział wartości total według poziomu ważności |
pendingBySeverity | obiekt | tak | Podział wartości pending według poziomu ważności |
totalBySeverity| Pole | Typ | Opis |
|---|---|---|
debug | liczba | Liczba dostępnych zdarzeń DEBUG |
info | liczba | Liczba dostępnych zdarzeń INFO |
warning | liczba | Liczba dostępnych zdarzeń WARNING |
error | liczba | Liczba dostępnych zdarzeń ERROR |
fault | liczba | Liczba dostępnych zdarzeń FAULT |
pendingBySeverity| Pole | Typ | Opis |
|---|---|---|
debug | liczba | Liczba oczekujących zdarzeń DEBUG |
info | liczba | Liczba oczekujących zdarzeń INFO |
warning | liczba | Liczba oczekujących zdarzeń WARNING |
error | liczba | Liczba oczekujących zdarzeń ERROR |
fault | liczba | Liczba oczekujących zdarzeń FAULT |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/log/events/?page=1&pageSize=1&direct=descPobiera stronę zdarzeń dziennika przy użyciu stabilnej paginacji. Uwierzytelnianie: Bearer. Parametry zapytaniaDział zatytułowany „Parametry zapytania”
*Wymagany jest parametr Kursor zapewnia stabilną, sekwencyjną paginację bez duplikatów ani luk.
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
nextCursor | liczba|null | Kursor dla następnego żądania. null, jeśli osiągnięto koniec zapytania. |
eventCount | liczba | Liczba zdarzeń w bieżącym zestawie wyników (0..pageSize). |
events | tablica | Zdarzenia w kolejności określonej przez direct. |
Jeśli nie ma więcej dostępnych danych, odpowiedź zawiera eventCount: 0, events: []
oraz nextCursor: null. Nie jest to błąd.
events[]| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
sequence | liczba | tak | Numer sekwencyjny zdarzenia |
timestamp | ciąg znaków | tak | ISO 8601 UTC |
errorCode | liczba | tak | Kod błędu |
pending | wartość logiczna | tak | true, jeśli zdarzenie nie zostało jeszcze potwierdzone w bieżącej sesji zasilania |
severity | ciąg znaków | tak | "DEBUG", "INFO", "WARNING", "ERROR", "FAULT" |
dataType | ciąg znaków | tak | "GENERIC", "FAULT", "NETWORK" |
generic | obiekt | nie | Obecne, jeśli dataType = "GENERIC" |
fault | obiekt | nie | Obecne, jeśli dataType = "FAULT" |
network | obiekt | nie | Obecne, jeśli dataType = "NETWORK" |
generic| Pole | Typ | Opis |
|---|---|---|
message | ciąg znaków | Treść zdarzenia |
| Pole | Typ | Opis |
|---|---|---|
taskName | ciąg znaków | Nazwa zadania |
registers | ciąg znaków | Pojedynczy ciąg znaków w postaci PC=... LR=... SP=... CFSR=... HFSR=... MMFAR=... BFAR=... R0=... R1=... R2=... R3=... R12=... xPSR=... |
network| Pole | Typ | Opis |
|---|---|---|
message | ciąg znaków | Tekst |
remoteIp | ciąg znaków | Zdalny adres IP |
remotePort | liczba | Port zdalny |
localPort | liczba | Port lokalny |
lwipError | liczba | Kod błędu lwIP |
GET /api/log/events/?page=1&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 245, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=245&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 240, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=240&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 235, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=235&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 230, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=230&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": null, "eventCount": 5, "events": [...] }Pierwsze żądanie używa page=1; kolejne używają parametru cursor z poprzedniej odpowiedzi.
Parametr cursor zapobiega ponownemu przeszukiwaniu przez serwer już odczytanych rekordów,
co jest szczególnie ważne podczas filtrowania za pomocą parametru severityMask.
| |
|---|
GET /api/log/export.log/Eksportuje dziennik w formacie tekstowym. Uwierzytelnianie: Bearer. Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/log/acknowledge/Czyści flagę niepotwierdzonych zdarzeń. Uwierzytelnianie: Bearer. ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Pusta treść lub nieprawidłowy kod JSON → Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/log/clear/Czyści dziennik zdarzeń. Uwierzytelnianie: ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Pusta treść lub nieprawidłowy kod JSON → Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| |
|---|
Usługa kalibracjiKalibracja fabryczna jest obsługiwana w ramach jednej sesji obejmującej całe urządzenie. Sesja przejmuje ścieżkę pomiarową, wygasa po 30 sekundach bezczynności i przechowuje w pamięci RAM wersję roboczą do czasu wykonania operacji AutoryzacjaDział zatytułowany „Autoryzacja”
Model danychDział zatytułowany „Model danych”Dostępnych jest sześć niezależnych pozycji: Każda zapisana migawka zawiera zastosowaną tolerancję bezwzględną i surowe wartości ADC czterech kanałów. Bieżąca rezystancja oraz wartości weryfikacyjne dla aktualnej pozycji są obliczane wyłącznie na podstawie jej rezystancji wzorcowej i zarejestrowanej wartości ADC: Narzędzie producenta oblicza tolerancję. Podczas operacji Bezpośrednio po rejestracji odpowiedni element Dane źródłowe ukończonej migawki nie zmieniają się do czasu ponownego zarejestrowania tej samej pozycji. Rejestracja innego punktu nie unieważnia ukończonych migawek. GET /api/service/calibration/report/Dział zatytułowany „GET /api/service/calibration/report/”Generuje najnowszy kompletny raport jakości na podstawie zapisanych pozycji kalibracji. W pamięci Flash nie jest przechowywany oddzielny obiekt raportu. Odpowiedź Dział zatytułowany „Odpowiedź 200, raport niedostępny” |
| | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Weryfikacja własności w OvervisWeryfikacja potwierdza fizyczny dostęp do urządzenia TR-100E podczas łączenia go z Overvis za pomocą kodu PIN. Kod jest wyświetlany na urządzeniu przez maksymalnie 5 minut. Użytkownik może wprowadzić ten kod w Overvis albo potwierdzić połączenie, wybierając opcję Tak na urządzeniu TR-100E. Kod stanowi część stanu roboczego: nie jest zapisywany w pamięci Flash/EEPROM ani zwracany przez interfejs API stanu. POST /api/service/challenge/set/Dział zatytułowany „POST /api/service/challenge/set/”Ustawia, zastępuje lub usuwa weryfikację. Dostęp: wyłącznie WireGuard, Bearer/implicit ( UstawienieDział zatytułowany „Ustawienie”Pole Odpowiedź UsunięcieDział zatytułowany „Usunięcie”Odpowiedź Pusta treść żądania lub nieprawidłowy kod JSON powoduje zwrócenie GET /api/service/challenge/status/Dział zatytułowany „GET /api/service/challenge/status/”Pobiera spójną migawkę stanu weryfikacji. Dostęp: wyłącznie WireGuard, Bearer/implicit ( Odpowiedź
Wartość Po wybraniu opcji Tak urządzenie TR-100E wyświetla ekran oczekiwania do czasu, gdy Overvis odczyta stan Jeśli użytkownik potwierdzi własność, wprowadzając kod w Overvis, usługa chmurowa porównuje go z pierwotną wartością i po pomyślnej weryfikacji wysyła |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/firmware/apply/Stosuje wcześniej przesłany i zweryfikowany obraz OTA. Uwierzytelnianie: ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Pusta treść żądania lub nieprawidłowy składniowo kod JSON → Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sesja przesyłania oprogramowania układowegoPrzesyłanie pliku GET /api/service/firmware/upload/status/Dział zatytułowany „GET /api/service/firmware/upload/status/”Pobiera bieżący stan sesji przesyłania oraz informację o poprawności obrazu OTA. Uwierzytelnianie: Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
uploadInProgress | wartość logiczna | Trwa kasowanie, odbieranie lub weryfikacja |
imageValid | wartość logiczna | Obraz OTA został w całości przesłany i zweryfikowany |
receivedBytes | liczba | Liczba potwierdzonych bajtów |
totalBytes | liczba | Oczekiwany rozmiar obrazu |
percent | liczba | Postęp wyrażony w procentach |
lastError | liczba | Kod błędu (0 = brak) |
lastInstallState | ciąg znaków | Ostatni stan instalacji: "idle", "ready", "running", "failed", "unknown" |
meta | obiekt | Metadane zweryfikowanego obrazu; obecne tylko wtedy, gdy imageValid: true |
meta.fwVersion | ciąg znaków | Wersja oprogramowania układowego z obrazu OTA, maksymalnie 15 znaków ASCII (na przykład 1.0 lub 1.2.3-rc4) |
meta.buildTimestamp | liczba | Uniksowy znacznik czasu kompilacji |
meta.deviceStr | ciąg znaków | Oznaczenie docelowego sprzętu; TR-100E (48) dla tego urządzenia |
meta.description | ciąg znaków | Opis obrazu |
Otwiera sesję przesyłania, ustawia rozmiar obrazu i przygotowuje obszar OTA.
Uwierzytelnianie: powerUser
{ "size": 524288}| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
size | liczba | tak | Liczba całkowita: rozmiar obrazu OTA w bajtach (> 0 i ≤ rozmiar obszaru OTA) |
erase/verify → 503 ERROR_NOT_READY.200{ "acceptedOffset": 0}Zapisuje fragment obrazu OTA.
Uwierzytelnianie: powerUser
Content-Type: application/octet-streamoffset: przesunięcie fragmentu w pełnym obrazie.1024 bajty).| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
offset | liczba | tak | Liczba całkowita: nieujemne przesunięcie w pełnym obrazie OTA |
offset musi odpowiadać oczekiwanemu przesunięciu lub wskazywać już potwierdzony fragment (idempotentne ponowienie).400 ERROR_INVALID_VALUE.400 ERROR_INVALID_VALUE.200{ "acceptedOffset": 1024}Kończy sesję przesyłania i rozpoczyna weryfikację.
Uwierzytelnianie: powerUser
{ "confirm": true}400 ERROR_INVALID_VALUE.200{ "uploadInProgress": false, "imageValid": true, "receivedBytes": 524288, "totalBytes": 524288, "percent": 100, "lastError": 0, "lastInstallState": "ready", "meta": { "fwVersion": "1.0", "buildTimestamp": 1785412800, "deviceStr": "TR-100E (48)", "description": "Production firmware" }}Usuwa przygotowany obraz OTA i zeruje sesję przesyłania.
Uwierzytelnianie: powerUser
{ "confirm": true}Pusta treść żądania lub nieprawidłowy składniowo kod JSON → 400 ERROR_API_PARSING.
Brak pola confirm, wartość inna niż logiczna lub false → 400 ERROR_INVALID_ARGUMENT.
200Zwraca pełny stan w takim samym formacie jak GET /api/service/firmware/upload/status/.
| | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/service/identity/get/Zwraca informacje serwisowe urządzenia. Uwierzytelnianie: ŻądanieDział zatytułowany „Żądanie”Treść żądania nie jest używana. Parametry zapytaniaDział zatytułowany „Parametry zapytania”
Przykład: Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
available | wartość logiczna | Dane serwisowe urządzenia są dostępne |
donglePresent | wartość logiczna | Sprzętowy klucz serwisowy jest podłączony |
hasDevicePrivateKey | wartość logiczna | Klucz prywatny urządzenia jest ustawiony |
hasDevicePassword | wartość logiczna | Hasło urządzenia jest ustawione; wartość hasła nie jest ujawniana |
uuid | ciąg znaków | null | Pełny unikatowy identyfikator MCU w formacie XXXXXXXX-XXXXXXXX-XXXXXXXX |
devicePublicKey | ciąg znaków | null | Klucz publiczny urządzenia w formacie base64 protokołu WireGuard |
macAddress | ciąg znaków | Efektywny adres MAC w formacie XX:XX:XX:XX:XX:XX, w tym wartość zastępcza |
isUnique | wartość logiczna | true, jeśli adres MAC odczytano z układu EUI-48; false, jeśli używana jest wartość zastępcza wyprowadzona z identyfikatora UUID MCU |
urlAutoConfig | ciąg znaków | null | Adres URL automatycznej konfiguracji |
manufacturer | ciąg znaków | null | Nazwa producenta |
pinCode | ciąg znaków | null | Kod PIN |
devicePassword | ciąg znaków | null | Hasło urządzenia. Obecne tylko wtedy, gdy zażądano go za pomocą ?includePassword=1 |
Jeśli dane serwisowe urządzenia nie są jeszcze gotowe, API zwraca 503 ERROR_NOT_READY.
| | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/service/identity/set/Aktualizuje pola tożsamości inne niż klucz prywatny urządzenia i zapisuje je w pamięci EEPROM. Uwierzytelnianie: ŻądanieDział zatytułowany „Żądanie”Treść żądania musi być obiektem JSON bez dodatkowego obiektu nadrzędnego Pola żądaniaDział zatytułowany „Pola żądania”
Ograniczenia długości:
Pusta treść żądania → Treść żądania, która nie jest obiektem → Jeśli nie podano żadnego z obsługiwanych pól → Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/reboot/Rozpoczyna opóźnione ponowne uruchomienie. Uwierzytelnianie: ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/settings/reset/Przywraca ustawienia fabryczne. Uwierzytelnianie: ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Pusta treść żądania lub nieprawidłowy składniowo kod JSON → Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/time/set/Ręcznie ustawia czas systemowy (RTC). Uwierzytelnianie: ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
WalidacjaDział zatytułowany „Walidacja”
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/time/sync/Rozpoczyna wymuszoną synchronizację czasu przez SNTP. Uwierzytelnianie: Bearer. ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Pusta treść żądania → Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/adc/, POST /api/debug/adc/start/, POST /api/debug/adc/stop/Surowe dane ADC i pośrednie wyniki pomiarów każdego kanału. Punkt końcowy jest przeznaczony do kalibracji i diagnostyki. Uwierzytelnianie: Bearer ( Operacje Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
diagnostic.active | wartość logiczna | Określa, czy tymczasowa konfiguracja kanałów jest aktywna |
diagnostic.ready | wartość logiczna | Określa, czy odebrano świeże dane ze stabilnymi stanami wszystkich kanałów |
diagnostic.sensorTypeId | liczba | Tymczasowo wybrany typ czujnika z GET /api/reference/sensor-types/; pole jest obecne, gdy active=true |
diagnostic.gain | ciąg znaków | Obliczone wzmocnienie; pole jest obecne, gdy active=true |
mcuTemperature | liczba|null | Temperatura wewnętrznego czujnika mikrokontrolera (°C) albo null, jeśli wartość jest nieprawidłowa |
channels | tablica | 4 elementy (CH1..CH4) |
channels[].filteredAdc | liczba | Filtrowana surowa wartość ADC |
channels[].resistance | liczba | Obliczona rezystancja (Ω) |
channels[].temperature | liczba|null | Obliczona temperatura (°C) albo null, jeśli wartość jest nieprawidłowa |
channels[].gain | ciąg znaków | Wzmocnienie: "x2" albo "x24" |
channels[].circuitState | ciąg znaków | Stan obwodu |
circuitState"NORMAL""OPEN_CIRCUIT""SHORT_CIRCUIT""UNDER_RANGE""OVER_RANGE""DISABLED""UNKNOWN"Tymczasowo włącza wszystkie cztery kanały z określonym typem czujnika. Oprogramowanie układowe dobiera wzmocnienie. Ustawienia ani pamięć flash nie są modyfikowane.
Wartość sensorTypeId należy pobrać z pola items[].id odpowiedzi na żądanie
GET /api/reference/sensor-types/.
{ "sensorTypeId": 0 }Ponowne wywołanie tego punktu końcowego uruchamia od nowa akumulację i filtrowanie. Odpowiedź zawiera obiekt diagnostic; wartość ready=false jest zwracana do chwili udostępnienia świeżych, stabilnych danych.
Kończy test i przywraca konfigurację kanałów z ustawień. Treść żądania jest ignorowana. Tryb kończy się również po 30 sekundach bez żądania GET /api/debug/adc/ albo po wyjściu z trybu diagnostycznego.
| | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/debug/display/start/ i POST /api/debug/display/stop/Test wyświetlacza, który tymczasowo zastępuje zwykły obraz oraz ustawienia kontrastu i podświetlenia. Uwierzytelnianie: Bearer ( POST /api/debug/display/start/Dział zatytułowany „POST /api/debug/display/start/”Włącza zastępczą konfigurację wyświetlacza. ŻądanieDział zatytułowany „Żądanie”
Ponowne wywołanie operacji Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| |
|---|
GET /api/debug/external-storage/dump/Przesyła strumieniowo zrzut każdego bajtu zainstalowanej pamięci zewnętrznej tylko do odczytu. Oprogramowanie układowe odczytuje fragmenty o ograniczonym rozmiarze i nie przydziela w pamięci RAM miejsca na cały zrzut. Uwierzytelnianie: Bearer ( Strumień jest kończony przez zamknięcie połączenia. Podczas pomyślnej diagnostyki
należy odebrać dokładnie tyle bajtów, ile wynosi wartość |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/external-storage/Informacje o pamięci zewnętrznej: zainstalowany układ, pojemność i pełna mapa obszarów. Uwierzytelnianie: Bearer ( Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
jedecId | ciąg znaków | Sześcioznakowy ciąg szesnastkowy (producent + typ + pojemność) |
chipType | ciąg znaków | Czytelna dla człowieka nazwa układu |
sizeBytes | liczba | Całkowita pojemność pamięci zewnętrznej (bajty) |
sectorSize | liczba | Rozmiar sektora (bajty) |
regions.logger.startAddress | ciąg znaków | Adres początkowy (szesnastkowy) |
regions.logger.sizeBytes | liczba | Rozmiar obszaru (bajty) |
regions.logger.usedEntries | liczba | Liczba używanych wpisów |
regions.logger.maxEntries | liczba | Maksymalna liczba wpisów |
regions.recorder.startAddress | ciąg znaków | Adres początkowy (szesnastkowy) |
regions.recorder.sizeBytes | liczba | Rozmiar obszaru (bajty) |
regions.recorder.usedEntries | liczba | Liczba używanych wpisów |
regions.recorder.maxEntries | liczba | Maksymalna liczba wpisów |
regions.ota.startAddress | ciąg znaków | Adres początkowy (szesnastkowy) |
regions.ota.sizeBytes | liczba | Rozmiar miejsca na obraz OTA (bajty) |
regions.ota.imagePresent | wartość logiczna | Określa, czy jest dostępny obraz z prawidłowym nagłówkiem |
regions.ota.imageSize | liczba | Rozmiar ładunku określony w nagłówku (0 w przypadku braku obrazu) |
regions.reserved.startAddress | ciąg znaków | Adres początkowy obszaru zarezerwowanego (szesnastkowy) |
regions.reserved.sizeBytes | liczba | Rozmiar obszaru zarezerwowanego (bajty) |
| | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/heap/Stan stert FreeRTOS i lwIP. Uwierzytelnianie: Bearer ( Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
rtos.totalBytes | liczba | Całkowity rozmiar sterty FreeRTOS (configTOTAL_HEAP_SIZE) |
rtos.freeBytes | liczba | Bieżąca ilość wolnego miejsca (suma wszystkich wolnych bloków) |
rtos.minEverFreeBytes | liczba | Najmniejsza ilość wolnego miejsca od uruchomienia (dolny limit) |
rtos.largestFreeBlockBytes | liczba | Rozmiar największego wolnego bloku (wskaźnik fragmentacji) |
rtos.smallestFreeBlockBytes | liczba | Rozmiar najmniejszego wolnego bloku |
rtos.freeBlockCount | liczba | Liczba wolnych bloków |
rtos.allocCount | liczba | Liczba pomyślnych wywołań pvPortMalloc od uruchomienia |
rtos.freeCount | liczba | Liczba pomyślnych wywołań vPortFree od uruchomienia |
lwip.totalBytes | liczba | Całkowity rozmiar sterty lwIP |
lwip.freeBytes | liczba | Bieżąca ilość wolnego miejsca na stercie lwIP |
lwip.minEverFreeBytes | liczba | Najmniejsza ilość wolnego miejsca na stercie lwIP od uruchomienia |
Gdy
freeBytes > 0, wskaźnik fragmentacji sterty FreeRTOS wynosi1 - largestFreeBlockBytes / freeBytes. Jeśli wartośćlargestFreeBlockBytesjest znacznie mniejsza niżfreeBytes, przydzielenie dużego bloku może się nie powieść pomimo wystarczającej łącznej ilości wolnej pamięci. GdyfreeBytes == 0, interfejs WWW wyświetla0%bez obliczania tego wzoru.
| | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/keyget/Bieżące stany fizycznych przycisków na panelu przednim. Uwierzytelnianie: Bearer ( Stany są odczytywane bezpośrednio z wejść sprzętowych. Zdarzenia wirtualne przesłane za pomocą Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
up | wartość logiczna | Przycisk w górę jest naciśnięty |
down | wartość logiczna | Przycisk w dół jest naciśnięty |
menu | wartość logiczna | Przycisk menu jest naciśnięty |
set | wartość logiczna | Przycisk ustawiania jest naciśnięty |
test | wartość logiczna | Przycisk testu jest naciśnięty |
| | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/debug/keypress/Wstrzykuje wirtualne zdarzenie przycisku na potrzeby automatycznego testowania interfejsu i menu. Uwierzytelnianie: Bearer ( Tryb diagnostyczny musi być aktywny. W przeciwnym razie punkt końcowy zwraca ŻądanieDział zatytułowany „Żądanie”Pola żądaniaDział zatytułowany „Pola żądania”
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/debug/led/start/ i POST /api/debug/led/stop/Test serwisowy diod LED. Uwierzytelnianie: Bearer ( Tryb diagnostyczny musi być aktywny. W przeciwnym razie punkty końcowe zwracają POST /api/debug/led/start/Dział zatytułowany „POST /api/debug/led/start/”Wymusza stany testowe diod LED. ŻądanieDział zatytułowany „Żądanie”
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/lwip-stats/Migawka wewnętrznych liczników stosu lwIP: statystyki poszczególnych protokołów i stan pul memp. Źródłem danych jest globalna struktura Uwierzytelnianie: Bearer ( Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
recv | liczba | Odebrane pakiety |
xmit | liczba | Wysłane pakiety |
drop | liczba | Odrzucone pakiety |
chkerr | liczba | Błędy sumy kontrolnej |
lenerr | liczba | Błędy długości |
memerr | liczba | Nieudane przydziały pamięci |
rterr | liczba | Błędy routingu |
proterr | liczba | Błędy protokołu |
opterr | liczba | Błędy opcji |
err | liczba | Pozostałe błędy |
cachehit | liczba | Tylko etharp: trafienia w pamięci podręcznej ARP |
Możliwe klucze obiektu proto: link, etharp, ip, icmp, udp i tcp. (Odpowiadają one flagom LINK_STATS, ETHARP_STATS, IP_STATS, ICMP_STATS, UDP_STATS i TCP_STATS).
memp[] (struct stats_mem)Tablica zawierająca po jednym elemencie dla każdej puli memp. Pole name jest krótkim identyfikatorem puli z wyliczenia memp_t, bez prefiksu MEMP_.
| Pole | Typ | Opis |
|---|---|---|
name | ciąg znaków | Nazwa puli (na przykład TCP_PCB lub PBUF_POOL) |
avail | liczba | Pojemność puli (liczba elementów) |
used | liczba | Bieżąca liczba używanych elementów |
max | liczba | Szczytowa wartość used podczas działania |
err | liczba | Liczba nieudanych przydziałów z puli |
Ten blok jest obecny tylko wtedy, gdy MEMP_STATS = 1.
| | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/menu/Bieżący stan menu interfejsu na potrzeby automatycznych testów nawigacji. Uwierzytelnianie: Bearer ( Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
isActive | liczba | Określa, czy menu jest aktywne (1) albo nie (0) |
depth | liczba | Bieżący poziom zagnieżdżenia |
selectedIndex | liczba | Indeks wybranego elementu |
itemCount | liczba | Liczba elementów w bieżącej grupie |
groupId | liczba | Identyfikator bieżącej grupy menu |
mode | liczba | Tryb: 0 = NAV, 1 = EDIT |
| | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/network/Diagnostyka niskopoziomowego stosu sieciowego: warstwa PHY i adres MAC.
Uwierzytelnianie: Bearer ( Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
phy.linkUp | wartość logiczna | Określa, czy nawiązano połączenie Ethernet |
phy.speed | liczba | Prędkość połączenia (Mbit/s): 10 albo 100 |
phy.fullDuplex | wartość logiczna | Określa, czy tryb pełnego dupleksu jest aktywny |
phy.autoNegComplete | wartość logiczna | Określa, czy automatyczna negocjacja została ukończona |
phy.mac | ciąg znaków | Adres MAC interfejsu (AA:BB:CC:DD:EE:FF) |
phy.macSource | ciąg znaków | "EUI48" (z pamięci flash) albo "FALLBACK" (z oprogramowania układowego) |
| | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/debug/relay/start/ and POST /api/debug/relay/stop/Test serwisowy przekaźników. Uwierzytelnianie: Bearer ( Tryb diagnostyczny musi być aktywny. W przeciwnym razie punkty końcowe zwracają POST /api/debug/relay/start/Dział zatytułowany „POST /api/debug/relay/start/”Wymuś stany testowe przekaźników. ŻądanieDział zatytułowany „Żądanie”
Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/settings/Pobiera stan obu banków ustawień trwałych niezależnie od źródła bieżących ustawień używanych w czasie pracy. Uwierzytelnianie: Bearer ( Tryb diagnostyczny nie jest wymagany. W tym trybie niejawne uprawnienia Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
runtimeSource | ciąg znaków | Źródło bieżących ustawień używanych w czasie pracy: builtIn, bank1 albo bank2 |
bootBank | liczba | null | Bank wybrany podczas zwykłego rozruchu: 1, 2 albo null, jeśli oba banki są nieprawidłowe |
banks | tablica | Stan dwóch fizycznych banków ustawień |
banks[].bank | liczba | Numer banku: 1 albo 2 |
banks[].valid | wartość logiczna | Wynik pełnej weryfikacji nagłówka, wersji oprogramowania układowego, długości i CRC danych |
banks[].sequence | liczba | Numer sekwencji rekordu; obecny tylko dla prawidłowego banku |
banks[].isDefault | wartość logiczna | Określa, czy dane odpowiadają obowiązującym ustawieniom fabrycznym; obecne tylko dla prawidłowego banku |
banks[].savedAt | ciąg znaków | null | Czas zapisu w formacie ISO 8601 UTC; obecny tylko dla prawidłowego banku |
banks[].dataLength | liczba | Długość danych użytkowych; obecna tylko dla prawidłowego banku |
banks[].dataCrc32 | ciąg znaków | Suma kontrolna CRC32 danych użytkowych zapisana jako osiem znaków szesnastkowych; obecna tylko dla prawidłowego banku |
banks[].headerCrc32 | ciąg znaków | Suma kontrolna CRC32 nagłówka zapisana jako osiem znaków szesnastkowych; obecna tylko dla prawidłowego banku |
Wartości runtimeSource i bootBank mogą się różnić. Na przykład w trybie diagnostycznym środowisko wykonawcze używa builtIn, natomiast zwykły rozruch wybiera najnowszy prawidłowy bank pamięci flash.
Jeśli oba banki są prawidłowe, bootBank wskazuje bank z nowszą wartością sequence, z uwzględnieniem zawinięcia uint32_t. Jeśli wartości sequence są równe, wybierany jest bank 1.
Pola nagłówka nie są zwracane dla nieprawidłowego banku, ponieważ ich wartości nie są uznawane za wiarygodne.
Zapisane ustawienia są uznawane za fabryczne, jeśli bootBank nie jest null, a wskazany bank ma valid: true i isDefault: true. Drugi, starszy bank może zawierać ustawienia niestandardowe i nie wpływa na wynik.
| | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/system/Ogólna diagnostyka systemu: taktowanie zegara RTC, przyczyna resetu i stan podsystemów. Uwierzytelnianie: Bearer ( Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
core | ciąg znaków | Architektura rdzenia: "ARM32" |
uptimeSec | liczba | Czas pracy od włączenia zasilania (w sekundach) |
cpuFreqMHz | liczba | Częstotliwość rdzenia (SystemCoreClock / 1000000) |
resetReason | ciąg znaków | Przyczyna ostatniego resetu |
rtcSource | ciąg znaków | Źródło zegara RTC: "LSE", "LSI" albo "UNKNOWN" |
rtcTime | ciąg znaków | Bieżący czas zegara RTC w UTC (UTC+0) |
rtcSync | ciąg znaków | Źródło, które ostatnio ustawiło czas zegara RTC: "NONE", "BACKUP", "NTP" albo "MANUAL" |
readyFlags | obiekt | Wartości logiczne wskazujące stan inicjalizacji podsystemów |
resetReason| Wartość | Flaga RCC_CSR | Opis |
|---|---|---|
"Power on" | RCC_CSR_PORRSTF | Reset po włączeniu zasilania |
"Reset pin" | RCC_CSR_PADRSTF | Reset zewnętrzny (przycisk RESET) |
"Watchdog" | RCC_CSR_WDGRSTF | Reset przez układ nadzorujący |
"Software" | RCC_CSR_SFTRSTF | Reset programowy (NVIC_SystemReset()) |
"Low power" | RCC_CSR_LPWRRSTF | Reset w trybie niskiego poboru energii |
"Unknown" | — | Nieznana przyczyna |
rtcSource"LSE" — zewnętrzny rezonator kwarcowy 32.768 kHz (dokładny)."LSI" — wewnętrzny oscylator RC (dryft ±5%)."UNKNOWN" — źródło nie zostało określone.rtcSync"NONE" — zegar RTC został uruchomiony z czasem domyślnym; nie przeprowadzono synchronizacji ani przywracania czasu."BACKUP" — podczas uruchamiania przywrócono czas z domeny zapasowej."NTP" — czas ustawiono w wyniku synchronizacji SNTP/NTP."MANUAL" — czas ustawiono ręcznie za pomocą interfejsu użytkownika, API lub Modbus.readyFlagssettings, calibration, rtc, button, led, lcd, extmem, identity, logger, temprec, temphistory, msr, random, eth, lwip, httpd, sntp, wireguard, modbus
| | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/tasks/Migawka diagnostyczna bieżących zadań systemu RTOS i minimalnego zapasu wolnego miejsca na ich stosach. Uwierzytelnianie: token Bearer z poziomem dostępu Odpowiedź Dział zatytułowany „Odpowiedź 200” |
| Pole | Typ | Opis |
|---|---|---|
tasks | tablica | Lista zadań |
tasks[].number | liczba | RTOS xTaskNumber |
tasks[].name | ciąg znaków | Nazwa zadania |
tasks[].priority | liczba | Priorytet w systemie RTOS |
tasks[].stackMinFreeByte | liczba | Najmniejsza ilość wolnego miejsca na stosie w całym okresie działania, w bajtach |
tasks[].stackSizeByte | liczba | Całkowity rozmiar stosu, w bajtach |
Jeśli przydzielenie pamięci nie powiedzie się → 507 ERROR_NO_MEMORY.