Skip to content

Commit aef634a

Browse files
committed
esp32.cpp: move floating point calculations to client browser (index.html)
1 parent c63f26b commit aef634a

File tree

2 files changed

+15
-17
lines changed

2 files changed

+15
-17
lines changed

SmartEVSE-3/data/index.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
$('#computed_soc').html(computed_soc >= 0 ? computed_soc + " %" : "N/A");
135135
$('#full_soc').html(full_soc >= 0 ? full_soc + " %" : "N/A");
136136
$('#initial_soc').html(initial_soc >= 0 ? initial_soc + " %" : "N/A");
137-
$('#energy_capacity').html(energy_capacity >= 0 ? energy_capacity.toFixed(1) + " kWh" : "N/A");
137+
$('#energy_capacity').html(energy_capacity >= 0 ? (energy_capacity/1000).toFixed(1) + " kWh" : "N/A");
138138
$('#evccid').html(evccid || "N/A");
139139
$('#full_at')
140140
.text(time_until_full > 0 ? new Date(+Date.now()+(time_until_full * 1000)).toLocaleString(undefined, { timeStyle: 'short', dateStyle: "short" }) : 'N/A')
@@ -284,9 +284,9 @@
284284
} else {
285285
$('[id=with_evmeter]').show();
286286
$('#evmeter_description').text(data.ev_meter.description);
287-
$('#evmeter_power').text(data.ev_meter.import_active_power.toFixed(1) + " kW");
288-
$('#evmeter_total_kwh').text(data.ev_meter.total_kwh.toFixed(1) + " kWh");
289-
$('#evmeter_charged_kwh').text(data.ev_meter.charged_kwh.toFixed(1) + " kWh");
287+
$('#evmeter_power').text((data.ev_meter.import_active_power/1000).toFixed(1) + " kW");
288+
$('#evmeter_total_kwh').text((data.ev_meter.total_wh/1000).toFixed(1) + " kWh");
289+
$('#evmeter_charged_kwh').text((data.ev_meter.charged_wh/1000).toFixed(1) + " kWh");
290290
}
291291

292292
$('#solar_start_current').val(data.settings.solar_start_current);
@@ -331,8 +331,8 @@
331331
document.getElementById("cablelock_label").classList.add("ui-checkbox-off")
332332
}
333333
} else {
334-
              $('[id=cablelock]').hide();
335-
              $('[id=cablelock_label]').hide();
334+
$('[id=cablelock]').hide();
335+
$('[id=cablelock_label]').hide();
336336
}
337337

338338
if (data.ocpp) {

SmartEVSE-3/src/esp32.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,8 +1387,8 @@ bool handle_URI(struct mg_connection *c, struct mg_http_message *hm, webServerR
13871387
doc["ev_state"]["initial_soc"] = InitialSoC;
13881388
doc["ev_state"]["remaining_soc"] = RemainingSoC;
13891389
doc["ev_state"]["full_soc"] = FullSoC;
1390-
doc["ev_state"]["energy_capacity"] = EnergyCapacity > 0 ? round((float)EnergyCapacity / 100)/10 : -1; //in kWh, precision 1 decimal;
1391-
doc["ev_state"]["energy_request"] = EnergyRequest > 0 ? round((float)EnergyRequest / 100)/10 : -1; //in kWh, precision 1 decimal
1390+
doc["ev_state"]["energy_capacity"] = EnergyCapacity > 0 ? EnergyCapacity : -1; // Wh
1391+
doc["ev_state"]["energy_request"] = EnergyRequest > 0 ? EnergyRequest : -1; // Wh
13921392
doc["ev_state"]["computed_soc"] = ComputedSoC;
13931393
doc["ev_state"]["evccid"] = EVCCID;
13941394
doc["ev_state"]["time_until_full"] = TimeUntilFull;
@@ -1431,22 +1431,20 @@ bool handle_URI(struct mg_connection *c, struct mg_http_message *hm, webServerR
14311431
doc["home_battery"]["current"] = homeBatteryCurrent;
14321432
doc["home_battery"]["last_update"] = homeBatteryLastUpdate;
14331433

1434-
//[rob040 20240819] Fixed: the net effect of "round(float/100)/10" is a Json value like 235.6999969 or 1.600000024; i.e. result in many decimals, i.s.o. just one.
1435-
// When using FP constants, like "round(float/100.0)/10.0", no such rounding errors do occurr.
14361434
doc["ev_meter"]["description"] = EMConfig[EVMeter.Type].Desc;
14371435
doc["ev_meter"]["address"] = EVMeter.Address;
1438-
doc["ev_meter"]["import_active_power"] = round((float)EVMeter.PowerMeasured / 100.0)/10.0; //in kW, precision 1 decimal
1439-
doc["ev_meter"]["total_kwh"] = round((float)EVMeter.Energy / 100.0)/10.0; //in kWh, precision 1 decimal
1440-
doc["ev_meter"]["charged_kwh"] = round((float)EVMeter.EnergyCharged / 100.0)/10.0; //in kWh, precision 1 decimal
1436+
doc["ev_meter"]["import_active_power"] = EVMeter.PowerMeasured; // Watt
1437+
doc["ev_meter"]["total_wh"] = EVMeter.Energy; // Wh
1438+
doc["ev_meter"]["charged_wh"] = EVMeter.EnergyCharged; // Wh
14411439
doc["ev_meter"]["currents"]["TOTAL"] = EVMeter.Irms[0] + EVMeter.Irms[1] + EVMeter.Irms[2];
14421440
doc["ev_meter"]["currents"]["L1"] = EVMeter.Irms[0];
14431441
doc["ev_meter"]["currents"]["L2"] = EVMeter.Irms[1];
14441442
doc["ev_meter"]["currents"]["L3"] = EVMeter.Irms[2];
1445-
doc["ev_meter"]["import_active_energy"] = round((float)EVMeter.Import_active_energy / 100.0)/10.0; //in kWh, precision 1 decimal
1446-
doc["ev_meter"]["export_active_energy"] = round((float)EVMeter.Export_active_energy / 100.0)/10.0; //in kWh, precision 1 decimal
1443+
doc["ev_meter"]["import_active_energy"] = EVMeter.Import_active_energy; // Wh
1444+
doc["ev_meter"]["export_active_energy"] = EVMeter.Export_active_energy; // Wh
14471445

1448-
doc["mains_meter"]["import_active_energy"] = round((float)MainsMeter.Import_active_energy / 100.0)/10.0; //in kWh, precision 1 decimal
1449-
doc["mains_meter"]["export_active_energy"] = round((float)MainsMeter.Export_active_energy / 100.0)/10.0; //in kWh, precision 1 decimal
1446+
doc["mains_meter"]["import_active_energy"] = MainsMeter.Import_active_energy; // Wh
1447+
doc["mains_meter"]["export_active_energy"] = MainsMeter.Export_active_energy; // Wh
14501448
if (MainsMeter.Type == EM_HOMEWIZARD_P1) {
14511449
doc["mains_meter"]["host"] = !homeWizardHost.isEmpty() ? homeWizardHost : "HomeWizard P1 Not Found";
14521450
}

0 commit comments

Comments
 (0)