Przejdź do głównej zawartości

POST /api/settings/set/

Częściowo zaktualizuj zapisane ustawienia (semantyka scalania).

Uwierzytelnianie: 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
}
}
  • Wszystkie grupy najwyższego poziomu są opcjonalne: general, dateTime, display, access, recorder, network, ntp, web, modbus, vpnWireguard, channels, protection.
  • Grupa meta jest przeznaczona tylko do odczytu.
  • Obiekty zagnieżdżone są aktualizowane częściowo (scalane).
  • Pominięcie pola hasła oznacza „nie zmieniaj hasła”.
  • Tablice są zastępowane w całości: network.dns, vpnWireguard.allowedIps, channels.items, protection.trip.channels, protection.alarm.channels, protection.fan.channels.
  • Nieznane klucze są niedozwolone → 400 ERROR_INVALID_VALUE.
  • Typ wartości musi być zgodny ze schematem.
  • Tablice kanałów muszą mieć długość 4.
  • sensorTypeId musi odpowiadać wartości z GET /api/reference/sensor-types/.
  • Treść żądania ≤ 4096 bajtów.

Poniższe ograniczenia odpowiadają walidacji oprogramowania układowego w Application/User/settings.h.

  • general.logDebugMask: 0..65535 (maska bitowa, bit0 = WireGuard).
  • dateTime.timezoneOffset: -720..840 minut.
  • dateTime.dst.mode: 0..3.
  • dateTime.dst.deltaMin: 0..180 minut.
  • display.contrast: 0..64.
  • display.activeBacklightPercent: 0..100.
  • display.idleBacklightEnable: true | false.
  • display.idleBacklightPercent: 0..100.
  • display.idleTimeoutSec: 30..3600 sekund.
  • access.devPasswordEnable, access.webUserPassEnable, access.webPwrPassEnable, access.modbusPasswordEnable: true | false; false wyłącza weryfikację odpowiedniego hasła bez usuwania zapisanej wartości.
  • access.devPassword: ciąg o długości 4..23 znaków.
  • access.webUserPass, access.webPwrPass, access.modbusPassword: ciąg o długości 8..23 znaków.
  • Dozwolone znaki hasła: cyfry 0–9, litery alfabetu łacińskiego A–Z, a–z oraz znaki ., -, _, :, /, @.
  • Hasło null, pusty ciąg, wartość zbyt krótka lub zbyt długa albo nieprawidłowy znak → 400 ERROR_INVALID_VALUE.
  • Aby pozostawić hasło bez zmian, pomiń to pole. Stan ochrony zmienia się niezależnie za pomocą odpowiedniej flagi ...PasswordEnable.
  • recorder.enabled: true | false.
  • recorder.periodSec: 5..3600 sekund.
  • ntp.syncPeriodSec: 300..86400 sekund.
  • ntp.server1, ntp.server2: maksymalnie 31 znaków każdy.
  • web.port: 1..65535.
  • web.vpnTrusted: true | false.
  • web.vpnAccessLevel: 0..2 (password, user, powerUser); 0 używa standardowej autoryzacji hasłem.
  • modbus.unitId: 0..247; 0 — akceptuje żądania z dowolnym identyfikatorem jednostki.
  • modbus.port: 1..65535.
  • modbus.timeoutSec: 1..3600 sekund.
  • 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: adres URL serwera automatycznej konfiguracji.
  • vpnWireguard.privateKey: ciąg base64 WireGuard dla statycznego klucza prywatnego. Pusty ciąg "" usuwa klucz.
  • vpnWireguard.address: ciąg IPv4 CIDR, na przykład 10.8.0.2/24. Pusty ciąg "" usuwa adres.
  • vpnWireguard.peerPublicKey: ciąg base64 WireGuard dla statycznego klucza publicznego partnera. Pusty ciąg "" usuwa klucz.
  • vpnWireguard.peerHostname: nazwa hosta partnera.
  • vpnWireguard.peerPort: 1..65535.
  • vpnWireguard.allowedIps: tablica 2 ciągów IPv4 CIDR. Pusty ciąg "" usuwa element.
  • vpnWireguard.keepaliveSec: 1..300 sekund.
  • 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; gdy próg albo histereza TRIP/ALARM/FAN zostaną zapisane dla kanału połączonego, wartość jest automatycznie kopiowana do wszystkich połączonych kanałów.
  • protection.trip.delaySec, protection.alarm.delaySec, protection.fan.delaySec, protection.fault.delaySec: 0..60 sekund.
  • 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.

{}
  • Gdy vpnWireguard.autoConfigEnable = false, statyczne parametry WireGuard z vpnWireguard są zapisywane i używane.
  • Gdy vpnWireguard.autoConfigEnable = true, statyczne parametry WireGuard mogą pozostać zapisane w ustawieniach, ale są ignorowane podczas działania; konfiguracja jest pobierana z interfejsu API tożsamości usługi w trybie Overvis.