GET /api/state/get/?device&network&relays&leds&protection&recorder&channels&log&ntp&httpd&modbus&wireguard
Retrieve one or more top-level runtime-state groups.
Auth: Bearer.
Query params
Section titled “Query params”Each query key is a flag requesting the corresponding group. Valid keys:
device, network, relays, leds, protection, recorder, channels, log, ntp, httpd, modbus, wireguard
- At least one key is required.
- Unknown key →
404 ERROR_NOT_FOUND. - No keys →
400 ERROR_API_PARSING. - Memory budget exceeded →
507 ERROR_NO_MEMORY.
Response 200
Section titled “Response 200”{ "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" } }}Only explicitly requested groups are returned.
Group device
Section titled “Group device”| Field | Type | Description |
|---|---|---|
uptimeSec | number | Uptime since power-on (seconds) |
dateTimeUtc | string | Current device time in ISO 8601 UTC |
localOffsetMin | number | Effective local offset in minutes, including DST |
dstActive | boolean | Whether DST is active |
deviceNeedReboot | boolean | The device requires a reboot |
isDiagnosticMode | boolean | Diagnostic mode was activated at startup by pressing Up + Down |
settingsValid | boolean | The saved settings are valid |
calibrationValid | boolean | The saved factory calibration is valid |
rebootAfterSec | number|null | Seconds until the scheduled reboot (null = not scheduled) |
Group network
Section titled “Group network”| Field | Type | Description |
|---|---|---|
macAddress | string | MAC address |
isUnique | boolean | true = unique EUI-48, false = fallback |
ipAddress | string | IP address |
subnetMask | string | Subnet mask |
gateway | string | Gateway |
dns | string[] | DNS servers |
dhcp.state | string | DHCP state: off, configuring, searching, requesting, bound, renewing, rebinding, retrying |
dhcp.serverAddress | string | DHCP server IPv4 address |
dhcp.leaseSeconds | number | Full lease duration in seconds |
dhcp.remainingSeconds | number | Remaining lease duration in seconds |
Group relays
Section titled “Group relays”| Field | Type | Description |
|---|---|---|
trip | boolean | Trip relay state |
alarm | boolean | Alarm relay state |
fan | boolean | Fan relay state |
fault | boolean | Fault relay state |
inTestMode | boolean | Service relay test is active |
Group leds
Section titled “Group leds”| Field | Type | Description |
|---|---|---|
inTestMode | boolean | Service LED test is active |
Group protection
Section titled “Group protection”| Field | Type | Description |
|---|---|---|
trip | boolean | Logical trip protection flag |
alarm | boolean | Logical alarm protection flag |
fan | boolean | Logical fan protection flag |
fault | boolean | Logical fault protection flag |
Group recorder
Section titled “Group recorder”| Field | Type | Description |
|---|---|---|
enabled | boolean | Recorder is enabled |
available | boolean | Recorder is available |
total | number | Number of available records |
periodSec | number | Current recording period (seconds) |
lastError | number | Most recent error code |
errorCount | number | Error count |
Group channels
Section titled “Group channels”Array of 4 elements (CH1..CH4).
| Field | Type | Description |
|---|---|---|
enabled | boolean | Channel is enabled |
temperature | string|null | Current temperature (decimal, 1 digit after the decimal point), null if invalid |
minTemperature | string|null | Minimum temperature |
maxTemperature | string|null | Maximum temperature |
trend | string | "up", "down", "stable" |
circuitState | string | "normal", "open", "short" |
trip | boolean | Channel is in the trip state |
alarm | boolean | Channel is in the alarm state |
fan | boolean | Channel is in the fan state |
Group log
Section titled “Group log”| Field | Type | Description |
|---|---|---|
available | boolean | Log is available |
total | number | Number of available events |
lastTimestampUtc | string|null | UTC timestamp of the most recent event; null if empty |
pending | number | Number of unacknowledged events in the current power session |
Group ntp
Section titled “Group ntp”| Field | Type | Description |
|---|---|---|
enabled | boolean | NTP is enabled in settings |
available | boolean | The NTP client is ready in the current runtime state |
lastSyncUtc | string|null | UTC time of the most recent successful synchronization; null if none has occurred |
syncCount | number | Number of successful synchronizations since power-on |
failCount | number | Number of failed attempts since power-on |
Group httpd
Section titled “Group httpd”| Field | Type | Description |
|---|---|---|
enabled | boolean | The web server is enabled in settings |
available | boolean | HTTPD is ready in the current runtime state |
activeConnections | number | Currently active TCP connections |
maxConnections | number | Maximum concurrent connections (constant) |
activeSessions | number | Currently authorized sessions |
maxSessions | number | Maximum concurrent sessions (constant) |
port | number | HTTP server TCP port |
connections | array | Active TCP connections |
connections[].ip | string | Client IP address |
connections[].port | number | Client TCP port |
Group modbus
Section titled “Group modbus”| Field | Type | Description |
|---|---|---|
enabled | boolean | Modbus TCP is enabled in settings |
available | boolean | The Modbus TCP server is ready |
activeConnections | number | Current number of active TCP connections |
maxConnections | number | Maximum concurrent connections |
blockedIps | number | Number of IP addresses blocked after failed password attempts |
port | number | Modbus TCP port |
rxPackets | number | Packets received across all connections since startup |
txPackets | number | Packets sent across all connections since startup |
rxErrors | number | Receive errors across all connections since startup |
txErrors | number | Transmit errors across all connections since startup |
exceptionResp | number | Modbus Exception responses sent since startup |
rxBytes | number | Bytes received across all connections since startup |
txBytes | number | Bytes sent across all connections since startup |
rxPerSec | number | Current aggregate receive rate, packets/s |
txPerSec | number | Current aggregate transmit rate, packets/s |
connections | array | Active TCP connections |
connections[].ip | string | Client IP address |
connections[].port | number | Client TCP port |
connections[].uptimeSec | number | Connection uptime, seconds |
connections[].unlocked | boolean | Protected operations are unlocked for the connection |
connections[].rxPackets | number | Packets received on the connection |
connections[].txPackets | number | Packets sent on the connection |
connections[].rxErrors | number | Receive errors on the connection |
connections[].txErrors | number | Transmit errors on the connection |
connections[].exceptionResp | number | Modbus Exception responses sent on the connection |
connections[].rxBytes | number | Bytes received on the connection |
connections[].txBytes | number | Bytes sent on the connection |
connections[].rxPerSec | number | Current connection receive rate, packets/s |
connections[].txPerSec | number | Current connection transmit rate, packets/s |
Group wireguard
Section titled “Group wireguard”| Field | Type | Description |
|---|---|---|
enabled | boolean | WG is enabled in settings |
mode | string | Configuration mode: "auto" or "static" |
status | object | Brief WireGuard operational state |
endpoint | object | Remote peer endpoint |
interface | object | Configured/runtime interface mapping |
wireguard.status
Section titled “wireguard.status”| Field | Type | Description |
|---|---|---|
link | string | Link state: "disabled", "netif", "configured", "connected", "up" |
config | string | Configuration state: "disabled", "staticInvalid", "pause", "serverResolving", "serverConnecting", "discoverWait", "connectWait", "peerResolving", "ready" |
lastPeerUpUtc | string|null | UTC time when the peer was last up; null if never |
lastHandshakeAgeSec | number|null | Age of the peer’s latest handshake/keepalive in seconds; null if none |
lastActivityAgeSec | number|null | Age of the peer’s latest activity (handshake/keepalive, RX, or TX) in seconds; null if none |
rxPackets | number | Packets received through the WG tunnel |
txPackets | number | Packets sent through the WG tunnel |
wireguard.endpoint
Section titled “wireguard.endpoint”| Field | Type | Description |
|---|---|---|
hostname | string|null | Endpoint hostname |
address | string|null | Resolved endpoint IP address |
port | number|null | Endpoint port |
keepaliveSec | number|null | Current peer keepalive interval in seconds |
peerPublicKey | string|null | Peer public key |
allowedIps | array | Peer networks allowed in IPv4 CIDR format |
wireguard.interface
Section titled “wireguard.interface”| Field | Type | Description |
|---|---|---|
configured | string|null | Configured interface address in CIDR notation |
runtime | string|null | Actual active interface address in CIDR notation |
devicePublicKey | string|null | Device public key |