Repository navigation
Low power mode does not work on Solax #3311
Description
Activity
This seems unusual that this hasn't been picked up before.
Can you provide some traces for the solax script when it is called to start low power charging to confirm that the problem is definitely in predbat and not in the script?
I can but tonight. I don't have relevant traces anymore. But in the logs it can be seen that predbat calls the script with the wrong value:
Inverter 0 Calling service charge_start_service domain charge service_name script/solax_remote_control_new_mode_8 with data {'power': '8000', 'operation': 'Force Charge'}it does indeed, thanks
Hello. Any update on this ?
Hello. Any update?
Any update on this?
I've also been suffering from this, so decided to try and dig a little.
Found my logs also full of these:2026-06-09 21:30:46.289726: Warn: Cannot find battery charge curve (settings missing), one of the required settings for soc_percent, charge_rate and battery_power are missing from apps.yaml 2026-06-09 21:30:46.289791: Warn: Cannot find battery discharge curve (settings missing), one of the required settings for soc_percent, discharge_rate and battery_power are missing from apps.yamlIt happens that the two are related. The default Solax apps.yaml template doesn't define
charge_rateordischarge_rate(I don't think our inverters have a specific setting for them - they are passed in through the control script, and the current rate is 'battery_power'.) But predbat needs these to exist in order to store the chosen charge (or discharge) power somewhere, which is then read to send to the script.So the workaround seems to be to create two helper number entities in home assistant, with units of W, and then set
charge_rateanddischarge_rateto point to these entities. As soon as I did that, the log messages disappeared, the entities started getting set to expected values by predbat, and the correct value is passed to the script and sent to the inverter to control charge rate.I'm no expert on the predbat code, but it looks like to has a mechanism to create entities for these automatically if
output_charge_control!= "power". Maybe similar could be introduced in the case these entities are not defined to make it work more out of the box with Solax inverters?Low power mode was working after using that solution above for me
But now I'm getting this in logs and just uses max rate all the time
Low power mode: PV forecast in window 5.24kWh > 0.1kWh, default to max rateIt starts at like 30 40kwh then goes down to 5 or 6kwh as it gets to 100% like an hour before the window ends
Sorry this has sat on the shelf for a while
Can someone please post the full suggested apps.yaml changes, and details of what helper entities were needed (creating helper entities alongside predbat as part of the install is perfectly normal, lots of inverters require this).
Were changes required to the solar remote control script?
And then can look at this new issue, would need the full logs and more details of what you expect and what you're now getting
thanks
charge_rate: input_number.solaxchargerate
discharge_rate: input_number.solaxdischargerate
this is all I had to add to apps.yaml
Just need to make two input number entities then low power mode used to work
Root-caused this during triage. `output_charge_control: "power"` inverters normally write their rate straight to the inverter via REST/cloud API, so the dummy `charge_rate`/`discharge_rate` HA entities were only ever auto-created for "current" mode - but Solax is "power" mode and script-driven (`charge_start_service`, not REST), so `get_current_charge_rate()` still needed the entity and had nowhere to store the computed rate, falling back to `battery_rate_max` (matches @f948lan's manual workaround and diagnosis further up this thread exactly).
Fixed to auto-create the entity for script-driven "power" inverters, without touching genuinely REST-driven ones or clobbering an already-configured entity. PR: #4645
- added a commit that references this issue
on Aug 28, 2026 - added a commit that references this issue
on Sep 7, 2026 - added 6 commits that reference this issue
on Sep 26, 2026
Describe the bug
When enabling low power mode predbat does not send Best rate real to the script, but instead sends battery_rate_max as "{power}"
Expected behaviour
Use "Best rate" as {power}
charge_start_service:
power: "{power}"
operation: "Force Charge"
Predbat version
v8.32.14
Environment details
Solax X3 Ultra 30kW, 40kW HV5.1
Standart HAOS
Log file
predbat.log
apps.yaml