Przejdź do głównej zawartości

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

Pobierz jedną albo więcej grup najwyższego poziomu stanu roboczego.

Uwierzytelnianie: Bearer.


Każdy klucz zapytania jest flagą żądającą odpowiedniej grupy. Prawidłowe klucze:

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

  • Wymagany jest co najmniej jeden klucz.
  • Nieznany klucz → 404 ERROR_NOT_FOUND.
  • Brak kluczy → 400 ERROR_API_PARSING.
  • Przekroczenie limitu pamięci → 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"
}
}
}

Zwracane są wyłącznie jawnie żądane grupy.


PoleTypOpis
uptimeSecliczbaCzas pracy od włączenia zasilania (w sekundach)
dateTimeUtcciąg znakówBieżący czas urządzenia w formacie ISO 8601 UTC
localOffsetMinliczbaRzeczywiste przesunięcie czasu lokalnego w minutach, z uwzględnieniem czasu letniego
dstActivewartość logicznaOkreśla, czy obowiązuje czas letni
deviceNeedRebootwartość logicznaOkreśla, czy urządzenie wymaga ponownego uruchomienia
isDiagnosticModewartość logicznaOkreśla, czy podczas uruchamiania włączono tryb diagnostyczny przez naciśnięcie przycisków Up + Down
settingsValidwartość logicznaOkreśla, czy zapisane ustawienia są prawidłowe
calibrationValidwartość logicznaOkreśla, czy zapisana kalibracja fabryczna jest prawidłowa
rebootAfterSecliczba|nullLiczba sekund do zaplanowanego ponownego uruchomienia (null = nie zaplanowano)
PoleTypOpis
macAddressciąg znakówAdres MAC
isUniquewartość logicznatrue = unikatowy EUI-48, false = adres zastępczy
ipAddressciąg znakówAdres IP
subnetMaskciąg znakówMaska podsieci
gatewayciąg znakówBrama
dnsciąg[]Serwery DNS
dhcp.stateciąg znakówStan DHCP: off, configuring, searching, requesting, bound, renewing, rebinding, retrying
dhcp.serverAddressciąg znakówAdres IPv4 serwera DHCP
dhcp.leaseSecondsliczbaPełny czas dzierżawy w sekundach
dhcp.remainingSecondsliczbaPozostały czas dzierżawy w sekundach
PoleTypOpis
tripwartość logicznaStan przekaźnika wyłączenia awaryjnego
alarmwartość logicznaStan przekaźnika alarmu
fanwartość logicznaStan przekaźnika wentylatora
faultwartość logicznaStan przekaźnika usterki
inTestModewartość logicznaOkreśla, czy aktywny jest test serwisowy przekaźników
PoleTypOpis
inTestModewartość logicznaOkreśla, czy aktywny jest test serwisowy diod LED
PoleTypOpis
tripwartość logicznaLogiczna flaga zabezpieczenia wyłączenia awaryjnego
alarmwartość logicznaLogiczna flaga zabezpieczenia alarmowego
fanwartość logicznaLogiczna flaga zabezpieczenia wentylatora
faultwartość logicznaLogiczna flaga zabezpieczenia przed usterką
PoleTypOpis
enabledwartość logicznaRejestrator jest włączony
availablewartość logicznaRejestrator jest dostępny
totalliczbaLiczba dostępnych rekordów
periodSecliczbaBieżący okres rejestrowania (w sekundach)
lastErrorliczbaKod ostatniego błędu
errorCountliczbaLiczba błędów

Tablica 4 elementów (CH1..CH4).

PoleTypOpis
enabledwartość logicznaKanał jest włączony
temperatureciąg|nullBieżąca temperatura (liczba dziesiętna z 1 cyfrą po przecinku), null, jeśli wartość jest nieprawidłowa
minTemperatureciąg|nullTemperatura minimalna
maxTemperatureciąg|nullMaksymalna temperatura
trendciąg znaków"up", "down", "stable"
circuitStateciąg znaków"normal", "open", "short"
tripwartość logicznaKanał znajduje się w stanie wyłączenia awaryjnego
alarmwartość logicznaKanał znajduje się w stanie alarmu
fanwartość logicznaKanał znajduje się w stanie wentylatora
PoleTypOpis
availablewartość logicznaDziennik jest dostępny
totalliczbaLiczba dostępnych zdarzeń
lastTimestampUtcciąg|nullZnacznik czasu UTC ostatniego zdarzenia; null, jeśli dziennik jest pusty
pendingliczbaLiczba niepotwierdzonych zdarzeń w bieżącej sesji zasilania
PoleTypOpis
enabledwartość logicznaNTP jest włączony w ustawieniach
availablewartość logicznaKlient NTP jest gotowy w bieżącym stanie roboczym
lastSyncUtcciąg|nullCzas UTC ostatniej udanej synchronizacji; null, jeśli synchronizacja jeszcze nie nastąpiła
syncCountliczbaLiczba udanych synchronizacji od włączenia zasilania
failCountliczbaLiczba nieudanych prób od włączenia zasilania
PoleTypOpis
enabledwartość logicznaSerwer WWW jest włączony w ustawieniach
availablewartość logicznaSerwer HTTPD jest gotowy w bieżącym stanie roboczym
activeConnectionsliczbaAktualnie aktywne połączenia TCP
maxConnectionsliczbaMaksymalna liczba jednoczesnych połączeń (stała)
activeSessionsliczbaAktualnie autoryzowane sesje
maxSessionsliczbaMaksymalna liczba jednoczesnych sesji (stała)
portliczbaPort TCP serwera HTTP
connectionstablicaAktywne połączenia TCP
connections[].ipciąg znakówAdres IP klienta
connections[].portliczbaPort TCP klienta
PoleTypOpis
enabledwartość logicznaModbus TCP jest włączony w ustawieniach
availablewartość logicznaSerwer Modbus TCP jest gotowy
activeConnectionsliczbaBieżąca liczba aktywnych połączeń TCP
maxConnectionsliczbaMaksymalna liczba jednoczesnych połączeń
blockedIpsliczbaLiczba adresów IP zablokowanych po nieudanych próbach podania hasła
portliczbaPort Modbus TCP
rxPacketsliczbaPakiety odebrane we wszystkich połączeniach od uruchomienia
txPacketsliczbaPakiety wysłane we wszystkich połączeniach od uruchomienia
rxErrorsliczbaBłędy odbioru we wszystkich połączeniach od uruchomienia
txErrorsliczbaBłędy transmisji we wszystkich połączeniach od uruchomienia
exceptionRespliczbaOdpowiedzi wyjątków Modbus wysłane od uruchomienia
rxBytesliczbaBajty odebrane we wszystkich połączeniach od uruchomienia
txBytesliczbaBajty wysłane we wszystkich połączeniach od uruchomienia
rxPerSecliczbaBieżąca łączna szybkość odbioru w pakietach/s
txPerSecliczbaBieżąca łączna szybkość transmisji w pakietach/s
connectionstablicaAktywne połączenia TCP
connections[].ipciąg znakówAdres IP klienta
connections[].portliczbaPort TCP klienta
connections[].uptimeSecliczbaCzas trwania połączenia w sekundach
connections[].unlockedwartość logicznaOkreśla, czy chronione operacje są odblokowane dla połączenia
connections[].rxPacketsliczbaPakiety odebrane w ramach połączenia
connections[].txPacketsliczbaPakiety wysłane w ramach połączenia
connections[].rxErrorsliczbaBłędy odbioru w ramach połączenia
connections[].txErrorsliczbaBłędy transmisji w ramach połączenia
connections[].exceptionRespliczbaOdpowiedzi wyjątków Modbus wysłane w ramach połączenia
connections[].rxBytesliczbaBajty odebrane w ramach połączenia
connections[].txBytesliczbaBajty wysłane w ramach połączenia
connections[].rxPerSecliczbaBieżąca szybkość odbioru dla połączenia w pakietach/s
connections[].txPerSecliczbaBieżąca szybkość transmisji dla połączenia w pakietach/s
PoleTypOpis
enabledwartość logicznaWG jest włączony w ustawieniach
modeciąg znakówTryb konfiguracji: "auto" albo "static"
statusobiektSkrócony stan działania WireGuard
endpointobiektPunkt końcowy zdalnego partnera
interfaceobiektOdwzorowanie skonfigurowanego i roboczego interfejsu
PoleTypOpis
linkciąg znakówStan łącza: "disabled", "netif", "configured", "connected", "up"
configciąg znakówStan konfiguracji: "disabled", "staticInvalid", "pause", "serverResolving", "serverConnecting", "discoverWait", "connectWait", "peerResolving", "ready"
lastPeerUpUtcciąg|nullCzas UTC, gdy partner był ostatnio aktywny; null, jeśli nigdy nie był aktywny
lastHandshakeAgeSecliczba|nullCzas od ostatniego uzgodnienia lub pakietu podtrzymującego partnera w sekundach; null, jeśli brak
lastActivityAgeSecliczba|nullCzas od ostatniej aktywności partnera (handshake/keepalive, RX albo TX) w sekundach; null, jeśli brak
rxPacketsliczbaPakiety odebrane przez tunel WG
txPacketsliczbaPakiety wysłane przez tunel WG
PoleTypOpis
hostnameciąg|nullNazwa hosta punktu końcowego
addressciąg|nullRozpoznany adres IP punktu końcowego
portliczba|nullPort punktu końcowego
keepaliveSecliczba|nullBieżący interwał podtrzymywania połączenia z partnerem w sekundach
peerPublicKeyciąg|nullKlucz publiczny partnera
allowedIpstablicaDozwolone sieci partnera w formacie IPv4 CIDR
PoleTypOpis
configuredciąg|nullSkonfigurowany adres interfejsu w notacji CIDR
runtimeciąg|nullRzeczywisty aktywny adres interfejsu w notacji CIDR
devicePublicKeyciąg|nullKlucz publiczny urządzenia