POST /api/settings/set/
Partially update saved settings (merge semantics).
Auth: Bearer (powerUser).
Request
Section titled “Request”{ "access": { "devPasswordEnable": true, "devPassword": "Ab12", "webUserPassEnable": true, "webPwrPassEnable": true, "modbusPasswordEnable": true }, "network": { "dhcpEnable": false, "ipAddress": "192.168.1.77", "subnetMask": "255.255.255.0", "gateway": "192.168.1.1" }, "vpnWireguard": { "enabled": true, "autoConfigEnable": false, "privateKey": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "address": "10.8.0.2/24", "peerPublicKey": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "peerHostname": "vpn.example.com", "peerPort": 51820, "allowedIps": ["0.0.0.0/0", "10.20.0.0/16"], "keepaliveSec": 25 }, "recorder": { "enabled": true, "periodSec": 120 }}Request fields
Section titled “Request fields”- All top-level groups are optional:
general,dateTime,display,access,recorder,network,ntp,web,modbus,vpnWireguard,channels,protection. - The
metagroup is read-only. - Nested objects are updated partially (merged).
- An omitted password field means “do not change the password.”
- Arrays are replaced in full:
network.dns,vpnWireguard.allowedIps,channels.items,protection.trip.channels,protection.alarm.channels,protection.fan.channels.
Validation
Section titled “Validation”- Unknown keys are not allowed →
400 ERROR_INVALID_VALUE. - The value type must match the schema.
- Channel arrays must have a length of
4. sensorTypeIdmust correspond toGET /api/reference/sensor-types/.- Request body ≤
4096bytes.
Writable field constraints
Section titled “Writable field constraints”The constraints below match the firmware validation in Application/User/settings.h.
general.logDebugMask:0..65535(bitmask,bit0= WireGuard).dateTime.timezoneOffset:-720..840minutes.dateTime.dst.mode:0..3.dateTime.dst.deltaMin:0..180minutes.display.contrast:0..64.display.activeBacklightPercent:0..100.display.idleBacklightEnable:true | false.display.idleBacklightPercent:0..100.display.idleTimeoutSec:30..3600seconds.access.devPasswordEnable,access.webUserPassEnable,access.webPwrPassEnable,access.modbusPasswordEnable:true | false;falsedisables validation of the corresponding password without deleting the saved value.access.devPassword: string with a length of4..23characters.access.webUserPass,access.webPwrPass,access.modbusPassword: string with a length of8..23characters.- Allowed password characters: digits
0–9, Latin lettersA–Z,a–zand the characters.,-,_,:,/,@. - A
nullpassword, an empty string, a value that is too short or too long, or an invalid character →400 ERROR_INVALID_VALUE. - To leave a password unchanged, omit the field. The protection state is changed independently using the corresponding
...PasswordEnableflag. recorder.enabled:true | false.recorder.periodSec:5..3600seconds.ntp.syncPeriodSec:300..86400seconds.ntp.server1,ntp.server2: up to31characters each.web.port:1..65535.web.vpnTrusted:true | false.web.vpnAccessLevel:0..2(password,user,powerUser);0uses standard password authorization.modbus.unitId:0..247;0— accept requests with any Unit ID.modbus.port:1..65535.modbus.timeoutSec:1..3600seconds.modbus.protectMode:0..2(none,write-protect,read-write-protect).modbus.vpnAccessLevel:0..3(disabled,password,read-only,read-write).vpnWireguard.autoConfigEnable:true | false.vpnWireguard.autoConfigUrl: Auto-configuration server URL.vpnWireguard.privateKey: WireGuard base64 string for the static private key. An empty string""clears the key.vpnWireguard.address: IPv4 CIDR string, for example10.8.0.2/24. An empty string""clears the address.vpnWireguard.peerPublicKey: WireGuard base64 string for the static peer public key. An empty string""clears the key.vpnWireguard.peerHostname: peer hostname.vpnWireguard.peerPort:1..65535.vpnWireguard.allowedIps: array of2IPv4 CIDR strings. An empty string""clears the element.vpnWireguard.keepaliveSec:1..300seconds.channels.filterLevel:1..10.channels.items[].userOffset:-10.0..10.0°C.channels.items[].ptcMinikaNominal:60.0..180.0°C.channels.items[].linked:0..1; when a TRIP/ALARM/FAN threshold or hysteresis is written for a linked channel, the value is automatically copied to all linked channels.protection.trip.delaySec,protection.alarm.delaySec,protection.fan.delaySec,protection.fault.delaySec:0..60seconds.protection.trip.channels[].threshold,protection.alarm.channels[].threshold,protection.fan.channels[].threshold:-40.0..240.0°C.protection.trip.channels[].hysteresis,protection.alarm.channels[].hysteresis,protection.fan.channels[].hysteresis:0.0..100.0°C.protection.fan.mode:0..3.
Response 200
Section titled “Response 200”{}- When
vpnWireguard.autoConfigEnable = false, the static WireGuard parameters fromvpnWireguardare saved and used. - When
vpnWireguard.autoConfigEnable = true, static WireGuard parameters may remain saved in settings but are ignored at runtime; configuration is obtained from the service identity API in Overvis mode.