JK BMS: fix SoC last update timestamp #439
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed just hours ago that my inverter was disabled even though my battery was at 27%. The logs told me that the DPL had shut down the inverter because the battery SoC age was in the neighborhood of 4k seconds. So the voltage at the inverter must have been used as a fallback, and that reached the stop threshold. It then dawned on me that I made another dumb mistake:
For the MQTT integration,
JkBms::DataPointContainer::updateFrom()
was changed such that the data points timestamp reflects the last change of the data point value. That timestamp was used to set the SoC last update timestamp. However, that timestamp must reflect the last time the SoC was successfully received from the JK BMS so we could make sure the value was up to date.This went unnoticed for the two days I was testing because the battery was always at a voltage level that kept the DPL going...
@peff74 @iukbox @indie89 FYI