Repository navigation
Solax Cloud: inverter_vpp_mode/self_consume/charge_or_discharge_mode fails with status 5 every cycle (battery won't discharge) #4146
Unanswered
andyhollis
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
On a Solax X1-Hybrid-G4 controlled via the Solax Cloud API, Predbat sends two commands each control cycle. The first (
batch_set_spontaneity_self_use) succeeds, but the second (inverter_vpp_mode/self_consume/charge_or_discharge_mode) fails with status 5 on every cycle. The net effect is that the battery does not discharge to cover house load — the house is supplied from the grid even with the battery at 94–99% SoC. The failure is not visible in the SolaxCloud app UI (the VPP/self-consume control path isn't surfaced there), which made it hard to diagnose.Environment
nipar44/predbat_addon:latest)Observed behaviour
Battery at 94–99% SoC, house load ~640 W, solar negligible (overnight/dawn). Battery power = 0 W / not discharging; grid imports the full house load. SolaxCloud shows "Normal / Self Use" with no visible idle window.
The failing command (from predbat.log)
Each cycle, two commands are issued:
1. Succeeds (status 4):
2. Fails (status 5), every cycle:
So the self-use work mode sets fine, but the VPP
charge_or_discharge_mode(the call that actually governs charge/discharge/idle behaviour) is rejected with status 5 on every attempt.Questions / suspected causes
inverter_vpp_mode/self_consume/charge_or_discharge_modeto be accepted? The basicbatch_set_spontaneity_self_useworks, but the VPP call does not.nextMotion: 161valid for the X1-Hybrid-G4 on this firmware, or is a different value/endpoint expected?Notes
min reserve 0.46% / current reserve 1.15%,Reserve min: 10%), possibly unrelated but flagging in case.pv_calibrationTypeError: NoneType - NoneTypeat solcast.py:943, called unconditionally at solcast.py:1369 even withmetric_pv_calibration_enable: False) — will raise separately if not already known.What I've ruled out
All inverter-side settings permit discharge; the only failing element is the VPP
charge_or_discharge_modeAPI call returning status 5.All reactions