PV Surplus Charging with the go-eCharger
February 17, 2026 · View on GitHub

Enable PV Surplus Charging via HA automation
When you use this integration, you do not need the additional hardware (go-eController) in order to allow PV surplus charging. The only thing that is required is to add a Home Assistant automation fetching the data from your grid & solar power entities and provide this data to a service of this integration.
If you are not familiar with 'creating an automation in Home Assistant', then you might like to start with a tutorial explaining the basics of automation in HA.
Note
only the pgrid value is required — the other two fields ppv & pakku are just optional.
Note
The goeCharger will drop the stored data after 5 seconds — so if the automation is not running/sending data every five seconds (or faster) to the wallbox the 'PV Surplus Charging' is not going to work!
Important
When you are using the Cloud/WAN connection to communicate with your go-eCharger, then the service of this integration will additionally check if the go-eCharger is connected with a vehicle (API-key car). If this is not the case, the data will not be submitted to the cloud (to reduce the load of the cloud service).
Do not forget this important setting
Once you have enabled the automation, you also need to:
- Select the 'logic mode': 'Awattar [Eco]' [API-Key 'lmo']
[Logik/Modus: ECO-Modus] - enable the 'Use PV surplus' [API-Key 'fup']
[Mit PV-Überschuss laden] - enable the 'Allow Charge Pause (car compatibility)' [API-Key 'acp']
[Ladepausen zulassen (Fahrzeug Kompatibilität)] - double check in the PV surplus settings, that you have selected:
- Power preference: Prefer power to grid
- you have a negative Grid Target value (e.g. -500W)
in the setting of your go-eCharger — (this can be done via the integration)
Please note: in order to be able to enable 'Use PV surplus' in the go-eCharger Application you must also configure the "Flexibler Energietarif" [specify "Preisgrenze", "Country", "Anbieter", "Tarif" and so on] even though the "Flexibler Energietarif" switch is "OFF" Probably a bug in the go-echarger software?
Service fields explained
pgrid [required]
The power in WATT you're currently consuming from the grid (positive value) or you are exporting to the grid (negative value). So when pgrid value is negative, the go-eCharger have the information that there is power available that can be used to charge your car.
So once the value is negative, the go-eCharger might use the available power to start charging your car (instead of exporting power to the grid).
ppv [optional]
The power in WATT your PV system currently generating — this value must be positive.
pakku [optional]
The power in WATT your home-battery currently providing (positive — discharge — power from the battery to your home) or consuming (negative — charge — power form grid/PV to your battery).
With other words, pAkku is expected to be negative when the home battery is charging (consume power) and positive when it's currently discharging (provide power).
Blueprint for PV Surplus Charging
This repository includes a ready-to-use Home Assistant blueprint that automates PV surplus charging setup.
Features
- Supports multiple grid measurement methods (single entity, consumption + feed-in, 3-phase)
- Automatic summation of multiple PV/battery entities
- Organized input sections with clear descriptions
- Value inversion options for different inverter conventions
Quick Setup
- Import blueprint:
- Create automation from blueprint
- Configure your PV entities
- Enable ECO mode on go-eCharger
For detailed configuration instructions, see Blueprint Documentation.
Manual PV Setup
If you prefer manual automation setup, use this basic example:
Example automation
Sending the information about PV Surplus is only relevant when a vehicle is connected to the wallbox. Therefore, any automation should contain the condition if there is a vehicle connected to the wallbox. This can be done via the binary_sensor.goe_012345_car_0 sensor. (replace the 012345 with your serial number).
Please note that this example is for a for SENEC.Home System — if you are using 'my' SENEC.Home Integration, you can use the code below 1:1 — in any other case: You must adjust/replace the sensor identifiers!!!. So if you are not a SENEC.Home user, please replace the following:
-
sensor.senec_grid_state_powerwith the entity that provides the information in WATT you're currently consuming from the grid (positive value), or you are exporting to the grid (negative value). Once the value is negative, the go-eCharger might use the available power to start charging your car. -
sensor.senec_solar_generated_powerwith the entity that provided the total power generation by your PV (in WATT) -
sensor.senec_battery_state_powerwith the entity that provided the power in WATT currently will be used to charge an additional battery (negative value) or will be consumed from the battery (positive value).
alias: go-e PV surplus charging brigde
description: >-
Simple automation to provide your go-eChargers with the required data so that the wallbox can support PV surplus charging.
trigger:
- platform: time_pattern
seconds: /5
conditions:
- condition: and
conditions:
- condition: template
value_template: "{{states('binary_sensor.goe_123456_car_0')=='on'}}"
- condition: sun
after: sunrise
- condition: sun
before: sunset
action:
- service: goecharger_api2.set_pv_data
data:
pgrid: "{{states('sensor.senec_grid_state_power')}}"
ppv: "{{states('sensor.senec_solar_generated_power')}}"
pakku: "{{states('sensor.senec_battery_state_power')}}"
mode: single
In case when your pgrid (or pakku) value provided by the sensor needs to be inverted
In some cases (when using other solar system integrations) you might run into the situation that the pgrid sensor value is positive when you are exporting power to the grid (and negative when you import power from the grid). In this case, you need to invert the value of your grid sensor. In HA this can be done very easily via the so-called 'pipe' functionality inside templates.
Here is a simple example (just inserted a | float * -1) — which takes the sensor value and convert it to a floating point number (from a string) and then multiply it with -1)
action:
- service: goecharger_api2.set_pv_data
data:
pgrid: "{{states('sensor.other_grid_state_power')|float*-1}}"
...
Having multiple go-eChargers in your HA installation?
When you have more than one go-eCharger in your HA installation, you must provide an additional attribute configid in order to let the service know which charger should be used! This configid is the ConfigEntryId of the Integration for your multiple chargers and can look like this 01J4GR20JPFQ7M888Q4C9YAR31.
The simple way to find the corresponding ConfigEntryId's of your multiple configured go-eCharger integrations is by using the GUI of the Service, activate the optional selection field, select the charger and then switch (from GUI) to YAML-Mode mode — this will show you the configid you must use. [See this image for details]
action:
- service: goecharger_api2.set_pv_data
data:
configid: 01J4GR20JPFQ7M888Q4C9YAR31
...
Please note that this is only required if you have multiple go-eChargers configured via this integration your HA installation.
Finally: Verify if the wallbox receives your data from the automation
After you have your automation up and running, you might want to verify that everything is correctly connected.
When you use the Cloud/WAN connection, make sure that the wallbox is connected with a vehicle, since only then the integraion will send the pv-data will to the cloud.
Via Integration sensors
Search for the Integration Sensors _pgrid, _ppv & _pakku and check the values — or check the pvopt_average sensors for the current calculating average values.
Via direct accessing the API (via browser)
Replace in the URLs the [wallbox-ip] with the ip-address or hostname of your go-eCharger.
http://[wallbox-ip]/api/status?filter=pakku,ppv,pgrid
Please note that the wallbox drops the stored data after 5 seconds — so if the automation is not running/sending data to the wallbox these values become 'null'.
So you might like to check the average values (to verify if the wallbox received in the recent past some data):
http://[wallbox-ip]/api/status?filter=pvopt_averagePAkku,pvopt_averagePGrid,pvopt_averagePPv
Optional — Force stop charging when PV power is too low
Unfortunately, it might happen [reported by a user] that the go-eCharger does not finish charging in ECO mode using the PV power (in a timely manner). If you run into the same situation, then you can ensure that charging stops when there is no longer enough PV power, by adding the following automation:
You need to adjust the entity ids: switch.goe_012345_fup, sensor.goe_012345_nrg_11 and sensor.goe_012345_pvopt_averagepgrid (replace the 012345 with your serial number) and your preferred threshold when this automation should be executed (the above: -200 for the pvopt_averagepgrid means, that as soon as the average power you export to the grid is less than 200 watt the automation will be triggered).
alias: go-e FORCE STOP of PV surplus charging
description: >-
Simple automation to ensure that the go-eCharger will stop charging when average PV will drop below given threshold
trigger:
- platform: time_pattern
seconds: /5
condition:
- condition: state
entity_id: switch.goe_012345_fup
state: "on"
- condition: numeric_state
entity_id: sensor.goe_012345_nrg_11
above: 200
- condition: numeric_state
entity_id: sensor.goe_012345_pvopt_averagepgrid
above: -200
action:
- service: goecharger_api2.stop_charging
mode: single