charge_limit writes occasionally land one cycle late — no verification/retry (Sunsynk/SK driver via Solar Assistant) #4866
|
Setup: Predbat v8.54.1 Issue: 100 → readback 15 Predbat logs the write as sent, then on the next cycle skips re-sending because it believes the previous call already succeeded: Inverter 0 Skipped service charge_start_service domain charge service_name select/select_option as it was previously called. Real-world impact: this isn't only cosmetic. On one occasion, predbat.status showed "Charging" while select.inverters_1_program_point_2 on the inverter was still "General" (verified both in HA and on the physical Deye display) — Predbat believed it was charging while the inverter was doing nothing. sensor.totals_battery_power stayed flat/slightly negative for several minutes until I manually re-sent the same select.select_option call via Developer Tools, which landed instantly and battery power jumped from ~-30W to +850W within seconds. What I've ruled out: Not a config issue: manual select.select_option / number.set_value calls to the same entities always land immediately and correctly — the write path itself works. Question / suggestion: would it be feasible for Predbat to verify a select/number write actually took effect (e.g. re-reading the entity state after a short delay) before marking it complete or skipping a repeat write on the next cycle, rather than trusting the service-call log alone? I noticed recent release notes mention a feature for detecting external changes fighting Predbat (#4638) — not sure if that's related to what I'm seeing here, or if this is a separate write-confirmation gap. Happy to share more log excerpts if useful. |
Replies: 2 comments 2 replies
there have/are changes being made by @chalfontchubby to the write/read cycle to do as you suggest. Rik can comment on where these are in the pipeline, but from what I understand I think it could be what you are looking for |
Thanks for the pointers — #4845 lines up very closely with what I'm seeing, especially the "notification fires even though the write wasn't verified" mechanism. I've opened a formal bug report with logs at #4876, referencing both this discussion and #4845.