[Blueprint] Solakon ONE Zero Export Control ⚡ (Dynamic Nulleinspeisung/Zero Export with SOC Logic)

Hello everyone!

I’m excited to share my latest Home Assistant Blueprint for users of the Solakon ONE inverter. This Blueprint implements a highly accurate and intelligent dynamic zero export solution. It’s designed to maximize your self-consumption while protecting your battery health through a unique three-tiered State-of-Charge (SOC) logic based on a Proportional Controller (P-Regulator). Say goodbye to unwanted grid feed-in and optimize your energy usage!


:zap: Solakon ONE Zero Export Blueprint

This Home Assistant Blueprint implements dynamic zero export for the Solakon ONE inverter, based on a Proportional Controller (P-Regulator) and an intelligent three-tiered State-of-Charge (SOC) logic.

:link: Blueprint Download & Source

Download via My Home Assistant:
Open your Home Assistant instance and show the blueprint import dialog with a pre-filled URL.

GitHub Source Link (YAML):
https://github.com/D4nte85/Solakon-One-Nulleinspeisung-Blueprint-homeassistant/blob/Solakon-ONE-Zero-Export/solakon_one_zeroexport.yaml


:rocket: Installation & Preparation

:warning: Important Note on Variables (For Developers)

As an important note for other users and Blueprint developers: the variable declarations within this blueprint use the only reliably working method for Blueprints in Home Assistant to prevent errors.

:hammer_and_wrench: Preparation: Creating the Input Select Helper

The Blueprint requires an Input Select helper to store the status of the discharge cycle.

  1. In Home Assistant, navigate to SettingsDevices & ServicesHelpers.
  2. Click Create Helper.
  3. Select the type Dropdown (Input Select).
  4. Enter a name, e.g., SOC Discharge Cycle Status.
  5. Under Options, add exactly these two values:
    • on
    • off
  6. Save the helper. The resulting entity (e.g., input_select.soc_discharge_cycle_status) must then be selected in the Blueprint under Discharge Cycle Status Storage.

:bulb: Functionality: Dynamic Zero Export with SOC Zone Logic (Solakon ONE) :battery:

This Home Assistant Blueprint dynamically regulates the AC Output Power Limit of the Solakon ONE inverter to achieve zero export :zap: while efficiently managing the battery via an intelligent three-stage State of Charge (SOC) logic.


:brain: 1. Proportional Controller (P-Controller)

The core of the control system is a P-Controller that operates based on the Grid Power Sensor (e.g., Shelly 3EM).

  • Measurement Principle: The grid power serves as the control deviation.
  • Correction: The controller adjusts the Solakon ONE’s output power:
    • Positive Grid Power (Consumption): :chart_with_upwards_trend: Increase Solakon ONE output power.
    • Negative Grid Power (Export): :chart_with_downwards_trend: Decrease Solakon ONE output power.
  • Control: The speed (aggressiveness) of the correction is controlled via the Adjustment Factor (anpassungs_faktor). The output power is always capped at a maximum value (max_active_power_limit) and a minimum of 0 W.

:battery: Three-Stage SOC Zone Logic

The control is divided into three operating modes based on the current SOC:

Zone SOC Range Mode Goal & Control
1. Fast Discharge SOC > Upper Threshold (e.g., 50%) INV Discharge (PV Priority) Aggressive P-Control with a 0 W offset for exact zero export. An active discharge cycle helper maintains this state until the lower threshold is undershot.
2. Battery Conservation Lower Threshold (e.g., 20%) < SOC $\le$ Upper Threshold INV Discharge (PV Priority) Active P-Control to maintain a negative zero-point offset (e.g., -30 W) to enforce slight grid import. Discharge power is additionally limited by a dynamic upper limit (PV generation minus PV charge reserve) to prioritize battery charging.
3. Safety Stop SOC $\le$ Lower Threshold (e.g., 20%) Disabled Output power is immediately set to 0 W to protect the battery. The discharge cycle is ended.

:stopwatch: Remote Timeout Reset

To prevent an unintentional switch to Disabled mode due to a timeout, the Solakon ONE’s internal Remote Timeout Timer is proactively reset to a high value (≈ 3600 s) in the active control zones (1 and 2) as soon as it drops below 120 s.


:vertical_traffic_light: Trigger Conditions (Automation Triggers)

The core logic of this zero-export Blueprint is activated by the following five critical events, ensuring immediate and stable regulation of the Solakon ONE:

  1. Power Changes (with 3s Delay):

    • Any state change of the Grid Power Sensor (shelly_grid_power_sensor) for 3 or more seconds.
    • Any state change of the Solar Power Sensor (solakon_solar_power_sensor) for 3 or more seconds.
    • (This stabilizes the Proportional-Controller (P-Controller) against measurement spikes.)
  2. SOC Threshold Reached:

    • The Battery SOC (solakon_soc_sensor) goes above the Upper Limit (soc_fast_limit). (Triggers the aggressive discharge cycle.)
    • The Battery SOC goes below the Lower Limit (soc_conservation_limit). (Triggers the safety stop and disables discharge.)
  3. Mode Change:

    • Any state change of the Operating Mode Selector (solakon_mode_select).
    • (Ensures the automation reacts to external or manual changes to the inverter mode.)

:gear: Input Variables and Default Entities

:electric_plug: Required Entities (Solakon ONE & Shelly/Smart Meter)

Variable Default Entity Description
Shelly/Grid Power Sensor (No Default) Sensor for current grid power. Positive values = Consumption, Negative values = Export.
Solakon ONE - Solar Power sensor.solakon_one_pv_power Current PV generation in Watts.
Solakon ONE - Battery SOC sensor.solakon_one_battery_soc Battery State of Charge (%)
Solakon ONE - Output Power Controller number.solakon_one_remote_active_power The entity to set the power target value.
Solakon ONE - Operating Mode Selection select.solakon_one_remote_mode The entity to switch the operating mode.
Mode Reset Timer Entity (Setter) number.solakon_one_remote_timeout_control Used to set/reset the remote timeout (to 3599 s).
Remote Timeout Countdown Sensor (Reader) sensor.solakon_one_remote_timeout_countdown Sensor displaying the remaining timeout countdown.
Discharge Cycle Status Storage (See above) The created Input Select helper (on/off).

:level_slider: Configuration Parameters (Setting Values)

Parameter Default Value Description
SOC Threshold “Fast Control” 50 % Upper threshold. Exceeding this starts the aggressive discharge cycle (Zone 1).
SOC Threshold “Charge Priority” 20 % Lower threshold. Falling below this stops discharge (Zone 3).
Tolerance Range (Half-Width) 50 W The allowed range in Watts around the zero point before correction.
Adjustment Factor 1.5 Defines the aggressiveness of the P-Regulator in Zone 1.
Zero-Point Offset -30 W The target value for grid power in Zone 2 (battery conservation). Negative value forces slight grid consumption.
:battery: PV Charge Reserve 15 W PV power reserved in Zone 2 to allow battery charging despite discharge.
Maximum Output Power (Hard Limit) 800 W The absolute maximum AC output power that the Blueprint is allowed to set. This is used to respect hardware limits and allows for additional throttling of power (e.g., to 600 W), even if the device is technically capable of more.

Feel free to ask any questions in the comments below! Happy automating!

1 Like

Great to see this blueprint! My Solakon One is arriving next week.
Could you give me an example of how it works in connection with the blueprint? And how does the official app come into play?

You dont need the app, this blueprint uses the official experimental custom integration wich uses modbus tcp, wich means it runs local
Solakon links to that integration

It exports pv without touching the batterie in a defineable window (soc-based) and realises a zero export funktionality maintained across all work modes more or less stringent, wich you can adjust…

Below that window is a safe zone, like a minimum soc you want to keep.
If you enter above a discharge cycle begins (zone1) until you hit the minimum soc again

i updated the readme and the first post, hope that helps explain the funktionality better

So, pretty much written by an AI like the post here? It looks like it has taken credit for writing it anyway.
This part is weird:

  author: AI-Assistent

Anyway if it is AI written, I hope you can support it when it breaks…

1 Like

yeah gemini did the coding
you try writing code with ai…
you still need to understand what you want to do, what the ai should do, wich errors it made, wich assumtions it made while coding and read everything at least twice to find every little idiotic little error the ai makes… there is a reason this is version 115…

the reason i did that is yaml-coding sux and i reaaaaly dont want to learn all its pitfalls,this way i dont have to

i’m using this blueprint myself, it is primarily for myself… i will try to update it if necessary and fix bugs if someone encounters any…

wich shouldnt happen that often blueprints dont break that often… the environmment would have to change, most likely the solakon one integration…

well there is the main reason this is a blueprint… if the sensors dont just disapear it shouldnt really break much…

anyway, yes its ai… so what? why is that weird to you? that i dont lie?
sometimes i dont get what peoples problem is :wink: