@@ -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