Informacje o systemie
Identyfikacja fizyczna urządzenia
Dział zatytułowany „Identyfikacja fizyczna urządzenia”Zwraca unikalne informacje o bieżącym urządzeniu, w tym model, wersję oprogramowania sprzętowego, adres MAC i klucz publiczny.
GET /api/identify/
Poziom dostępu: 🟨 1
Odpowiedź:
| Pole | Typ | Opis |
|---|---|---|
manufacturer | string | Producent urządzenia. |
device | string | Nazwa modelu urządzenia. |
deviceId | integer | Identyfikator urządzenia. |
firmwareType | integer | Typ oprogramowania sprzętowego (np. podstawowe, rozszerzone itp.). |
firmwareVer | integer | Wersja oprogramowania sprzętowego. |
releaseDate | string | Data i godzina wydania w formacie ISO 8601. |
mac | string | Adres MAC interfejsu Ethernet. |
uniqueMac | boolean | Flaga wskazująca, czy adres MAC urządzenia jest unikalny. |
pubKey | string | Klucz publiczny urządzenia do uwierzytelniania kryptograficznego. |
Przykładowa odpowiedź:
{ "manufacturer": "Novatek-Electro Ltd.", "device": "MC-251", "deviceId": 46, "firmwareType": 1, "firmwareVer": 46, "releaseDate": "2025-05-26T00:00:00", "mac": "d8:80:39:69:0e:6d", "uniqueMac": true, "pubKey": "WB2dxH7Jk+tmW2TDwOmWxtBKjkKf4siJi42bDyCLLXQ="}Wersja oprogramowania sprzętowego
Dział zatytułowany „Wersja oprogramowania sprzętowego”GET /api/version/
Poziom dostępu: 🟩 0
Odpowiedź:
| Pole | Typ | Opis |
|---|---|---|
device | string | Model urządzenia producenta. |
deviceId | integer | Identyfikator urządzenia producenta. |
firmwareType | integer | Modyfikacja oprogramowania sprzętowego. |
firmwareVer | integer | Wersja oprogramowania sprzętowego. |
releaseDate | string | Data i godzina wydania w formacie ISO 8601. |
Przykładowa odpowiedź:
{ "device": "MC-251", "deviceId": 46, "firmwareType": 1, "firmwareVer": 46, "releaseDate": "2025-05-14T00:00:00"}Pobierz stan urządzenia
Dział zatytułowany „Pobierz stan urządzenia”Pobiera bieżący stan urządzenia według klucza (lub wszystkie stany).
GET /api/state/get/?key&...
Poziom dostępu: 🟨 1
Dostępne klucze:
ethernet: Stan interfejsu Ethernetgsm: Stan interfejsu GSMvpn: Stan interfejsu VPNmbTcpCallback: Stan połączenia Modbus TCP z chmurąactivation: Stan aktywacji urządzeniafwUpdate: Stan aktualizacjimbTcpServer: Stan serwera TCPmbTcpClients: Stan klienta TCPinputs: Stan wejśćoutputs: Stan wyjśćstatistics: Statystyki ogólnememTaskfiles: Stan plików zadańmemCard: Stan karty SDsettings: Stan ustawieńtime: Czas urządzeniamisc: Różne stany
ethernet
Dział zatytułowany „ethernet”Zwraca informacje o bieżącym stanie połączenia Ethernet.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
ip | string / null | Bieżący adres IP przypisany do urządzenia lub null, jeśli nie przypisano. |
mac | string | Adres MAC interfejsu Ethernet. |
linkUp | boolean | Wskazuje, czy istnieje aktywne łącze. |
Zwraca informacje o bieżącym stanie modułu GSM.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
signalLevel | integer / null | Poziom sygnału GSM w %, lub null, jeśli GSM nie jest podłączony. |
ip | string / null | Adres IP przypisany do interfejsu GSM lub null, jeśli nie przypisano. |
imei | string / null | IMEI modemu lub null, jeśli niezdefiniowany. |
simState | integer | Stan karty SIM: 0 — nie włożona, 1 — włożona i aktywna. |
pinState | integer | Stan kodu PIN: |
0 - Stan nieznany; | ||
1 - PIN nie jest wymagany; | ||
2 - PIN wymagany, liczba prób nieznana; | ||
3 - PIN wymagany, 0 prób pozostało; | ||
4 - PIN wymagany, 1 próba pozostała; | ||
5 - PIN wymagany, 2 próby pozostały; | ||
6 - PIN wymagany, 3 próby pozostały; | ||
7 - PIN wymagany, >3 prób pozostało; | ||
8 - Wymagane inne uwierzytelnianie (PUK itp.). | ||
ccid | string / null | CCID karty SIM lub null, jeśli niezdefiniowany. |
provider | string / null | Nazwa operatora karty SIM lub null, jeśli niezdefiniowany. |
radioBand | string / null | Standard GSM: 2g, 3g, 4g lub null, jeśli niezdefiniowany. |
isTcpIpBusy | boolean | Wskazuje, czy stos TCP/IP interfejsu GSM jest zajęty. |
isGsmRegistered | boolean | Wskazuje rejestrację w sieci operatora. |
isGsmRoaming | boolean | Wskazuje stan roamingu. |
isGprsStarted | boolean | Wskazuje aktywne połączenie GPRS. |
traficTotal | integer | Całkowity transfer danych przez interfejs GSM (w bajtach). |
Zwraca informacje o bieżącym stanie połączenia VPN (WireGuard).
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
linkState | string | Stan połączenia: |
disabled - VPN wyłączony w ustawieniach; | ||
netifCreated - Interfejs sieciowy utworzony; | ||
peerConfigured - Połączenie z peer skonfigurowane; | ||
peerConnected - Połączenie z peer nawiązane; | ||
peerUp - Tunel VPN jest uruchomiony. | ||
configServerReached | boolean / null | Dostępność serwera konfiguracyjnego. |
lastPeerUp | string / null | Czas ostatniego połączenia z peer (ISO 8601) lub null. |
netifIp | string / null | Adres IP interfejsu VPN lub null. |
netifMask | string / null | Maska podsieci interfejsu VPN lub null. |
peerIp | string / null | Adres IP zdalnego peer lub null. |
peerPort | integer | Port zdalnego peer. |
interface | string / null | Interfejs połączenia: eth, gsm lub null. |
configState | string | Stan konfiguracji: |
errorKey - Błąd: nieprawidłowy klucz; | ||
errorMem - Błąd: niewystarczająca pamięć; | ||
disabled - VPN wyłączony w ustawieniach; | ||
pause - Opóźnienie między próbami konfiguracji; | ||
serverHostnameResolving - Rozwiązywanie nazwy hosta serwera; | ||
serverConnecting - Łączenie z serwerem konfiguracyjnym; | ||
serverConnected - Połączono, odbieranie konfiguracji peer; | ||
peerHostnameResolving - Rozwiązywanie nazwy hosta peer; | ||
ready - Konfiguracja odebrana i gotowa. | ||
ownPubKey | string | Własny klucz publiczny urządzenia. |
mbTcpCallback
Dział zatytułowany „mbTcpCallback”Stan połączenia Modbus TCP z chmurą.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
state | string | Bieżący stan połączenia (disabled, waiting, connecting, connected). |
waitingTimeSec | integer / null | Czas oczekiwania na połączenie w sekundach. |
interface | string / null | Interfejs połączenia: eth, gsm, wg lub null. |
remoteIp | string / null | Adres IP serwera lub null. |
remotePort | integer | Zdalny port serwera. |
connectionTimeSec | integer | Czas od nawiązania połączenia w sekundach. |
idleTimeSec | integer | Czas bezczynności połączenia w sekundach. |
activationWithCode | string / null | Stan aktywacji: |
unused - Urządzenie nie otrzymało kodu aktywacyjnego; | ||
activated - Urządzenie jest aktywowane i związane z siecią; | ||
set - Urządzenie otrzymało kod i oczekuje na powiązanie; | ||
null - Brak połączenia lub błąd. | ||
activationCode | string | 8-cyfrowy kod aktywacyjny urządzenia. |
activation
Dział zatytułowany „activation”Zwraca informacje o bieżącym stanie aktywacji urządzenia.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
infrastructureName | string | Nazwa infrastruktury. |
infrastructureShortUrl | string | Krótki adres URL witryny infrastruktury. |
domain | string | Adres serwera używany do aktywacji. |
endpointId | string | Unikalny identyfikator urządzenia. |
endpointName | string | Nazwa urządzenia. |
propertyId | string | Identyfikator organizacji. |
propertyName | string | Nazwa organizacji. |
pin | string | 8-cyfrowy kod PIN urządzenia. |
hasBonusesEur | string | Kwota bonusu na koncie organizacji. |
activeTill | string / null | Data wygaśnięcia aktywacji (ISO 8601) lub null, jeśli wygasła. |
supportEmail | string | E-mail serwisu wsparcia. |
fwUpdate
Dział zatytułowany „fwUpdate”Stan procesu aktualizacji oprogramowania sprzętowego.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
updateState | string | Stan aktualizacji: |
SAVED_FILE_UNKNOWN - Nie znaleziono pliku aktualizacji; | ||
CARD_ABSENT - Karta SD nie jest zainstalowana; | ||
CARD_NOT_READY - Karta SD nie jest gotowa; | ||
CARD_FILES_CHECKING - Sprawdzanie plików aktualizacji na karcie SD; | ||
CARD_FILE_UPDATED_READY - Plik aktualizacji na karcie SD jest gotowy; | ||
FILE_VERSION_MATCHES_ACTIVE - Wersja pliku odpowiada bieżącej. | ||
downloadState | string | Stan pobierania: |
SERVER_FILE_UNKNOWN - Plik na serwerze nie został określony; | ||
DOWNLOADER_BUSY - Pobieranie zajęte; | ||
CARD_ABSENT - Karta SD nie jest zainstalowana; | ||
CARD_NOT_READY - Karta SD nie jest gotowa; | ||
CARD_FILES_CHECKING - Sprawdzanie plików na karcie SD; | ||
SERVER_FILE_UPDATED_READY - Plik na serwerze gotowy do pobrania; | ||
SERVER_FILE_DOWNLOADING - Pobieranie pliku; | ||
DOWNLOADED_FILE_CHECKING_INTEGRITY - Sprawdzanie integralności; | ||
DOWNLOADED_FILE_CHECKING_APPLICABILITY - Sprawdzanie zgodności; | ||
DOWNLOADED_FILE_SAVING - Zapisywanie pliku na karcie SD; | ||
SERVER_FILE_VERSION_MATCHES_SAVED - Wersja serwera odpowiada zapisanej. | ||
url | string / null | Adres URL pliku oprogramowania sprzętowego lub null. |
progress | string / null | Postęp pobierania w procentach (0.00 – 100.00) lub null. |
errorCode | string / null | Kod błędu, jeśli wystąpił, lub null. Typowe kody: |
ERROR_FR_DISK_ERR - Błąd dysku niskiego poziomu; | ||
ERROR_FR_INT_ERR - Wewnętrzny błąd systemu plików; | ||
ERROR_FR_NOT_READY - Nośnik nie jest gotowy; | ||
ERROR_FR_NO_FILE - Nie znaleziono pliku; | ||
ERROR_FR_DENIED - Odmowa dostępu; | ||
ERROR_FR_EXIST - Plik już istnieje; | ||
ERROR_FR_WRITE_PROTECTED - Chroniony przed zapisem; | ||
ERROR_FR_NOT_ENOUGH_CORE - Niewystarczająca pamięć; | ||
ERROR_HTTP_RESPONSE - Ogólny błąd HTTP; | ||
ERROR_CONNECT - Błąd połączenia TCP; | ||
ERROR_RESPONSE_TIMEOUT - Przekroczenie limitu czasu odpowiedzi serwera. | ||
availableVersion | integer / null | Wersja oprogramowania sprzętowego dostępna do pobrania lub null. |
savedVersion | integer / null | Wersja oprogramowania sprzętowego zapisana na karcie SD lub null. |
currentVersion | integer | Aktualnie zainstalowana wersja oprogramowania sprzętowego. |
mbTcpServer
Dział zatytułowany „mbTcpServer”Lista aktywnych połączeń serwera Modbus TCP.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
isActive | boolean | Wskazuje, czy serwer jest uruchomiony. |
listenPortEth | integer | Port dla klientów Ethernet. |
listenPortGsm | integer | Port dla klientów GSM. |
clients | array | Tablica obiektów klienta (interface, remoteIp, remotePort itp.). |
mbTcpClients
Dział zatytułowany „mbTcpClients”Stan klientów Modbus TCP.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
state | string | Bieżący stan (waiting, connected, connecting). |
waitingTimeSec | integer / null | Czas oczekiwania na połączenie w sekundach. |
interface | string / null | Interfejs połączenia. |
remoteIp | string | Adres IP klienta. |
remotePort | integer | Zdalny port klienta. |
connectionTimeSec | integer | Czas od nawiązania połączenia w sekundach. |
idleTimeSec | integer | Czas bezczynności połączenia w sekundach. |
Przykładowe żądanie:
GET /api/state/get/?inputs
Przykładowa odpowiedź:
{ "inputs": { // TODO: Nie zaimplementowano }}outputs
Dział zatytułowany „outputs”Przykładowe żądanie:
GET /api/state/get/?outputs
Przykładowa odpowiedź:
{ "outputs": { // TODO: Nie zaimplementowano }}statistics
Dział zatytułowany „statistics”Statystyki działania urządzenia.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
serialAvgPerSecReq | integer | Średnia liczba żądań RS-485 (żąd./s). |
serialAvgPerSecResp | integer | Średnia liczba odpowiedzi RS-485 (odp./s). |
serialAvgPerSecLoad | integer | Średnie obciążenie RS-485 (%/s). |
mbAvgPerSecReq | integer | Średnia liczba żądań Modbus (żąd./s). |
ethAvgPerSecKb | string | Średnia szybkość transmisji Ethernet (KB/s). |
gsmAvgPerSecKb | string | Średnia szybkość transmisji GSM (KB/s). |
mbTcpServerMaxClients | integer | Maksymalna liczba klientów na serwerze Modbus TCP. |
runTimeMin | integer | Czas pracy od ostatniego ponownego uruchomienia (min). |
totalRunTimeMin | integer | Całkowity czas pracy urządzenia (min). |
memTaskfiles
Dział zatytułowany „memTaskfiles”Informacje o plikach zadań i stanie programowalnej logiki.
Przykładowe żądanie:
GET /api/state/get/?memTaskfiles
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
filesFound | integer / null | Liczba plików zadań znalezionych na karcie SD lub null, jeśli nieustalona. |
loadedOn | string / null | Data i czas załadowania plików zadań (ISO 8601) lub null. |
heapUsedB | integer / null | Pamięć używana do wykonywania zadań w bajtach lub null. |
errorFile | string / null | Plik, w którym znaleziono pierwszy błąd, lub null, jeśli ich nie ma. |
errorLine | string / null | Numer linii pierwszego błędu lub null, jeśli ich nie ma. |
errorCode | string / null | Kod błędu kompilacji pliku zadań lub null, jeśli ich nie ma. |
tasks | array | Tablica obiektów załadowanych zadań. |
Kody błędów kompilacji:
| Kod | Opis |
|---|---|
ERROR_IO | Błąd wejścia/wyjścia podczas przetwarzania pliku zadań. |
ERROR_OUT_OF_MEMORY | Za mało pamięci do przetworzenia pliku zadań. |
ERROR_NO_PATH | Nie można otworzyć katalogu plików zadań. |
ERROR_NO_FILE | Nie można otworzyć pliku zadania. |
ERROR_LINE_UNRECOGNIZED | Oczekiwano jawnego typu linii, takiego jak DEF, PUT, IF lub DO. |
ERROR_ITEM_NAME | Nazwa jest zbyt długa lub nieprawidłowa. |
ERROR_UNKNOWN_TYPE | Za dużo elementów lub nie można określić typu linii. |
ERROR_EXPECTED_ASTERISK | Niezakończona sekwencja ucieczki w łańcuchu. |
ERROR_ITEM_REF | Nieprawidłowe odwołanie do elementu. |
ERROR_ILLEGAL_ARGUMENT | Wartość natychmiastowa jest poza dozwolonym zakresem. |
ERROR_EXPECTED_SEPARATOR | Oczekiwano większej liczby elementów lub znaleziono nieoczekiwaną nazwę elementu. |
ERROR_VALUE_BITSIZE_UNSUPPORTED | Ten rozmiar bitowy wartości nie jest obsługiwany. |
ERROR_EXPECTED_DOUBLE_QOUTES | Niezakończony literał łańcuchowy. |
ERROR_EXPECTED_EOL | Linia pliku zadań jest zbyt długa. |
ERROR_VERSION_UNSUPPORTED | Wersja pliku zadań nie jest obsługiwana. |
ERROR_CRC | Wykryto uszkodzenie danych zadania (niezgodność CRC). |
ERROR_UID_BROADCAST | Rozgłoszeniowy UID 0 nie może być używany do odczytu. |
ERROR_FILE_FORMAT_UNSUPPORTED | Nieobsługiwany format pliku. Spróbuj UTF-8 lub ASCII. |
ERROR_NAME_RESERVED | Użyto słowa zastrzeżonego jako nazwy elementu. |
ERROR_NAME_ALREADY_DEFINED | Zduplikowane nazwy elementów. |
ERROR_UNSATISFIED_FORWARD_DECLARATION | Odwołanie do brakującego elementu. |
ERROR_STRING_FUNCTION_ARGUMENT_TOO_SHORT | Argument funkcji łańcuchowej jest zbyt krótki. |
ERROR_VALUE_FORMAT | Nieprawidłowy format wartości natychmiastowej. |
ERROR_ILLEGAL_ARRAY_INDEX | Nieprawidłowy indeks tablicy. |
ERROR_ARRAY_INDIRECT_INDEX_NOT_ALLOWED_HERE | Pośredni indeks tablicy nie jest tu dozwolony. |
ERROR_ITEM_UNDECLARED | Element nie został zadeklarowany. |
ERROR_OUT_OF_PARAMETER_STORAGE_MEMORY | Za mało pamięci na przechowywanie parametrów. |
ERROR_ILLEGAL_ARRAY_SIZE | Nieprawidłowy rozmiar tablicy. |
ERROR_UNEXPECTED_VARIABLE_REF | Nieoczekiwane odwołanie do zmiennej. |
ERROR_UNEXPECTED_CONDITION_REF | Nieoczekiwane odwołanie do warunku. |
ERROR_INDEX_BITSIZE_UNSUPPORTED | Ten rozmiar bitowy indeksu nie jest obsługiwany. |
ERROR_EXPECTED_CLOSING_BRACKET | Oczekiwano zamykającego nawiasu. |
ERROR_UNKNOWN_STRING_FUNCTION | Nieznana funkcja łańcuchowa. |
ERROR_LOGGING_UNMAPPED_PARAMETER | Rejestrowanie niezmapowanego parametru. |
ERROR_MAPPED_PARAMETER_INTERSECT_PARTIALLY | Zmapowane parametry częściowo się nakładają. |
ERROR_MULTIPLE_WRITERS_FOR_MAPPED_PARAMETER | Wielu zapisujących dla tego samego mapowanego parametru. |
ERROR_OBSOLETE_FILE_LAYOUT | Przestarzały układ pliku zadań. |
Pola obiektu zadania:
| Pole | Typ | Opis |
|---|---|---|
sourceFile | string | Plik, z którego załadowano zadanie. |
periodMs | integer | Okres cyklu zadania w milisekundach. |
state | string | Bieżący stan zadania: idle lub running. |
lastRunOn | string / null | Czas ostatniego uruchomienia cyklu zadania (ISO 8601) lub null. |
lastErrorCode | string / null | Kod błędu wykonania zadania lub null, jeśli go nie ma. |
Kody błędów wykonania zadań:
| Kod | Opis |
|---|---|
EXC_MB_ILLEGAL_FUNCTION | Modbus: niedozwolona funkcja. |
EXC_MB_ILLEGAL_DATA_ADDRESS | Modbus: niedozwolony adres danych. |
EXC_MB_ILLEGAL_DATA_VALUE | Modbus: niedozwolona wartość danych. |
EXC_MB_SLAVE_DEVICE_FAILURE | Modbus: awaria urządzenia podrzędnego. |
EXC_MB_ACKNOWLEDGE | Modbus: żądanie potwierdzone. |
EXC_MB_SLAVE_BUSY | Modbus: urządzenie podrzędne zajęte. |
EXC_MB_MEMORY_PARITY_ERROR | Modbus: błąd parzystości pamięci. |
EXC_PARAM_PATH_UNAVAILABLE | Urządzenie niedostępne; żądanie nie zostało wysłane. |
EXC_PARAM_TARGET_FAILED | Urządzenie nie odpowiedziało. |
EXC_TYPE_UNKNOWN | Nieznany typ parametru. |
EXC_ACTION_UNKNOWN | Nieznany typ akcji. |
EXC_IO | Błąd zasobu zewnętrznego. |
EXC_OUT_OF_MEMORY | Za mało pamięci. |
EXC_STACK_OVERFLOW | Przepełnienie stosu (zbyt wiele CALL). |
EXC_STACK_UNDERFLOW | Niedopełnienie stosu (RETURN bez CALL). |
EXC_RESULT_INFINITY | Wynik to nieskończoność (dzielenie przez zero). |
EXC_RESULT_COMPLEX | Wynik jest zespolony (SQRT z liczby ujemnej). |
EXC_OUT_OF_BOUNDS | Indeks poza zakresem. |
EXC_UNKNOWN | Nieznany błąd. |
Przykładowa odpowiedź:
{ "memTaskfiles": { "filesFound": 2, "loadedOn": "2026-01-12T15:17:31Z", "heapUsedB": 814, "errorFile": "/TASKS/CLOCKS.TXT", "errorLine": 3, "errorCode": "ERROR_UNSATISFIED_FORWARD_DECLARATION", "tasks": [ { "sourceFile": "/TASKS/INIT.TXT", "periodMs": 60000, "state": "idle", "lastRunOn": "2026-01-12T15:18:31Z", "lastErrorCode": null } ] }}memCard
Dział zatytułowany „memCard”Informacje o stanie karty SD.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
capacityKb | integer / null | Całkowita pojemność karty SD w KB lub null. |
freeKb | integer / null | Wolne miejsce na karcie SD w KB lub null. |
isMounted | boolean | Stan montowania (true — zamontowana). |
isInserted | boolean | Stan włożenia (true — włożona). |
settings
Dział zatytułowany „settings”Informacje o stanie ustawień.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
modifyOn | string / null | Czas ostatniej modyfikacji ustawień (ISO 8601) lub null. |
isUserModified | boolean | Wskazuje, czy ustawienia są zmodyfikowane, ale nie zastosowane. |
isDefault | boolean | Wskazuje, czy bieżące ustawienia są domyślne. |
Informacje o bieżącym czasie urządzenia.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
timeLocal | integer | Bieżący czas lokalny (ISO 8601). |
timeUtc | integer | Bieżący czas UTC (ISO 8601). |
isDst | boolean | Flaga czasu letniego. |
sunriseLocalSec | integer / null | Czas wschodu słońca w sekundach od początku dnia lub null. |
sunsetLocalSec | integer / null | Czas zachodu słońca w sekundach od początku dnia lub null. |
polarDay | boolean | Wskazuje dzień polarny. |
polarNight | boolean | Wskazuje noc polarną. |
Dodatkowe dane diagnostyczne.
Pola odpowiedzi:
| Pole | Typ | Opis |
|---|---|---|
voltage | string / null | Bieżące napięcie zasilania lub null. |
temperature | string / null | Bieżąca temperatura w stopniach Celsjusza lub null. |