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

POST /api/settings/set/

Частково оновлює збережені налаштування (семантика злиття).

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


{
"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
}
}
  • Усі групи верхнього рівня необов’язкові: general, dateTime, display, access, recorder, network, ntp, web, modbus, vpnWireguard, channels, protection.
  • Група meta доступна лише для читання.
  • Вкладені об’єкти оновлюються частково (зливаються).
  • Якщо поле пароля пропущено, пароль не змінюється.
  • Масиви замінюються повністю: network.dns, vpnWireguard.allowedIps, channels.items, protection.trip.channels, protection.alarm.channels, protection.fan.channels.
  • Невідомі ключі не допускаються → 400 ERROR_INVALID_VALUE.
  • Тип значення має відповідати схемі.
  • Масиви каналів повинні мати довжину 4.
  • sensorTypeId має відповідати GET /api/reference/sensor-types/.
  • Тіло запиту ≤ 4096 байтів.

Обмеження полів, доступних для запису

Section titled “Обмеження полів, доступних для запису”

Наведені нижче обмеження відповідають перевірці у прошивці в Application/User/settings.h.

  • general.logDebugMask: 0..65535 (бітова маска, bit0 = WireGuard).
  • dateTime.timezoneOffset: -720..840 хвилин.
  • dateTime.dst.mode: 0..3.
  • dateTime.dst.deltaMin: 0..180 хвилин.
  • display.contrast: 0..64.
  • display.activeBacklightPercent: 0..100.
  • display.idleBacklightEnable: true | false.
  • display.idleBacklightPercent: 0..100.
  • display.idleTimeoutSec: 30..3600 секунд.
  • access.devPasswordEnable, access.webUserPassEnable, access.webPwrPassEnable, access.modbusPasswordEnable: true | false; false вимикає перевірку відповідного пароля, не видаляючи збережене значення.
  • access.devPassword: рядок завдовжки 4..23 символів.
  • access.webUserPass, access.webPwrPass, access.modbusPassword: рядок завдовжки 8..23 символів.
  • Допустимі символи пароля: цифри 0–9, латинські літери A–Z, a–z і символи ., -, _, :, /, @.
  • Пароль null, порожній рядок, закоротке чи задовге значення або недопустимий символ → 400 ERROR_INVALID_VALUE.
  • Щоб залишити пароль без змін, пропустіть поле. Стан захисту змінюється незалежно за допомогою відповідного прапорця ...PasswordEnable.
  • recorder.enabled: true | false.
  • recorder.periodSec: 5..3600 секунд.
  • ntp.syncPeriodSec: 300..86400 секунд.
  • ntp.server1, ntp.server2: до 31 символів кожен.
  • web.port: 1..65535.
  • web.vpnTrusted: true | false.
  • web.vpnAccessLevel: 0..2 (password, user, powerUser); 0 використовує стандартну авторизацію за паролем.
  • modbus.unitId: 0..247; 0 — приймати запити з будь-яким Unit ID.
  • modbus.port: 1..65535.
  • modbus.timeoutSec: 1..3600 секунд.
  • 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: URL сервера автоматичної конфігурації.
  • vpnWireguard.privateKey: Рядок WireGuard у форматі base64 для статичного закритого ключа. Порожній рядок "" очищає ключ.
  • vpnWireguard.address: Рядок IPv4 CIDR, наприклад 10.8.0.2/24. Порожній рядок "" очищає адресу.
  • vpnWireguard.peerPublicKey: Рядок WireGuard у форматі base64 для статичного відкритого ключа вузла. Порожній рядок "" очищає ключ.
  • vpnWireguard.peerHostname: ім’я вузла.
  • vpnWireguard.peerPort: 1..65535.
  • vpnWireguard.allowedIps: масив із 2 рядків IPv4 CIDR. Порожній рядок "" очищає елемент.
  • vpnWireguard.keepaliveSec: 1..300 секунд.
  • 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; під час запису порога або гістерезису TRIP/ALARM/FAN для пов’язаного каналу значення автоматично копіюється до всіх пов’язаних каналів.
  • protection.trip.delaySec, protection.alarm.delaySec, protection.fan.delaySec, protection.fault.delaySec: 0..60 секунд.
  • 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.

{}
  • Коли vpnWireguard.autoConfigEnable = false, статичні параметри WireGuard із vpnWireguard зберігаються та використовуються.
  • Коли vpnWireguard.autoConfigEnable = true, статичні параметри WireGuard можуть залишатися збереженими в налаштуваннях, але під час роботи ігноруються; у режимі Overvis конфігурація надходить з API службової ідентифікації.