Системна інформація
Ідентифікація фізичного пристрою
Section titled “Ідентифікація фізичного пристрою”Повертає унікальну інформацію про поточний пристрій, включно з моделлю, версією прошивки, MAC-адресою та відкритим ключем.
GET /api/identify/
Рівень доступу: 🟨 1
Відповідь:
| Поле | Тип | Опис |
|---|---|---|
manufacturer | string | Виробник пристрою. |
device | string | Назва моделі пристрою. |
deviceId | integer | Ідентифікатор пристрою. |
firmwareType | integer | Тип прошивки (напр., базова, розширена тощо). |
firmwareVer | integer | Версія прошивки. |
releaseDate | string | Дата та час випуску у форматі ISO 8601. |
mac | string | MAC-адреса інтерфейсу Ethernet. |
uniqueMac | boolean | Прапор, що вказує, чи MAC-адреса пристрою унікальна. |
pubKey | string | Відкритий ключ пристрою для криптографічної аутентифікації. |
Приклад відповіді:
{ "manufacturer": "Novatek-Electro Ltd.", "device": "MC252", "deviceId": 46, "firmwareType": 1, "firmwareVer": 46, "releaseDate": "2025-05-26T00:00:00", "mac": "d8:80:39:69:0e:6d", "uniqueMac": true, "pubKey": "WB2dxH7Jk+tmW2TDwOmWxtBKjkKf4siJi42bDyCLLXQ="}Версія прошивки
Section titled “Версія прошивки”GET /api/version/
Рівень доступу: 🟩 0
Відповідь:
| Поле | Тип | Опис |
|---|---|---|
device | string | Модель пристрою виробника. |
deviceId | integer | Ідентифікатор пристрою виробника. |
firmwareType | integer | Модифікація прошивки. |
firmwareVer | integer | Версія прошивки. |
releaseDate | string | Дата та час випуску у форматі ISO 8601. |
Приклад відповіді:
{ "device": "MC252", "deviceId": 46, "firmwareType": 1, "firmwareVer": 46, "releaseDate": "2025-05-14T00:00:00"}Отримати стан пристрою
Section titled “Отримати стан пристрою”Отримує поточний стан пристрою за ключем (або всі стани).
GET /api/state/get/?key&...
Рівень доступу: 🟨 1
Доступні ключі:
ethernet: Стан інтерфейсу Ethernetgsm: Стан інтерфейсу GSMvpn: Стан інтерфейсу VPNmbTcpCallback: Стан хмарного з’єднання Modbus TCPactivation: Стан активації пристроюfwUpdate: Стан оновленняmbTcpServer: Стан TCP-сервераmbTcpClients: Стан TCP-клієнтаinputs: Стан входівoutputs: Стан виходівstatistics: Загальна статистикаmemTaskfiles: Стан файлів завданьmemCard: Стан SD-картиsettings: Стан налаштуваньtime: Час пристроюmisc: Різне
ethernet
Section titled “ethernet”Повертає інформацію про поточний стан з’єднання Ethernet.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
ip | string / null | Поточна IP-адреса, призначена пристрою, або null, якщо не призначена. |
mac | string | MAC-адреса інтерфейсу Ethernet. |
linkUp | boolean | Вказує, чи є активне з’єднання. |
Повертає інформацію про поточний стан модуля GSM.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
signalLevel | integer / null | Рівень сигналу GSM у %, або null, якщо GSM не підключено. |
ip | string / null | IP-адреса, призначена інтерфейсу GSM, або null, якщо не призначена. |
imei | string / null | IMEI модема, або null, якщо не визначено. |
simState | integer | Стан SIM-карти: 0 — не вставлена, 1 — вставлена та активна. |
pinState | integer | Стан PIN-коду: |
0 - Невідомий стан; | ||
1 - PIN не потрібен; | ||
2 - PIN потрібен, кількість спроб невідома; | ||
3 - PIN потрібен, 0 спроб залишилося; | ||
4 - PIN потрібен, 1 спроба залишилася; | ||
5 - PIN потрібен, 2 спроби залишилося; | ||
6 - PIN потрібен, 3 спроби залишилося; | ||
7 - PIN потрібен, >3 спроб залишилося; | ||
8 - Потрібна інша аутентифікація (PUK тощо). | ||
ccid | string / null | CCID SIM-карти, або null, якщо не визначено. |
provider | string / null | Назва оператора SIM-карти, або null, якщо не визначено. |
radioBand | string / null | Стандарт GSM: 2g, 3g, 4g, або null, якщо не визначено. |
isTcpIpBusy | boolean | Вказує, чи стек TCP/IP інтерфейсу GSM зайнятий. |
isGsmRegistered | boolean | Вказує реєстрацію в мережі оператора. |
isGsmRoaming | boolean | Вказує статус роумінгу. |
isGprsStarted | boolean | Вказує активне з’єднання GPRS. |
traficTotal | integer | Загальна кількість переданих даних через інтерфейс GSM (у байтах). |
Повертає інформацію про поточний стан з’єднання VPN (WireGuard).
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
linkState | string | Стан з’єднання: |
disabled - VPN вимкнено в налаштуваннях; | ||
netifCreated - Мережевий інтерфейс створено; | ||
peerConfigured - З’єднання з піром налаштовано; | ||
peerConnected - З’єднання з піром встановлено; | ||
peerUp - VPN-тунель активний і працює. | ||
configServerReached | boolean / null | Доступність сервера конфігурації. |
lastPeerUp | string / null | Час останнього з’єднання з піром (ISO 8601), або null. |
netifIp | string / null | IP-адреса інтерфейсу VPN, або null. |
netifMask | string / null | Маска підмережі інтерфейсу VPN, або null. |
peerIp | string / null | IP-адреса віддаленого піра, або null. |
peerPort | integer | Порт віддаленого піра. |
interface | string / null | Інтерфейс з’єднання: eth, gsm, або null. |
configState | string | Стан конфігурації: |
errorKey - Помилка: недійсний ключ; | ||
errorMem - Помилка: недостатньо пам’яті; | ||
disabled - VPN вимкнено в налаштуваннях; | ||
pause - Затримка між спробами конфігурації; | ||
serverHostnameResolving - Розв’язання імені хоста сервера конфігурації; | ||
serverConnecting - Підключення до сервера конфігурації; | ||
serverConnected - Підключено, отримання конфігурації піра; | ||
peerHostnameResolving - Розв’язання імені хоста піра; | ||
ready - Конфігурація отримана і готова. | ||
ownPubKey | string | Власний відкритий ключ пристрою. |
mbTcpCallback
Section titled “mbTcpCallback”Стан хмарного з’єднання Modbus TCP.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
state | string | Поточний стан з’єднання (disabled, waiting, connecting, connected). |
waitingTimeSec | integer / null | Час очікування з’єднання, у секундах. |
interface | string / null | Інтерфейс з’єднання: eth, gsm, wg, або null. |
remoteIp | string / null | IP-адреса сервера, або null. |
remotePort | integer | Віддалений порт сервера. |
connectionTimeSec | integer | Час з моменту встановлення з’єднання, у секундах. |
idleTimeSec | integer | Час простою з’єднання, у секундах. |
activationWithCode | string / null | Стан активації: |
unused - Пристрій не отримав код активації; | ||
activated - Пристрій активовано та прив’язано до мережі; | ||
set - Пристрій отримав код і очікує прив’язки; | ||
null - Немає з’єднання або помилка. | ||
activationCode | string | 8-значний код активації пристрою. |
activation
Section titled “activation”Повертає інформацію про поточний стан активації пристрою.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
infrastructureName | string | Назва інфраструктури. |
infrastructureShortUrl | string | Коротка URL-адреса сайту інфраструктури. |
domain | string | Адреса сервера, що використовується для активації. |
endpointId | string | Унікальний ідентифікатор пристрою. |
endpointName | string | Назва пристрою. |
propertyId | string | Ідентифікатор організації. |
propertyName | string | Назва організації. |
pin | string | 8-значний PIN-код пристрою. |
hasBonusesEur | string | Сума бонусів на рахунку організації. |
activeTill | string / null | Дата закінчення активації (ISO 8601), або null, якщо закінчилася. |
supportEmail | string | Email служби підтримки. |
fwUpdate
Section titled “fwUpdate”Стан процесу оновлення прошивки.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
updateState | string | Стан оновлення: |
SAVED_FILE_UNKNOWN - Файл оновлення не знайдено; | ||
CARD_ABSENT - SD-карта не встановлена; | ||
CARD_NOT_READY - SD-карта не готова; | ||
CARD_FILES_CHECKING - Перевірка файлів оновлення на SD-карті; | ||
CARD_FILE_UPDATED_READY - Файл оновлення на SD-карті готовий; | ||
FILE_VERSION_MATCHES_ACTIVE - Версія файлу збігається з поточною. | ||
downloadState | string | Стан завантаження: |
SERVER_FILE_UNKNOWN - Файл на сервері не визначено; | ||
DOWNLOADER_BUSY - Завантажувач зайнятий; | ||
CARD_ABSENT - SD-карта не встановлена; | ||
CARD_NOT_READY - SD-карта не готова; | ||
CARD_FILES_CHECKING - Перевірка файлів на SD-карті; | ||
SERVER_FILE_UPDATED_READY - Файл на сервері готовий до завантаження; | ||
SERVER_FILE_DOWNLOADING - Завантаження файлу; | ||
DOWNLOADED_FILE_CHECKING_INTEGRITY - Перевірка цілісності; | ||
DOWNLOADED_FILE_CHECKING_APPLICABILITY - Перевірка сумісності; | ||
DOWNLOADED_FILE_SAVING - Збереження файлу на SD-карту; | ||
SERVER_FILE_VERSION_MATCHES_SAVED - Версія сервера збігається зі збереженою. | ||
url | string / null | URL-адреса файлу прошивки або null. |
progress | string / null | Відсоток прогресу завантаження (0.00 – 100.00) або null. |
errorCode | string / null | Код помилки, якщо є, або null. Поширені коди: |
ERROR_FR_DISK_ERR - Помилка диска низького рівня; | ||
ERROR_FR_INT_ERR - Внутрішня помилка файлової системи; | ||
ERROR_FR_NOT_READY - Носій не готовий; | ||
ERROR_FR_NO_FILE - Файл не знайдено; | ||
ERROR_FR_DENIED - Доступ заборонено; | ||
ERROR_FR_EXIST - Файл вже існує; | ||
ERROR_FR_WRITE_PROTECTED - Захищено від запису; | ||
ERROR_FR_NOT_ENOUGH_CORE - Недостатньо пам’яті; | ||
ERROR_HTTP_RESPONSE - Загальна помилка HTTP; | ||
ERROR_CONNECT - Помилка TCP-з’єднання; | ||
ERROR_RESPONSE_TIMEOUT - Час очікування сервера вичерпано. | ||
availableVersion | integer / null | Версія прошивки, доступна для завантаження, або null. |
savedVersion | integer / null | Версія прошивки, збережена на SD-карті, або null. |
currentVersion | integer | Поточна встановлена версія прошивки. |
mbTcpServer
Section titled “mbTcpServer”Список активних з’єднань сервера Modbus TCP.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
isActive | boolean | Вказує, чи працює сервер. |
listenPortEth | integer | Порт для клієнтів Ethernet. |
listenPortGsm | integer | Порт для клієнтів GSM. |
clients | array | Масив об’єктів клієнтів (interface, remoteIp, remotePort тощо). |
mbTcpClients
Section titled “mbTcpClients”Стан клієнтів Modbus TCP.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
state | string | Поточний стан (waiting, connected, connecting). |
waitingTimeSec | integer / null | Час очікування з’єднання, у секундах. |
interface | string / null | Інтерфейс з’єднання. |
remoteIp | string | IP-адреса клієнта. |
remotePort | integer | Віддалений порт клієнта. |
connectionTimeSec | integer | Час з моменту встановлення з’єднання, у секундах. |
idleTimeSec | integer | Час простою з’єднання, у секундах. |
inputs
Section titled “inputs”Приклад запиту:
GET /api/state/get/?inputs
Приклад відповіді:
{ "inputs": { // TODO: Не реалізовано }}outputs
Section titled “outputs”Приклад запиту:
GET /api/state/get/?outputs
Приклад відповіді:
{ "outputs": { // TODO: Не реалізовано }}statistics
Section titled “statistics”Статистика роботи пристрою.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
serialAvgPerSecReq | integer | Середня частота запитів RS-485 (запитів/сек). |
serialAvgPerSecResp | integer | Середня частота відповідей RS-485 (відповідей/сек). |
serialAvgPerSecLoad | integer | Середнє навантаження RS-485 (%/сек). |
mbAvgPerSecReq | integer | Середня частота запитів Modbus (запитів/сек). |
ethAvgPerSecKb | string | Середня швидкість передачі даних Ethernet (КБ/сек). |
gsmAvgPerSecKb | string | Середня швидкість передачі даних GSM (КБ/сек). |
mbTcpServerMaxClients | integer | Максимальна кількість клієнтів на сервері Modbus TCP. |
runTimeMin | integer | Час роботи з останнього перезавантаження (хвилини). |
totalRunTimeMin | integer | Загальний час роботи пристрою (хвилини). |
memTaskfiles
Section titled “memTaskfiles”Інформація про файли завдань та стан програмованої логіки.
Приклад запиту:
GET /api/state/get/?memTaskfiles
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
filesFound | integer / null | Кількість файлів завдань, знайдених на SD-карті, або null, якщо невідомо. |
loadedOn | string / null | Дата і час завантаження файлів завдань (ISO 8601), або null. |
heapUsedB | integer / null | Обсяг пам’яті для виконання завдань у байтах, або null. |
errorFile | string / null | Файл, у якому знайдено першу помилку, або null, якщо помилок немає. |
errorLine | integer / null | Номер рядка першої помилки, або null, якщо помилок немає. |
errorCode | string / null | Код помилки компіляції файлу завдання, або null, якщо помилок немає. |
tasks | array | Масив об’єктів завдань, які були завантажені. |
Коди помилок компіляції:
| Код | Опис |
|---|---|
ERROR_IO | Помилка I/O під час обробки файлу завдання. |
ERROR_OUT_OF_MEMORY | Недостатньо пам’яті для обробки файлу завдання. |
ERROR_NO_PATH | Неможливо відкрити каталог файлів завдань. |
ERROR_NO_FILE | Неможливо відкрити файл завдання. |
ERROR_LINE_UNRECOGNIZED | Очікувався явний тип рядка, такий як DEF, PUT, IF або DO. |
ERROR_ITEM_NAME | Ім’я надто довге або недійсне. |
ERROR_UNKNOWN_TYPE | Забагато елементів або неможливо визначити тип рядка. |
ERROR_EXPECTED_ASTERISK | Незавершена послідовність екранування рядка. |
ERROR_ITEM_REF | Недійсне посилання на елемент. |
ERROR_ILLEGAL_ARGUMENT | Безпосереднє значення поза дозволеним діапазоном. |
ERROR_EXPECTED_SEPARATOR | Очікувалися додаткові елементи або знайдено неочікуване ім’я елемента. |
ERROR_VALUE_BITSIZE_UNSUPPORTED | Цей розмір значення не підтримується. |
ERROR_EXPECTED_DOUBLE_QOUTES | Незавершений рядковий літерал. |
ERROR_EXPECTED_EOL | Рядок файлу завдання надто довгий. |
ERROR_VERSION_UNSUPPORTED | Версія файлу завдання не підтримується. |
ERROR_CRC | Виявлено пошкодження даних завдання (невідповідність CRC). |
ERROR_UID_BROADCAST | Широкомовний UID 0 не можна використовувати для читання. |
ERROR_FILE_FORMAT_UNSUPPORTED | Непідтримуваний формат файлу. Спробуйте UTF-8 або ASCII. |
ERROR_NAME_RESERVED | Зарезервоване слово використано як ім’я елемента. |
ERROR_NAME_ALREADY_DEFINED | Повторне визначення імен елементів. |
ERROR_UNSATISFIED_FORWARD_DECLARATION | Посилання на відсутній елемент. |
ERROR_STRING_FUNCTION_ARGUMENT_TOO_SHORT | Аргумент рядкової функції надто короткий. |
ERROR_VALUE_FORMAT | Неприпустимий формат безпосереднього значення. |
ERROR_ILLEGAL_ARRAY_INDEX | Неприпустимий індекс масиву. |
ERROR_ARRAY_INDIRECT_INDEX_NOT_ALLOWED_HERE | Непрямий індекс масиву тут не дозволений. |
ERROR_ITEM_UNDECLARED | Елемент не оголошено. |
ERROR_OUT_OF_PARAMETER_STORAGE_MEMORY | Недостатньо пам’яті для зберігання параметра. |
ERROR_ILLEGAL_ARRAY_SIZE | Неприпустимий розмір масиву. |
ERROR_UNEXPECTED_VARIABLE_REF | Неочікуване посилання на змінну. |
ERROR_UNEXPECTED_CONDITION_REF | Неочікуване посилання на умову. |
ERROR_INDEX_BITSIZE_UNSUPPORTED | Цей розмір індексу не підтримується. |
ERROR_EXPECTED_CLOSING_BRACKET | Очікувалася закривальна дужка. |
ERROR_UNKNOWN_STRING_FUNCTION | Невідома рядкова функція. |
ERROR_LOGGING_UNMAPPED_PARAMETER | Спроба журналювати невідображений параметр. |
ERROR_MAPPED_PARAMETER_INTERSECT_PARTIALLY | Відображені параметри частково перетинаються. |
ERROR_MULTIPLE_WRITERS_FOR_MAPPED_PARAMETER | Кілька записувачів для одного й того самого відображеного параметра. |
ERROR_OBSOLETE_FILE_LAYOUT | Застаріле компонування файлу завдання. |
Поля об’єкта завдання:
| Поле | Тип | Опис |
|---|---|---|
sourceFile | string | Файл, з якого було завантажено завдання. |
periodMs | integer | Період циклу завдання в мілісекундах. |
state | string | Поточний стан завдання: idle або running. |
lastRunOn | string / null | Час останнього запуску циклу завдання (ISO 8601), або null. |
lastErrorCode | string / null | Код помилки останнього виконання завдання, або null. |
Коди помилок виконання завдання:
| Код | Опис |
|---|---|
EXC_MB_ILLEGAL_FUNCTION | Modbus: неприпустима функція. |
EXC_MB_ILLEGAL_DATA_ADDRESS | Modbus: неприпустима адреса даних. |
EXC_MB_ILLEGAL_DATA_VALUE | Modbus: неприпустиме значення даних. |
EXC_MB_SLAVE_DEVICE_FAILURE | Modbus: збій підлеглого пристрою. |
EXC_MB_ACKNOWLEDGE | Modbus: запит підтверджено. |
EXC_MB_SLAVE_BUSY | Modbus: підлеглий пристрій зайнятий. |
EXC_MB_MEMORY_PARITY_ERROR | Modbus: помилка парності пам’яті. |
EXC_PARAM_PATH_UNAVAILABLE | Пристрій недоступний; запит не надіслано. |
EXC_PARAM_TARGET_FAILED | Пристрій не відповів. |
EXC_TYPE_UNKNOWN | Невідомий тип параметра. |
EXC_ACTION_UNKNOWN | Невідомий тип дії. |
EXC_IO | Помилка зовнішнього ресурсу. |
EXC_OUT_OF_MEMORY | Недостатньо пам’яті. |
EXC_STACK_OVERFLOW | Переповнення стека (забагато CALL). |
EXC_STACK_UNDERFLOW | Спорожнення стека (RETURN без CALL). |
EXC_RESULT_INFINITY | Результат — нескінченність (ділення на нуль). |
EXC_RESULT_COMPLEX | Результат — комплексне число (SQRT від від’ємного). |
EXC_OUT_OF_BOUNDS | Індекс поза межами. |
EXC_UNKNOWN | Невідома помилка. |
Приклад відповіді:
{ "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
Section titled “memCard”Інформація про стан SD-карти.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
capacityKb | integer / null | Загальна ємність SD-карти в КБ, або null. |
freeKb | integer / null | Вільне місце на SD-карті в КБ, або null. |
isMounted | boolean | Статус монтування (true — змонтовано). |
isInserted | boolean | Статус вставки (true — вставлено). |
settings
Section titled “settings”Інформація про стан налаштувань.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
modifyOn | string / null | Час останньої зміни налаштувань (ISO 8601), або null. |
isUserModified | boolean | Вказує, чи налаштування змінено, але не застосовано. |
isDefault | boolean | Вказує, чи поточні налаштування є значеннями за замовчуванням. |
Інформація про поточний час пристрою.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
timeLocal | integer | Поточний місцевий час (ISO 8601). |
timeUtc | integer | Поточний час UTC (ISO 8601). |
isDst | boolean | Прапор літнього часу. |
sunriseLocalSec | integer / null | Час сходу сонця в секундах від початку дня, або null. |
sunsetLocalSec | integer / null | Час заходу сонця в секундах від початку дня, або null. |
polarDay | boolean | Вказує полярний день. |
polarNight | boolean | Вказує полярну ніч. |
Додаткові діагностичні дані.
Поля відповіді:
| Поле | Тип | Опис |
|---|---|---|
voltage | string / null | Поточна напруга живлення, або null. |
temperature | string / null | Поточна температура в градусах Цельсія, або null. |