mirror of https://github.com/arendst/Tasmota.git
Update xnrg_01_hlw8012.ino
Fix rounding error in kWhtoday_delta calculation. At 3.6kW load, hlw_len could be as low as 5, so rounding could make the value 20% off. Multiply hlw_len by 1000 and the dividend a few lines below as well fixes this. With integer math only, dividends should keep precision as long as possible.
This commit is contained in:
parent
aa9ef57664
commit
e5a02772f0
|
@ -205,10 +205,10 @@ void HlwEverySecond(void)
|
||||||
unsigned long hlw_len;
|
unsigned long hlw_len;
|
||||||
|
|
||||||
if (Hlw.energy_period_counter) {
|
if (Hlw.energy_period_counter) {
|
||||||
hlw_len = 10000 / Hlw.energy_period_counter;
|
hlw_len = 10000 * 1000 / Hlw.energy_period_counter;
|
||||||
Hlw.energy_period_counter = 0;
|
Hlw.energy_period_counter = 0;
|
||||||
if (hlw_len) {
|
if (hlw_len) {
|
||||||
Energy.kWhtoday_delta += ((Hlw.power_ratio * Settings.energy_power_calibration) / hlw_len) / 36;
|
Energy.kWhtoday_delta += ((Hlw.power_ratio * Settings.energy_power_calibration) * 1000 / hlw_len) / 36;
|
||||||
EnergyUpdateToday();
|
EnergyUpdateToday();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue