⚡ Anker SOLIX 4 Pro - Local Zero Export with Eco-Mode & Hardware Protection

Hello everyone,

Since the new Anker SOLIX 4 Pro generation finally supports local API control, I created a comprehensive blueprint for a dynamic zero export (Nulleinspeisung).

:light_bulb: The Main Purpose / Workaround: Official Anker systems usually require you to buy and install specific smart meters (like the Shelly Pro 3EM) to achieve a dynamic zero-export setup. If you already have a smart meter with an Infrared (IR) reader (e.g., Tasmota, Hichi) on your main electricity meter, this blueprint serves as the ultimate workaround. It reads your existing IR sensor directly via Home Assistant and feeds the data to the Solix — saving you money and extra hardware!

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Key Features

  • Eco-Mode (Night-Throttle): Automatically throttles the discharge limit (e.g., to your 150W baseline) once the battery drops below a specific SOC. This ensures your battery charge lasts until sunrise.

  • Split Offsets: Independent buffers for charging and discharging. E.g., leave exactly 10W of grid import while discharging to prevent accidentally feeding expensive battery power into the grid.

  • Hardware Protection: Rounds target values to 10W steps to prevent the inverter relays from constantly switching due to minor load fluctuations.

  • Strict SOC Limits & Hysteresis: Hard stops at your defined min/max SOCs with a relative percentage hysteresis to prevent “SOC ping-pong” at the limits.

  • Mode Guard: Automatically detects if the Solix drops out of “Third Party Control” (e.g., after a Wi-Fi reconnect) and safely resets the mode before sending power commands.

Prerequisites

  • Anker SOLIX 4 Pro integrated into Home Assistant via local API.

  • A grid power sensor (e.g., an IR reader/Tasmota on your main meter). Positive values = import, negative = export.

2 Likes

Cool project, just shared in the German photovoltaik forum because there’s a lot of people looking for a real local SB4 usage…

Thank you, Lutz

Wow. Is this post really just an hour old? I had a specific question on the SOLIX 4 export setting and Copilot referenced this topic for realizing a zero export solution. That’s awesome. I‘ll definitely take a look at your blueprint once the SOLIX 4 is operational, thanks.

Hello, this seems like a nice project.
Got a question: I want the zero export but I got a second PV-Setup that I DO NOT WANT to be used for charging the Solix 4. The power from that setup is supposed to be sold.
When I use the zero export setting the Solix 4 always starts charging from the excess of the other system (smartmeter reads a feed to the grid).

I just want the Solix 4 to charge from theri own panels and take the homeload and not export anything and not charge from the other PV-Setup.

Is that something I could archive through HA?
Thanks!

Update: Added AC Charging Toggle & Connection Drop Failsafe!

I’ve just updated the blueprint with two major improvements based on testing and user feedback:

1. Optional AC Charging (Grid Surplus Charging) You can now easily enable or disable AC charging via a simple toggle.

  • Enabled (default): The battery charges using excess power from your house grid (e.g., from other PV inverters).

  • Disabled: The battery will only charge via its directly connected solar panels. Perfect for users with a feed-in tariff (FIT) who prefer to sell their house surplus to the grid.

2. Real-Power-Check (Connection Drop Failsafe) We discovered a critical edge case: If the Solix loses its Wi-Fi connection while discharging (e.g., at 150W during the night), it physically keeps discharging. When Home Assistant reconnects, the integration sometimes falsely resets the target slider to 0W. Because HA thinks the slider is already at 0W, it won’t send a stop command, potentially draining your battery below your min_soc.

  • The Fix: I added two new inputs for the actual physical charge/discharge power sensors. The script now cross-references the real hardware state. If the hardware is physically outputting power when it shouldn’t, HA forces a hard 0W reset command to stop it.

:counterclockwise_arrows_button: How to update: Click the import link again and choose “Overwrite” in Home Assistant.
Important: After updating, please open your existing automation, scroll down, and assign the two new entities for the physical power sensors (Solix - Echte Entladeleistung & Solix - Echte Ladeleistung), then hit save!

1 Like

And here is an English version of the blueprint:

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Let me know if you have any questions or feedback.

Hi, might this blueprint be adapted for an other AC battery device like the “Marstek Venus E” series? Is your blueprint “realtime” capable? If not, what is the time resolution?

Hi everyone,

I’m using the Anker SOLIX 4 E5000 Pro together with Home Assistant and the “Local Zero Export with Eco-Mode & Hardware Protection” blueprint.

First of all, thanks for the blueprint — the basic zero-export control is working very well.

I have encountered an issue when the battery reaches 100% SOC.

My setup:

  • Anker SOLIX Solarbank 4 E5000 Pro
  • Home Assistant
  • Anker control via the local integration
  • Tasmota SmartMeterReader connected to my electricity meter
  • The Tasmota SmartMeterReader provides the grid power measurement used by the Anker control
  • I also have a separate Growatt PV system
  • The Growatt inverter itself is not integrated into the Anker system
  • The Anker system detects the surplus from the Growatt PV system through the smart meter
  • Maximum Solarbank output is configured to 1500 W

The setup works as expected while the battery is charging.

However, once the Anker battery reaches 100% SOC, I have a problem.

The Growatt system will continue to export its surplus to the grid. That’s fine and I can live with that.

What I don’t want is the additional up to 1500 W from the Anker Solarbank to be exported to the grid as well.

I expected the blueprint to handle this situation by reducing the Solarbank PV/output power when the battery reaches the configured maximum SOC.

At the moment, however, I see:


SOC:                  100 %
Solarbank PV power:   1500 W
AC output:             1500 W
Grid export:           1500 W

The relevant Home Assistant entities are:


sensor.anker_solix_solarbank_4_e5000_pro_154_soc
→ 100 %

sensor.anker_solix_solarbank_4_e5000_pro_154_solarstrom
→ 1500 W

sensor.anker_solix_solarbank_4_e5000_pro_154_ac_ausgang
→ 1500 W

sensor.anker_solix_solarbank_4_e5000_pro_154_netzeinspeiseleistung
→ 1500 W

The power-control entity is:


number.anker_solix_solarbank_4_e5000_pro_154_leistungssteuerung

Its current attributes are:


max_power: 150 W
max_charge_power: 150 W
max_discharge_power: 1500 W
current_direction: charge

My question is:

Should the blueprint automatically reduce the Solarbank PV/output power to 0 W (or to the actual household demand) when the configured maximum SOC is reached?

If yes, could someone explain how this is supposed to work with the Solarbank 4 E5000 Pro and whether the current_direction / max_charge_power / max_discharge_power values could be related to the problem?

I can provide screenshots, the complete blueprint configuration and additional entity states/logs if needed.

Thanks!

Testing this blueprint finally. First thoughts after only using it for a couple of minutes:

:white_check_mark: 1. Execution interval

Wouldn’t it be smarter to decrease the time pattern? The Solix 4 modbus/hardware/integration are capable of 5 seconds. That way one can avoid larger amounts of wasted energy like…

platform: time_pattern
seconds: /30

Maybe make this a configuration option with selection scale from 5 to XXX seconds?
==> Update: Implemented this in my local copy of this blueprint.

  1. Add this
  input:
    trigger_interval:
      name: Ausführintervall
      description: Wie oft die Regelung ausgeführt werden soll.
      default: "/10"
      selector:
        select:
          options:
            - label: "5 Sekunden"
              value: "/5"
            - label: "10 Sekunden"
              value: "/10"
            - label: "15 Sekunden"
              value: "/15"
            - label: "20 Sekunden"
              value: "/20"
            - label: "25 Sekunden"
              value: "/25"
            - label: "30 Sekunden"
              value: "/30"
            - label: "40 Sekunden"
              value: "/40"
            - label: "50 Sekunden"
              value: "/50"
            - label: "60 Sekunden"
              value: "/60"
          mode: dropdown
  1. Replace
trigger:
- platform: time_pattern
  seconds: /30

with

trigger:
  - platform: time_pattern
    seconds: !input trigger_interval

:warning: 2. Documentation

Also I think I need a documentation on some (at best all) of the configuration options to actually understand their impact.

:warning: 3. Discharge protection setting

For this setting I don’t get the added benefit related to the default device (and integration controllable) settings “Emergency power SoC limit” (e. g. 20 %) and “Discharge SoC limit” (e. g. 0 %).
grafik
What’s the use-case for this blueprint/automation setting on top of these hardware configured limits then? Here I think number 2 would really help to avoid questions like these from users like me :slight_smile:

:warning: 4. Corner cases (device reboot, HA disconnect)

Is this blueprint covering these facts?

A couple of things to keep in mind:

:warning: 5. Max. charge/discharge power selector

Why are these 2 limited to 2.000 W at max? 2.500 W are able for the Solix 4 output/house input and - according to Anker app settings - 3.600 W for charging the battery with grid power. Is the current blueprint state intentional or is this a UI bug?

:warning: 6. No real zero export possible

Not because of the blueprint, but the entities provided by the Anker SOLIX Official integration: see [Feature]: Adjusting Max Power from Grid and Max Power to Grid · Issue #84 · anker-charging/ha-anker-solix-official · GitHub. Therefore it looks like a rather wrong “advertising” speaking of “local zero export”, isn’t it? I wonder how other users are running their Solix 4 locally in HA: once my battery is fully charged, all PV produced power always goes to the grid 100 % - and if my home does not consume that, it goes to the net. No zero export.