diff --git a/firmware/esp32/overland-controller/overland-controller.ino b/firmware/esp32/overland-controller/overland-controller.ino index ace5c96..5da9e07 100644 --- a/firmware/esp32/overland-controller/overland-controller.ino +++ b/firmware/esp32/overland-controller/overland-controller.ino @@ -1046,12 +1046,12 @@ function render(data){ function populateSetupFields(data){ const cfg=data.config||{}; - if($("deviceNameInput")) $("deviceNameInput").value=cfg.device_name||""; + setConfigValue("deviceNameInput", cfg.device_name||""); const bms=cfg.bms||{}; - if($("bmsNameInput")) $("bmsNameInput").value=bms.name||""; - if($("bmsAddressInput")) $("bmsAddressInput").value=bms.address||""; - if($("bmsAddressTypeInput")) $("bmsAddressTypeInput").value=bms.address_type||"public"; + setConfigValue("bmsNameInput", bms.name||""); + setConfigValue("bmsAddressInput", bms.address||""); + setConfigValue("bmsAddressTypeInput", bms.address_type||"public"); } async function saveDeviceConfig(){ @@ -1199,12 +1199,18 @@ function renderConfigControls(data){ const relayBox=$("relayConfigList"); if(relayBox){ - relayBox.innerHTML=relays.map((r,i)=>` -
- - - -
`).join(""); + const signature=relays.map(r=>r.id).join("|"); + if(relayBox.dataset.signature!==signature){ + relayBox.dataset.signature=signature; + relayBox.innerHTML=relays.map((r,i)=>` +
+ + + +
`).join(""); + } + + relays.forEach((r,i)=>setConfigValue("relayName"+i,r.name||"")); } setConfigValue("tempEnabledCount", temps.filter(t=>t.enabled).length);