warp-more-hardware / esp32-firmware

TinkerForge WARP software for more hardware
14 stars 1 forks source link

Persist energy_abs meter value #34

Closed bs-github closed 1 year ago

bs-github commented 1 year ago

The absolute energy consumed shall be ever growing

At the moment the energy_abs value is reset on power cycling the AC011K. This value should be persisted and survive reboots of the GD chip.

Solution I'd like

Just save energy_abs onto flash.

Additional context

If this value is not persisted, and the ESP32 reboots during charging, the values are off and lead to wrong tracked charges with negative energy_charged values:

see charge_tracker/last_charges ``` JSON5 { "uptime": 88201, "charge_tracker/last_charges": [ { "timestamp_minutes": 27895007, "charge_duration": 7017, "user_id": 0, "energy_charged": 6.389 }, { "timestamp_minutes": 27895448, "charge_duration": 37447, "user_id": 0, "energy_charged": 22.305 }, { "timestamp_minutes": 27896166, "charge_duration": 81505, "user_id": 0, "energy_charged": -42.179 }, { "timestamp_minutes": 27897664, "charge_duration": 11529, "user_id": 0, "energy_charged": 10.253 }, { "timestamp_minutes": 27898210, "charge_duration": 44995, "user_id": 0, "energy_charged": 11.208 }, { "timestamp_minutes": 27899007, "charge_duration": 85317, "user_id": 0, "energy_charged": 5.302 }, { "timestamp_minutes": 27900528, "charge_duration": 19032, "user_id": 0, "energy_charged": 12.205 }, { "timestamp_minutes": 27901055, "charge_duration": 226663, "user_id": 0, "energy_charged": 11.623 }, { "timestamp_minutes": 27905615, "charge_duration": 123212, "user_id": 0, "energy_charged": -49.621 }, { "timestamp_minutes": 27908051, "charge_duration": 64970, "user_id": 0, "energy_charged": 7.753 }, { "timestamp_minutes": 27909434, "charge_duration": 68372, "user_id": 0, "energy_charged": 7.208001 }, { "timestamp_minutes": 27910732, "charge_duration": 6994, "user_id": 0, "energy_charged": 6.317001 }, { "timestamp_minutes": 27910895, "charge_duration": 1383, "user_id": 0, "energy_charged": 1.261 }, { "timestamp_minutes": 27910957, "charge_duration": 5497, "user_id": 0, "energy_charged": 5.063002 }, { "timestamp_minutes": 27911087, "charge_duration": 158319, "user_id": 0, "energy_charged": 21.696 }, { "timestamp_minutes": 27914047, "charge_duration": 46965, "user_id": 0, "energy_charged": 9.857002 }, { "timestamp_minutes": 27915181, "charge_duration": 13072, "user_id": 0, "energy_charged": -55.055 }, { "timestamp_minutes": 27915481, "charge_duration": 131027, "user_id": 0, "energy_charged": 8.351001 }, { "timestamp_minutes": 27917952, "charge_duration": 14623, "user_id": 0, "energy_charged": 13.365 }, { "timestamp_minutes": 27918367, "charge_duration": 43023, "user_id": 0, "energy_charged": 8.618 }, { "timestamp_minutes": 27919131, "charge_duration": 7037, "user_id": 0, "energy_charged": 6.389 }, { "timestamp_minutes": 27919273, "charge_duration": 19035, "user_id": 0, "energy_charged": 5.140999 }, { "timestamp_minutes": 27919671, "charge_duration": 60580, "user_id": 0, "energy_charged": 11.702 }, { "timestamp_minutes": 27921227, "charge_duration": 0, "user_id": 0, "energy_charged": -64.128 }, { "timestamp_minutes": 27921524, "charge_duration": 32660, "user_id": 0, "energy_charged": 0 }, { "timestamp_minutes": 27922284, "charge_duration": 12417, "user_id": 0, "energy_charged": 6.632 }, { "timestamp_minutes": 27922670, "charge_duration": 51697, "user_id": 0, "energy_charged": 6.146 }, { "timestamp_minutes": 27923633, "charge_duration": 23200, "user_id": 0, "energy_charged": 17.869 }, { "timestamp_minutes": 27924231, "charge_duration": 0, "user_id": 0, "energy_charged": -46.626 }, { "timestamp_minutes": 27925007, "charge_duration": 56, "user_id": 0, "energy_charged": 0.208 } ], "charge_tracker/current_charge": { "user_id": -1, "meter_start": 0, "evse_uptime_start": 0, "timestamp_minutes": 0, "authorization_type": 0, "authorization_info": null }, "charge_tracker/state": { "tracked_charges": 60, "first_charge_timestamp": 0 } } ```