Fix calibration grid-assist lever: firmware NAKs stop_charge=0/Full
Live run 2026-06-24: flash.py apply NAK'd BUCD480,000 on both inverters — the
firmware rejects stop_charge_voltage=0 ("Full"). flash.py aborts on first setter
failure, so nothing changed and the cluster stayed in sync (verified).
The field flash.py calls stop_charge_voltage is actually the inverter's
battery_re_discharge_voltage (HA: sensor.lvx6048_*_battery_re_discharge_voltage):
the V at which loads switch back to battery after grid charging. 54.0 tops grid
charge to ~54V; raising to 56.0 is the corrected (but UNVALIDATED) lever and may
band-oscillate rather than hold absorption.
- calibration profile: 0 -> 56.0, with the finding documented.
- skill: solar-only is now the RECOMMENDED/known-good method; grid-assist demoted
to advanced/unvalidated with a mandatory diff-preview gate.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,11 +7,20 @@
|
||||
# / high-load stretches the bank may go weeks without a full charge and the coulomb
|
||||
# counters drift (e.g. pack 6 read 76% while physically at ~53% on 2026-06-24).
|
||||
#
|
||||
# The ONLY change vs the canonical eg4-lp4-v2.yaml is:
|
||||
# stop_charge_voltage: 54.0 -> 0 (= "Full"; remove the grid-charge ceiling so a
|
||||
# full charge can complete even without strong sun)
|
||||
# bulk_voltage stays 56.4 (the absorption target). Solar already charges past 54 V on a
|
||||
# good day; this profile just lets GRID finish the top-off when solar can't.
|
||||
# !!! 2026-06-24 FINDING — grid-assist lever corrected, still UNVALIDATED !!!
|
||||
# The original idea (stop_charge_voltage: 0 = "Full") was REJECTED by the firmware:
|
||||
# `flash.py apply` got an inverter NAK on `BUCD480,000` on BOTH units (no change made).
|
||||
# The field flash.py calls `stop_charge_voltage` is really the inverter's
|
||||
# **battery_re_discharge_voltage** (HA: sensor.lvx6048_*_battery_re_discharge_voltage) —
|
||||
# the voltage at which the inverter switches loads back to battery after grid charging.
|
||||
# At 54.0 V, grid tops the bank only to ~54 V. Raising it (below) lets grid charge
|
||||
# higher, BUT it may band-oscillate near the setpoint rather than hold a clean
|
||||
# absorption, so it's NOT guaranteed to give the full-charge termination the BMS needs
|
||||
# to re-anchor. SOLAR-ONLY is the known-good method (solar follows the full CC/CV curve
|
||||
# to bulk + absorption); use this grid profile only as a supervised experiment.
|
||||
#
|
||||
# Corrected (candidate) change vs canonical: stop_charge_voltage 54.0 -> 56.0 (was 0).
|
||||
# bulk_voltage stays 56.4 (absorption target).
|
||||
#
|
||||
# USE: this is a TEMPORARY profile driven by the `calibration-charge` skill. Apply to
|
||||
# BOTH inverters, run the full charge, verify all 6 packs hit 100%, then REVERT to
|
||||
@@ -35,8 +44,9 @@ battery_type: USER
|
||||
cutoff_voltage: 48.0
|
||||
stop_discharge_voltage: 48.0
|
||||
|
||||
# 0 = Full — let grid charge all the way to bulk (the calibration lever).
|
||||
stop_charge_voltage: 0
|
||||
# re-discharge voltage. 54.0 (canonical) tops grid charge to ~54 V; 56.0 lets grid
|
||||
# charge higher. NOT 0 — firmware NAKs 0/"Full". Range 48.0..58.0. UNVALIDATED lever.
|
||||
stop_charge_voltage: 56.0
|
||||
|
||||
bulk_voltage: 56.4
|
||||
float_voltage: 54.0
|
||||
|
||||
Reference in New Issue
Block a user