Konfigurace jednotky NPA R04
Platí pro verzi NPA R04: 2.15.beta5 · Vytvořeno: 2026-06-19 · Aktualizováno: 2026-08-04
Tento dokument popisuje, jak se jednotlivá nastavení jednotky ukládají do konfiguračního souboru. Postupně sem budou přibývat další části konfigurace — zatím je popsáno ukládání síťových nastavení.
Hlavní konfigurace je JSON soubor /data/NPA_R04.cnf (resp. číslovaná verze /data/NPA_R04.cnf.<N>, viz Odesílání konfigurace §Bezpečné ukládání). V kódu k němu přistupuje NConfig; raw JSON drží člen mC2, zápis na disk dělá NConfig::Save().
Síťová nastavení
Síťová nastavení se zadávají ve webovém rozhraní na stránce Nastavení sítě (html/v2/net_settings.html). Ukládají se na dvě místa:
- do hlavního JSON configu
/data/NPA_R04.cnfpod klíče s prefixemns_, - do systémového síťového souboru
/data/npa_lan(formátinterfaces), který se z těch klíčů vygeneruje a teprve ten se reálně promítne do systému.
Klíče v configu
Klíč (mC2) |
Pole ve formuláři | Význam |
|---|---|---|
ns_Dhcp |
ns_Dhcp (radio) |
režim adresace: ns_dhcp (DHCP, výchozí – chybějící klíč se doplní při startu) / ns_static (statická IP) |
ns_net_ip |
ns_net_ip |
IP adresa (statický režim); pod DHCP se při uložení stránky přepíše živou hodnotou ze systému |
ns_net_mask |
ns_net_mask |
maska sítě – prefix (24) nebo tečkovaně (255.255.255.0); do npa_lan jde vždy prefix (NConfig::MaskToPrefix) |
ns_net_gate |
ns_net_gate |
výchozí brána; pod DHCP živá hodnota |
ns_net_dns |
ns_net_dns |
DNS servery, seznam oddělený čárkou; pod DHCP skutečné servery z DHCP (NState::GetDNS: systemd-resolved → resolv.conf → lease dhclient/networkd, nikdy stub 127.0.0.53); do npa_lan jdou oddělené mezerou bez loopbacku |
ns_netPort |
ns_netPort |
port (Modbus TCP); prázdné = 5002 (doplní se při startu) |
ns_netId |
ns_netId |
Modbus ID jednotky; prázdné = 1 (doplní se při startu, stejně ns_485IdSl) |
ns_vpn |
ns_vpn |
povolení VPN (true / false) |
Pozn.: pole
ns_m-s(NPA master/slave) z formuláře je mrtvé — v C++ se nikde nečte (vstup je ve formuláři navícdisabled).
VPN (OpenVPN klient)
ns_vpn jen přepíná symlink /data/npa_r04_cli.conf mezi /data/npa_r04_cli.conf.en (zapnuto) a .dis (vypnuto). Vlastní OpenVPN config (server v řádku remote, klíče) je v .en a config jednotky ho neobsahuje. Přepnutí na jiný VPN server s automatickým návratem při neúspěchu popisuje vpn-presun.md (stav v /data/vpn_switch.json).
Kontrola konfigurace
Jednotka umí ověřit, jestli v configu nechybí důležité hodnoty, jejichž absence by mohla narušit řízení, regulaci nebo běh FW. Kontrolu provádí NConfig::ConfigWarnings(), která vrací seznam problémů (český text); prázdný seznam = vše v pořádku.
Kde se výsledek zobrazí / odešle:
Hlavní stránka (Přehled). Při každém načtení se případné problémy vypíšou červeně úplně nahoře. Když je vše v pořádku, nezobrazí se nic.
Odeslání na server. Při každém uložení configu se kontrola spustí i v
NRemoteLog::SendConfig()a výsledek se přibalí do odesílané JSON zprávy:{ "sn": "…", "config": { … }, "config_ok": true, "warnings": [] }config_okjefalse, pokud je seznamwarningsneprázdný.
Co se kontroluje:
| Kontrola | Hlášení (důvod) |
|---|---|
BESS zařízení bez kapacity (bess=true, dd_BESSCapacity ≤ 0) |
kapacita nenačtena z Modbusu ani zadána ručně; navíc zkresluje kapacitně vážené SOC (viz Řízení BESS §6) |
Výkonové zařízení bez jmenovitého výkonu (pwr=true, dd_Power ≤ 0) |
výkon nenačten z Modbusu ani zadán ručně (dd_PowerHand) |
Chybí hlavní elektroměr TML (dd_elmeterTml ani dd_meas="TML") |
regulace nemá z čeho měřit |
| Regulované místo (FVE/MVE/KGJ/BPS/VTE/DA/HE) s nulovým výkonem | součet dd_Power zařízení v místě i lo_insPower = 0 → nelze počítat % |
BESS místo s nulovým výkonem měničů (součet dd_Power = 0) |
dělení nulou v regulaci BESS |
Duplicitní adresa výstupu (dd_modbusAddr) |
dvě zařízení píší do stejného bloku NPA Modbus serveru |
Stejná Modbus slave adresa (dd_idNet) na téže sběrnici (RTU) / ip:port (TCP) |
kolize při čtení měničů |
Seznam je společný pro web i odeslání na server (jeden zdroj pravdy) a snadno se rozšiřuje o další kontroly.