Przejdź do głównej zawartości

Informacje o systemie

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ź:

PoleTypOpis
manufacturerstringProducent urządzenia.
devicestringNazwa modelu urządzenia.
deviceIdintegerIdentyfikator urządzenia.
firmwareTypeintegerTyp oprogramowania sprzętowego (np. podstawowe, rozszerzone itp.).
firmwareVerintegerWersja oprogramowania sprzętowego.
releaseDatestringData i godzina wydania w formacie ISO 8601.
macstringAdres MAC interfejsu Ethernet.
uniqueMacbooleanFlaga wskazująca, czy adres MAC urządzenia jest unikalny.
pubKeystringKlucz 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="
}

GET /api/version/

Poziom dostępu: 🟩 0

Odpowiedź:

PoleTypOpis
devicestringModel urządzenia producenta.
deviceIdintegerIdentyfikator urządzenia producenta.
firmwareTypeintegerModyfikacja oprogramowania sprzętowego.
firmwareVerintegerWersja oprogramowania sprzętowego.
releaseDatestringData 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"
}

Pobiera bieżący stan urządzenia według klucza (lub wszystkie stany).

GET /api/state/get/?key&...

Poziom dostępu: 🟨 1

Dostępne klucze:

Zwraca informacje o bieżącym stanie połączenia Ethernet.

Pola odpowiedzi:

PoleTypOpis
ipstring / nullBieżący adres IP przypisany do urządzenia lub null, jeśli nie przypisano.
macstringAdres MAC interfejsu Ethernet.
linkUpbooleanWskazuje, czy istnieje aktywne łącze.

Zwraca informacje o bieżącym stanie modułu GSM.

Pola odpowiedzi:

PoleTypOpis
signalLevelinteger / nullPoziom sygnału GSM w %, lub null, jeśli GSM nie jest podłączony.
ipstring / nullAdres IP przypisany do interfejsu GSM lub null, jeśli nie przypisano.
imeistring / nullIMEI modemu lub null, jeśli niezdefiniowany.
simStateintegerStan karty SIM: 0 — nie włożona, 1 — włożona i aktywna.
pinStateintegerStan 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.).
ccidstring / nullCCID karty SIM lub null, jeśli niezdefiniowany.
providerstring / nullNazwa operatora karty SIM lub null, jeśli niezdefiniowany.
radioBandstring / nullStandard GSM: 2g, 3g, 4g lub null, jeśli niezdefiniowany.
isTcpIpBusybooleanWskazuje, czy stos TCP/IP interfejsu GSM jest zajęty.
isGsmRegisteredbooleanWskazuje rejestrację w sieci operatora.
isGsmRoamingbooleanWskazuje stan roamingu.
isGprsStartedbooleanWskazuje aktywne połączenie GPRS.
traficTotalintegerCałkowity transfer danych przez interfejs GSM (w bajtach).

Zwraca informacje o bieżącym stanie połączenia VPN (WireGuard).

Pola odpowiedzi:

PoleTypOpis
linkStatestringStan 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.
configServerReachedboolean / nullDostępność serwera konfiguracyjnego.
lastPeerUpstring / nullCzas ostatniego połączenia z peer (ISO 8601) lub null.
netifIpstring / nullAdres IP interfejsu VPN lub null.
netifMaskstring / nullMaska podsieci interfejsu VPN lub null.
peerIpstring / nullAdres IP zdalnego peer lub null.
peerPortintegerPort zdalnego peer.
interfacestring / nullInterfejs połączenia: eth, gsm lub null.
configStatestringStan 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.
ownPubKeystringWłasny klucz publiczny urządzenia.

Stan połączenia Modbus TCP z chmurą.

Pola odpowiedzi:

PoleTypOpis
statestringBieżący stan połączenia (disabled, waiting, connecting, connected).
waitingTimeSecinteger / nullCzas oczekiwania na połączenie w sekundach.
interfacestring / nullInterfejs połączenia: eth, gsm, wg lub null.
remoteIpstring / nullAdres IP serwera lub null.
remotePortintegerZdalny port serwera.
connectionTimeSecintegerCzas od nawiązania połączenia w sekundach.
idleTimeSecintegerCzas bezczynności połączenia w sekundach.
activationWithCodestring / nullStan 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.
activationCodestring8-cyfrowy kod aktywacyjny urządzenia.

Zwraca informacje o bieżącym stanie aktywacji urządzenia.

Pola odpowiedzi:

PoleTypOpis
infrastructureNamestringNazwa infrastruktury.
infrastructureShortUrlstringKrótki adres URL witryny infrastruktury.
domainstringAdres serwera używany do aktywacji.
endpointIdstringUnikalny identyfikator urządzenia.
endpointNamestringNazwa urządzenia.
propertyIdstringIdentyfikator organizacji.
propertyNamestringNazwa organizacji.
pinstring8-cyfrowy kod PIN urządzenia.
hasBonusesEurstringKwota bonusu na koncie organizacji.
activeTillstring / nullData wygaśnięcia aktywacji (ISO 8601) lub null, jeśli wygasła.
supportEmailstringE-mail serwisu wsparcia.

Stan procesu aktualizacji oprogramowania sprzętowego.

Pola odpowiedzi:

PoleTypOpis
updateStatestringStan 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.
downloadStatestringStan 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.
urlstring / nullAdres URL pliku oprogramowania sprzętowego lub null.
progressstring / nullPostęp pobierania w procentach (0.00100.00) lub null.
errorCodestring / nullKod 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.
availableVersioninteger / nullWersja oprogramowania sprzętowego dostępna do pobrania lub null.
savedVersioninteger / nullWersja oprogramowania sprzętowego zapisana na karcie SD lub null.
currentVersionintegerAktualnie zainstalowana wersja oprogramowania sprzętowego.

Lista aktywnych połączeń serwera Modbus TCP.

Pola odpowiedzi:

PoleTypOpis
isActivebooleanWskazuje, czy serwer jest uruchomiony.
listenPortEthintegerPort dla klientów Ethernet.
listenPortGsmintegerPort dla klientów GSM.
clientsarrayTablica obiektów klienta (interface, remoteIp, remotePort itp.).

Stan klientów Modbus TCP.

Pola odpowiedzi:

PoleTypOpis
statestringBieżący stan (waiting, connected, connecting).
waitingTimeSecinteger / nullCzas oczekiwania na połączenie w sekundach.
interfacestring / nullInterfejs połączenia.
remoteIpstringAdres IP klienta.
remotePortintegerZdalny port klienta.
connectionTimeSecintegerCzas od nawiązania połączenia w sekundach.
idleTimeSecintegerCzas bezczynności połączenia w sekundach.

Przykładowe żądanie:

GET /api/state/get/?inputs

Przykładowa odpowiedź:

{
"inputs": {
// TODO: Nie zaimplementowano
}
}

Przykładowe żądanie:

GET /api/state/get/?outputs

Przykładowa odpowiedź:

{
"outputs": {
// TODO: Nie zaimplementowano
}
}

Statystyki działania urządzenia.

Pola odpowiedzi:

PoleTypOpis
serialAvgPerSecReqintegerŚrednia liczba żądań RS-485 (żąd./s).
serialAvgPerSecRespintegerŚrednia liczba odpowiedzi RS-485 (odp./s).
serialAvgPerSecLoadintegerŚrednie obciążenie RS-485 (%/s).
mbAvgPerSecReqintegerŚrednia liczba żądań Modbus (żąd./s).
ethAvgPerSecKbstringŚrednia szybkość transmisji Ethernet (KB/s).
gsmAvgPerSecKbstringŚrednia szybkość transmisji GSM (KB/s).
mbTcpServerMaxClientsintegerMaksymalna liczba klientów na serwerze Modbus TCP.
runTimeMinintegerCzas pracy od ostatniego ponownego uruchomienia (min).
totalRunTimeMinintegerCałkowity czas pracy urządzenia (min).

Informacje o plikach zadań i stanie programowalnej logiki.

Przykładowe żądanie:

GET /api/state/get/?memTaskfiles

Pola odpowiedzi:

PoleTypOpis
filesFoundinteger / nullLiczba plików zadań znalezionych na karcie SD lub null, jeśli nieustalona.
loadedOnstring / nullData i czas załadowania plików zadań (ISO 8601) lub null.
heapUsedBinteger / nullPamięć używana do wykonywania zadań w bajtach lub null.
errorFilestring / nullPlik, w którym znaleziono pierwszy błąd, lub null, jeśli ich nie ma.
errorLinestring / nullNumer linii pierwszego błędu lub null, jeśli ich nie ma.
errorCodestring / nullKod błędu kompilacji pliku zadań lub null, jeśli ich nie ma.
tasksarrayTablica obiektów załadowanych zadań.

Kody błędów kompilacji:

KodOpis
ERROR_IOBłąd wejścia/wyjścia podczas przetwarzania pliku zadań.
ERROR_OUT_OF_MEMORYZa mało pamięci do przetworzenia pliku zadań.
ERROR_NO_PATHNie można otworzyć katalogu plików zadań.
ERROR_NO_FILENie można otworzyć pliku zadania.
ERROR_LINE_UNRECOGNIZEDOczekiwano jawnego typu linii, takiego jak DEF, PUT, IF lub DO.
ERROR_ITEM_NAMENazwa jest zbyt długa lub nieprawidłowa.
ERROR_UNKNOWN_TYPEZa dużo elementów lub nie można określić typu linii.
ERROR_EXPECTED_ASTERISKNiezakończona sekwencja ucieczki w łańcuchu.
ERROR_ITEM_REFNieprawidłowe odwołanie do elementu.
ERROR_ILLEGAL_ARGUMENTWartość natychmiastowa jest poza dozwolonym zakresem.
ERROR_EXPECTED_SEPARATOROczekiwano większej liczby elementów lub znaleziono nieoczekiwaną nazwę elementu.
ERROR_VALUE_BITSIZE_UNSUPPORTEDTen rozmiar bitowy wartości nie jest obsługiwany.
ERROR_EXPECTED_DOUBLE_QOUTESNiezakończony literał łańcuchowy.
ERROR_EXPECTED_EOLLinia pliku zadań jest zbyt długa.
ERROR_VERSION_UNSUPPORTEDWersja pliku zadań nie jest obsługiwana.
ERROR_CRCWykryto uszkodzenie danych zadania (niezgodność CRC).
ERROR_UID_BROADCASTRozgłoszeniowy UID 0 nie może być używany do odczytu.
ERROR_FILE_FORMAT_UNSUPPORTEDNieobsługiwany format pliku. Spróbuj UTF-8 lub ASCII.
ERROR_NAME_RESERVEDUżyto słowa zastrzeżonego jako nazwy elementu.
ERROR_NAME_ALREADY_DEFINEDZduplikowane nazwy elementów.
ERROR_UNSATISFIED_FORWARD_DECLARATIONOdwołanie do brakującego elementu.
ERROR_STRING_FUNCTION_ARGUMENT_TOO_SHORTArgument funkcji łańcuchowej jest zbyt krótki.
ERROR_VALUE_FORMATNieprawidłowy format wartości natychmiastowej.
ERROR_ILLEGAL_ARRAY_INDEXNieprawidłowy indeks tablicy.
ERROR_ARRAY_INDIRECT_INDEX_NOT_ALLOWED_HEREPośredni indeks tablicy nie jest tu dozwolony.
ERROR_ITEM_UNDECLAREDElement nie został zadeklarowany.
ERROR_OUT_OF_PARAMETER_STORAGE_MEMORYZa mało pamięci na przechowywanie parametrów.
ERROR_ILLEGAL_ARRAY_SIZENieprawidłowy rozmiar tablicy.
ERROR_UNEXPECTED_VARIABLE_REFNieoczekiwane odwołanie do zmiennej.
ERROR_UNEXPECTED_CONDITION_REFNieoczekiwane odwołanie do warunku.
ERROR_INDEX_BITSIZE_UNSUPPORTEDTen rozmiar bitowy indeksu nie jest obsługiwany.
ERROR_EXPECTED_CLOSING_BRACKETOczekiwano zamykającego nawiasu.
ERROR_UNKNOWN_STRING_FUNCTIONNieznana funkcja łańcuchowa.
ERROR_LOGGING_UNMAPPED_PARAMETERRejestrowanie niezmapowanego parametru.
ERROR_MAPPED_PARAMETER_INTERSECT_PARTIALLYZmapowane parametry częściowo się nakładają.
ERROR_MULTIPLE_WRITERS_FOR_MAPPED_PARAMETERWielu zapisujących dla tego samego mapowanego parametru.
ERROR_OBSOLETE_FILE_LAYOUTPrzestarzały układ pliku zadań.

Pola obiektu zadania:

PoleTypOpis
sourceFilestringPlik, z którego załadowano zadanie.
periodMsintegerOkres cyklu zadania w milisekundach.
statestringBieżący stan zadania: idle lub running.
lastRunOnstring / nullCzas ostatniego uruchomienia cyklu zadania (ISO 8601) lub null.
lastErrorCodestring / nullKod błędu wykonania zadania lub null, jeśli go nie ma.

Kody błędów wykonania zadań:

KodOpis
EXC_MB_ILLEGAL_FUNCTIONModbus: niedozwolona funkcja.
EXC_MB_ILLEGAL_DATA_ADDRESSModbus: niedozwolony adres danych.
EXC_MB_ILLEGAL_DATA_VALUEModbus: niedozwolona wartość danych.
EXC_MB_SLAVE_DEVICE_FAILUREModbus: awaria urządzenia podrzędnego.
EXC_MB_ACKNOWLEDGEModbus: żądanie potwierdzone.
EXC_MB_SLAVE_BUSYModbus: urządzenie podrzędne zajęte.
EXC_MB_MEMORY_PARITY_ERRORModbus: błąd parzystości pamięci.
EXC_PARAM_PATH_UNAVAILABLEUrządzenie niedostępne; żądanie nie zostało wysłane.
EXC_PARAM_TARGET_FAILEDUrządzenie nie odpowiedziało.
EXC_TYPE_UNKNOWNNieznany typ parametru.
EXC_ACTION_UNKNOWNNieznany typ akcji.
EXC_IOBłąd zasobu zewnętrznego.
EXC_OUT_OF_MEMORYZa mało pamięci.
EXC_STACK_OVERFLOWPrzepełnienie stosu (zbyt wiele CALL).
EXC_STACK_UNDERFLOWNiedopełnienie stosu (RETURN bez CALL).
EXC_RESULT_INFINITYWynik to nieskończoność (dzielenie przez zero).
EXC_RESULT_COMPLEXWynik jest zespolony (SQRT z liczby ujemnej).
EXC_OUT_OF_BOUNDSIndeks poza zakresem.
EXC_UNKNOWNNieznany 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
}
]
}
}

Informacje o stanie karty SD.

Pola odpowiedzi:

PoleTypOpis
capacityKbinteger / nullCałkowita pojemność karty SD w KB lub null.
freeKbinteger / nullWolne miejsce na karcie SD w KB lub null.
isMountedbooleanStan montowania (true — zamontowana).
isInsertedbooleanStan włożenia (true — włożona).

Informacje o stanie ustawień.

Pola odpowiedzi:

PoleTypOpis
modifyOnstring / nullCzas ostatniej modyfikacji ustawień (ISO 8601) lub null.
isUserModifiedbooleanWskazuje, czy ustawienia są zmodyfikowane, ale nie zastosowane.
isDefaultbooleanWskazuje, czy bieżące ustawienia są domyślne.

Informacje o bieżącym czasie urządzenia.

Pola odpowiedzi:

PoleTypOpis
timeLocalintegerBieżący czas lokalny (ISO 8601).
timeUtcintegerBieżący czas UTC (ISO 8601).
isDstbooleanFlaga czasu letniego.
sunriseLocalSecinteger / nullCzas wschodu słońca w sekundach od początku dnia lub null.
sunsetLocalSecinteger / nullCzas zachodu słońca w sekundach od początku dnia lub null.
polarDaybooleanWskazuje dzień polarny.
polarNightbooleanWskazuje noc polarną.

Dodatkowe dane diagnostyczne.

Pola odpowiedzi:

PoleTypOpis
voltagestring / nullBieżące napięcie zasilania lub null.
temperaturestring / nullBieżąca temperatura w stopniach Celsjusza lub null.