Перейти до вмісту

GET /api/state/get/?device&network&relays&leds&protection&recorder&channels&log&ntp&httpd&modbus&wireguard

Отримує одну або кілька груп верхнього рівня з поточним станом роботи.

Авторизація: Bearer.


Кожен ключ запиту є прапорцем, що запитує відповідну групу. Допустимі ключі:

device, network, relays, leds, protection, recorder, channels, log, ntp, httpd, modbus, wireguard

  • Потрібен принаймні один ключ.
  • Невідомий ключ → 404 ERROR_NOT_FOUND.
  • Відсутні ключі → 400 ERROR_API_PARSING.
  • Перевищено обсяг доступної пам’яті → 507 ERROR_NO_MEMORY.

{
"device": {
"uptimeSec": 123456,
"dateTimeUtc": "2026-04-16T12:21:36Z",
"localOffsetMin": 240,
"dstActive": true,
"deviceNeedReboot": false,
"isDiagnosticMode": false,
"settingsValid": true,
"calibrationValid": true,
"rebootAfterSec": null
},
"network": {
"macAddress": "00:11:22:33:44:55",
"isUnique": true,
"ipAddress": "192.168.1.50",
"subnetMask": "255.255.255.0",
"gateway": "192.168.1.1",
"dns": ["8.8.8.8", "8.8.4.4"],
"dhcp": {
"state": "bound",
"serverAddress": "192.168.1.1",
"leaseSeconds": 86400,
"remainingSeconds": 43120
}
},
"relays": {
"trip": false,
"alarm": false,
"fan": false,
"fault": false,
"inTestMode": false
},
"leds": {
"inTestMode": false
},
"protection": {
"trip": false,
"alarm": false,
"fan": false,
"fault": false
},
"recorder": {
"enabled": true,
"available": true,
"total": 1532,
"periodSec": 600,
"lastError": 0,
"errorCount": 0
},
"channels": [
{
"enabled": true,
"temperature": "72.4",
"minTemperature": "68.1",
"maxTemperature": "74.9",
"trend": "up",
"circuitState": "normal",
"trip": false,
"alarm": false,
"fan": false
}
],
"log": {
"available": true,
"total": 250,
"lastTimestampUtc": "2026-04-16T12:00:00Z",
"pending": 0
},
"ntp": {
"enabled": true,
"available": true,
"lastSyncUtc": "2026-04-16T12:00:05Z",
"syncCount": 15,
"failCount": 0
},
"httpd": {
"enabled": true,
"available": true,
"activeConnections": 2,
"maxConnections": 5,
"activeSessions": 1,
"maxSessions": 5,
"port": 80,
"connections": [
{ "ip": "192.168.1.10", "port": 50122 }
]
},
"modbus": {
"enabled": true,
"available": true,
"activeConnections": 1,
"maxConnections": 5,
"blockedIps": 0,
"port": 502,
"rxPackets": 120,
"txPackets": 118,
"rxErrors": 2,
"txErrors": 0,
"exceptionResp": 1,
"rxBytes": 2048,
"txBytes": 4096,
"rxPerSec": 3,
"txPerSec": 3,
"connections": [
{
"ip": "192.168.1.10",
"port": 50123,
"uptimeSec": 120,
"unlocked": true,
"rxPackets": 120,
"txPackets": 118,
"rxErrors": 2,
"txErrors": 0,
"exceptionResp": 1,
"rxBytes": 2048,
"txBytes": 4096,
"rxPerSec": 3,
"txPerSec": 3
}
]
},
"wireguard": {
"enabled": true,
"mode": "auto",
"status": {
"link": "up",
"config": "ready",
"lastPeerUpUtc": "2026-05-21T10:00:00Z",
"lastHandshakeAgeSec": 12,
"lastActivityAgeSec": 2,
"rxPackets": 1234,
"txPackets": 567
},
"endpoint": {
"hostname": "wg.example.net",
"address": "1.2.3.4",
"port": 51820,
"keepaliveSec": 25,
"peerPublicKey": "base64-public-key",
"allowedIps": ["0.0.0.0/0", "10.20.0.0/16"]
},
"interface": {
"configured": "10.0.0.2/24",
"runtime": "10.0.0.2/24",
"devicePublicKey": "base64-device-public-key"
}
}
}

Повертаються лише явно запитані групи.


ПолеТипОпис
uptimeSecчислоЧас роботи від моменту ввімкнення (секунди)
dateTimeUtcрядокПоточний час пристрою у форматі ISO 8601 UTC
localOffsetMinчислоФактичне зміщення місцевого часу у хвилинах, з урахуванням DST
dstActiveлогічнийЧи активний DST
deviceNeedRebootлогічнийПристрій потребує перезавантаження
isDiagnosticModeлогічнийРежим діагностики активовано під час запуску натисканням кнопок «Вгору» + «Вниз»
settingsValidлогічнийЗбережені налаштування коректні
calibrationValidлогічнийЗбережене заводське калібрування коректне
rebootAfterSecчисло|nullСекунд до запланованого перезавантаження (null = не заплановано)
ПолеТипОпис
macAddressрядокMAC-адреса
isUniqueлогічнийtrue = унікальна EUI-48, false = резервна
ipAddressрядокIP-адреса
subnetMaskрядокМаска підмережі
gatewayрядокШлюз
dnsмасив рядківDNS-сервери
dhcp.stateрядокСтан DHCP: off, configuring, searching, requesting, bound, renewing, rebinding, retrying
dhcp.serverAddressрядокIPv4-адреса DHCP-сервера
dhcp.leaseSecondsчислоПовна тривалість оренди у секундах
dhcp.remainingSecondsчислоЗалишок тривалості оренди у секундах
ПолеТипОпис
tripлогічнийСтан реле «Перегрів»
alarmлогічнийСтан реле «Тривога»
fanлогічнийСтан реле «Вентиляція»
faultлогічнийСтан реле «Відмова»
inTestModeлогічнийАктивна службова перевірка реле
ПолеТипОпис
inTestModeлогічнийАктивна службова перевірка світлодіодів
ПолеТипОпис
tripлогічнийЛогічний прапорець захисту «Перегрів»
alarmлогічнийЛогічний прапорець захисту «Тривога»
fanлогічнийЛогічний прапорець захисту «Вентиляція»
faultлогічнийЛогічний прапорець захисту «Відмова»
ПолеТипОпис
enabledлогічнийРеєстратор увімкнено
availableлогічнийРеєстратор доступний
totalчислоКількість доступних записів
periodSecчислоПоточний період записування (секунди)
lastErrorчислоКод останньої помилки
errorCountчислоКількість помилок

Масив із 4 елементів (CH1..CH4).

ПолеТипОпис
enabledлогічнийКанал увімкнено
temperatureрядок|nullПоточна температура (десяткове число, 1 цифра після крапки), null якщо значення некоректне
minTemperatureрядок|nullМінімальна температура
maxTemperatureрядок|nullМаксимальна температура
trendрядок"up", "down", "stable"
circuitStateрядок"normal", "open", "short"
tripлогічнийКанал у стані «Перегрів»
alarmлогічнийКанал у стані «Тривога»
fanлогічнийКанал у стані «Вентиляція»
ПолеТипОпис
availableлогічнийЖурнал доступний
totalчислоКількість доступних подій
lastTimestampUtcрядок|nullМітка часу UTC останньої події; null якщо журнал порожній
pendingчислоКількість непідтверджених подій у поточному сеансі живлення
ПолеТипОпис
enabledлогічнийNTP увімкнено в налаштуваннях
availableлогічнийКлієнт NTP готовий у поточному стані роботи
lastSyncUtcрядок|nullЧас UTC останньої успішної синхронізації; null якщо синхронізації не було
syncCountчислоКількість успішних синхронізацій від моменту ввімкнення
failCountчислоКількість невдалих спроб від моменту ввімкнення
ПолеТипОпис
enabledлогічнийWeb-сервер увімкнено в налаштуваннях
availableлогічнийHTTPD готовий у поточному стані роботи
activeConnectionsчислоАктивні наразі TCP-з’єднання
maxConnectionsчислоМаксимальна кількість одночасних з’єднань (константа)
activeSessionsчислоАвторизовані наразі сеанси
maxSessionsчислоМаксимальна кількість одночасних сеансів (константа)
portчислоTCP-порт HTTP-сервера
connectionsмасивАктивні TCP-з’єднання
connections[].ipрядокIP-адреса клієнта
connections[].portчислоTCP-порт клієнта
ПолеТипОпис
enabledлогічнийModbus TCP увімкнено в налаштуваннях
availableлогічнийСервер Modbus TCP готовий
activeConnectionsчислоПоточна кількість активних TCP-з’єднань
maxConnectionsчислоМаксимальна кількість одночасних з’єднань
blockedIpsчислоКількість заблокованих IP-адрес після невдалих спроб введення пароля
portчислоModbus Порт TCP
rxPacketsчислоОтримано пакетів через усі з’єднання від моменту запуску
txPacketsчислоНадіслано пакетів через усі з’єднання від моменту запуску
rxErrorsчислоПомилки отримання через усі з’єднання від моменту запуску
txErrorsчислоПомилки передавання через усі з’єднання від моменту запуску
exceptionRespчислоВідповідей Modbus Exception надіслано від моменту запуску
rxBytesчислоОтримано байтів через усі з’єднання від моменту запуску
txBytesчислоНадіслано байтів через усі з’єднання від моменту запуску
rxPerSecчислоПоточна сумарна швидкість отримання, packets/s
txPerSecчислоПоточна сумарна швидкість передавання, packets/s
connectionsмасивАктивні TCP-з’єднання
connections[].ipрядокIP-адреса клієнта
connections[].portчислоTCP-порт клієнта
connections[].uptimeSecчислоЧас роботи з’єднання, секунд
connections[].unlockedлогічнийЗахищені операції розблоковано для з’єднання
connections[].rxPacketsчислоОтримано пакетів через з’єднання
connections[].txPacketsчислоНадіслано пакетів через з’єднання
connections[].rxErrorsчислоПомилки отримання через з’єднання
connections[].txErrorsчислоПомилки передавання через з’єднання
connections[].exceptionRespчислоВідповідей Modbus Exception надіслано через з’єднання
connections[].rxBytesчислоОтримано байтів через з’єднання
connections[].txBytesчислоНадіслано байтів через з’єднання
connections[].rxPerSecчислоПоточна швидкість отримання через з’єднання, packets/s
connections[].txPerSecчислоПоточна швидкість передавання через з’єднання, packets/s
ПолеТипОпис
enabledлогічнийWG увімкнено в налаштуваннях
modeрядокРежим конфігурації: "auto" або "static"
statusоб’єктСтислий робочий стан WireGuard
endpointоб’єктКінцева точка віддаленого вузла
interfaceоб’єктВідповідність налаштованого та фактичного інтерфейсів
ПолеТипОпис
linkрядокСтан з’єднання: "disabled", "netif", "configured", "connected", "up"
configрядокСтан конфігурації: "disabled", "staticInvalid", "pause", "serverResolving", "serverConnecting", "discoverWait", "connectWait", "peerResolving", "ready"
lastPeerUpUtcрядок|nullЧас UTC останньої доступності вузла; null якщо ніколи
lastHandshakeAgeSecчисло|nullЧас від останнього handshake/keepalive вузла у секундах; null якщо немає
lastActivityAgeSecчисло|nullЧас від останньої активності вузла (handshake/keepalive, RX, або TX) у секундах; null якщо немає
rxPacketsчислоОтримано пакетів через тунель WG
txPacketsчислоНадіслано пакетів через тунель WG
ПолеТипОпис
hostnameрядок|nullІм’я вузла кінцевої точки
addressрядок|nullВизначена IP-адреса кінцевої точки
portчисло|nullПорт кінцевої точки
keepaliveSecчисло|nullПоточний інтервал keepalive вузла у секундах
peerPublicKeyрядок|nullВідкритий ключ вузла
allowedIpsмасивДозволені мережі вузла у форматі IPv4 CIDR
ПолеТипОпис
configuredрядок|nullНалаштована адреса інтерфейсу у нотації CIDR
runtimeрядок|nullФактична активна адреса інтерфейсу у нотації CIDR
devicePublicKeyрядок|nullВідкритий ключ пристрою