Add BMS polling controls to embedded dashboard
This commit is contained in:
@@ -66,6 +66,11 @@ const char INDEX_HTML[] PROGMEM = R"rawliteral(
|
||||
<div class="row"><span class="muted">Battery temp</span><span class="v" id="battTemp">--</span></div>
|
||||
<div class="row"><span class="muted">Cell delta</span><span class="v" id="delta">--</span></div>
|
||||
<div class="row"><span class="muted">Cycles</span><span class="v" id="cycles">--</span></div>
|
||||
<div class="row"><span class="muted">BMS Polling</span><span class="v" id="bmsEnabledText">--</span></div>
|
||||
<div class="relayBtns">
|
||||
<button onclick="setBmsEnabled(true)">Enable BMS</button>
|
||||
<button class="off" onclick="setBmsEnabled(false)">Disable BMS</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="card span6">
|
||||
@@ -112,6 +117,18 @@ const $=id=>document.getElementById(id);
|
||||
function fmt(n,d=1){return typeof n==="number"?n.toFixed(d):"--"}
|
||||
function temp(v){return typeof v==="number"?fmt(v,1)+"°F":"Offline"}
|
||||
function clsAlarm(v){return v?"bad":"good"}
|
||||
async function setBmsEnabled(enabled){
|
||||
try{
|
||||
await fetch("/config/bms",{
|
||||
method:"POST",
|
||||
headers:{"Content-Type":"application/json"},
|
||||
body:JSON.stringify({enabled:enabled})
|
||||
});
|
||||
await fetch("/config/save",{method:"POST"});
|
||||
await load();
|
||||
}catch(e){}
|
||||
}
|
||||
|
||||
async function relay(id,on){
|
||||
try{
|
||||
await fetch("/relay/set",{
|
||||
@@ -137,6 +154,8 @@ function render(data){
|
||||
$("battTemp").textContent=temp(b.temperature_f);
|
||||
$("delta").textContent=(typeof b.cell_delta_mv==="number"?b.cell_delta_mv:"--")+" mV";
|
||||
$("cycles").textContent=b.cycle_count??"--";
|
||||
const bmsCfg=data.config?.bms||{};
|
||||
$("bmsEnabledText").textContent=bmsCfg.enabled ? "Enabled" : "Disabled";
|
||||
|
||||
$("temps").innerHTML=(data.temps||[]).map(t=>`
|
||||
<div class="item">
|
||||
|
||||
Reference in New Issue
Block a user