Tesla Überschussladen mit Home-Assistant
Mein Tesla Überschussladen habe ich mit Home-Assistant realisiert, das ermöglicht auch einfachen Wallboxen diese Nutzung.
Wir haben seit ein paar Wochen eine Photovoltaikanlage und natürlich möchten wir mit unserem Tesla Überschussladen realisieren. Die verkaufte kWh bringt nicht wirklich viel ein, sodass ich den Strom lieber ins Auto packe. Da Tesla eine gute API anbietet und mit Home-Assistant schon eine Software vorhanden ist, die viele Dinge steuern kann, wollte ich beides zusammenbringen um dieses Vorhaben zu realisieren.
Warum Home-Assistant zum Tesla Überschussladen?
Natürlich fragt sich der geneigte Leser jetzt warum ich nicht einfach eine Wallbox gekauft habe die das schon von sich aus mitbringt? Wir haben damals eine Mennekes Amtron Compact gekauft welche recht günstig war. Erst im letzten Jahr ist die Auswahl an Wallboxen wirklich groß geworden und die Auswahl an intelligenten Wallboxen hat zugenommen. Zudem hatten wir zum damaligen Zeitpunkt noch eine andere Dachkonstruktion die eine PV-Anlage nicht möglich machten. Das „Schicksal“ nötigte uns allerdings zu einer Dachsanierung und somit wurde natürlich auch recht zeitnah (was man bei den derzeitigen Lieferschwierigkeiten nicht sagen kann) eine Solaranlage angeschafft und installiert.
Voraussetzungen
Um ein Überschussladen überhaupt zu ermöglichen sollten natürlich die Komponenten der PV-Anlage wie Wechselrichter (und Batterie) in Home-Assistant eingebunden werden. Bei unserem Kostal Plenticore mache ich das via Integration. Hierzu muss nur der Modbus im Plenticore aktiviert werden und schon kann Home-Assistant darauf zugreifen. Grundsätzlich wird aber nur die Gesamtleistung sowie ggf. der Batterieladestatus benötigt. Sollte man keine Batterie haben, müssen die Automatisierungen dann nur entsprechend angepasst werden.
Zudem muss die Tesla Integration installiert werden. Home-Assistant bringt diese nicht mehr von Haus aus mit. Via HACS lässt diese sich aber problemlos installieren. Bitte bedenkt das ein Zugriff auf die Tesla API nur noch mittels Tokens und nicht mehr mit Benutzername und Passwort möglich ist. Das ist eine Restriktion seitens Tesla.
Setup in Home-Assistant
Sensor
Die Tesla API erlaubt es die Stromstärke der Ladung feiner zu justieren als das in der App möglich ist. In dieser ist bei 5 A Schluss. Via API kann man das allerdings kleiner definieren. Allerdings dann in Umrechnung auf km/h-Ladeleistung. Entsprechend brauchen wir ein Sensor der die Wattzahl in Tesla-Ladestärke umrechnet
sensor:
- platform: template
sensors:
tesla_max_charge:
unit_of_measurement: A
value_template:
Aus diversen Gründen arbeite ich noch mit einem Zwischensensor der sensor.pv_prod_ges errechnet. Dieser symbolisiert nur die aktuell produzierte Leistung in Watt. Davon ziehe ich die derzeitige Ladeleistung zur Batterie ab, subtrahiere noch 500 W Puffer fürs Haus (hier kann man natürlich auch den realen Wert als Sensor verwenden) und Multipliziere das mit 0,0014 um die km/h-Ladestärke zu bekommen.
Automatisierung
Ich verwende mehrere Automatisierungen. Die erste startet den Ladevorgang wenn die Batterie mehr als 90 % SoC über 20 Sekunden hat. Natürlich kann man auch sagen, sobald ins Netz eingespeist wird oder ähnliches. Da ist man natürlich nicht festgelegt. Die Automatisierung startet nur wenn das Auto zuhause und angesteckt ist, aber keine Ladung initiiert wurde (z. B. am Auto oder in der App).
automation:
- id: 'Tesla001'
alias: Tesla - Start charging above 2 kW power to grid
trigger:
- platform: numeric_state
entity_id: sensor.pv_wr_pc_battery_soc
above: '90'
for: 00:00:20
condition:
- condition: and
conditions:
- condition: state
entity_id: device_tracker.tesla_location_tracker
state: home
- condition: state
entity_id: binary_sensor.tesla_charger_sensor
state: 'on'
- condition: state
entity_id: switch.tesla_charger_switch
state: 'off'
action:
- service: switch.turn_on
target:
entity_id: switch.tesla_charger_switch
mode: single
Nun fängt das Auto an zu laden. Allerdings mit maximaler bzw. Vorangestellter Geschwindigkeit. Im Regelfall 16 A bzw. dann 11 kW. Für meine 9,6 kWp Anlage natürlich zu viel. also müssen wir den maximalen Ladestrom drosseln. Das allerdings muss häufig angepasst werden. Dafür gibt es die zweite Automatisierung
- alias: Adjust charging speed
trigger:
- platform: time_pattern
minutes: '/1'
seconds: 00
condition:
- condition: and
conditions:
- condition: state
entity_id: switch.tesla_charger_switch
state: 'on'
- condition: state
entity_id: device_tracker.tesla_location_tracker
state: home
- condition: state
entity_id: switch.tesla_maxrange_switch
state: 'off'
action:
service: script.adjust_tesla_charging
Diese schaut jede Minute (du kannst das natürlich auch feiner justieren) ob das Auto daheim ist, das Auto lädt und nicht der Max Range Switch aktiviert wurde. Sollten die Bedingungen passen, wird ein Script ausgeführt.
Als nächste Automatisierung brauchen wir noch etwas das die Ladung stoppt. Sonst würde ja weiter geladen werden obwohl die Sonne schon längst weg ist, oder die Batterie unter einen gewünschten State of Charge fällt. Je nach Wunsch…
- id: 'Tesla002'
alias: Tesla - Stop charging if solar generation is below 1 kW
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.pv_prod_ges
below: '1000'
for: 00:01:00
condition:
- condition: and
conditions:
- condition: state
entity_id: device_tracker.tesla_location_tracker
state: home
- condition: numeric_state
entity_id: sensor.tesla_charging_rate_sensor
above: '2'
- condition: not
conditions:
- condition: state
entity_id: switch.tesla_maxrange_switch
state: 'on'
action:
- service: switch.turn_off
target:
entity_id: switch.tesla_charger_switch
mode: single
In meiner dritten Automatisierung schauen wir ob die produzierte Strommenge unter 1 kW fällt. Den Wert habe ich mir einfach so ausgesucht. Zumal es dann noch reicht um meine Batterie noch weiter zu füllen bzw. das der Hausverbrauch nicht an die Batterie muss. Natürlich wird diese Automatisierung auch nur dann getriggert wenn wir zuhause laden.
Die letzte Automatisierung zielt auf den SoC der Batterie der PV-Anlage ab
- id: 'Tesla003'
alias: Tesla - Stop charging if solar battery is under 90 %
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.pv_wr_pc_battery_soc
below: '90'
condition:
- condition: and
conditions:
- condition: state
entity_id: device_tracker.tesla_location_tracker
state: home
- condition: not
conditions:
- condition: state
entity_id: switch.tesla_maxrange_switch
state: 'on'
action:
- service: switch.turn_off
target:
entity_id: switch.tesla_charger_switch
mode: single
Wir stoppen also die Ladung wenn der State of Charge der PV-Battarie unter 90 % fällt.
Script
Du hast dich sicherlich schon gefragt was für ein Script in der zweiten Automatisierung benutzt wird. Dazu kommen wir jetzt. Dieses Script habe ich durch das Home-Assistant Forum gefunden und ist eigentlich die ganze Intelligenz. Dieses regelt die eigentliche Ladeleistung des Teslas.
script:
'adjust_tesla_charging':
alias: Charge tesla
sequence:
- service: tesla_custom.api
data:
command: CHARGING_AMPS
parameters:
path_vars:
vehicle_id: ''
charging_amps: ''
mode: single
Das alles im Zusammenspiel lässt das Auto sauber mit dem überschüssigen Strom laden sobald die Batterie voll ist. Ohne Batterie kann man das natürlich viel früher starten lassen. Ich habe dieses Script und die Automatisierungen jetzt seit knapp vier Wochen aktiv und es funktioniert wirklich gut. Auch wenn die Sonne noch nicht die Kraft hat viel Leistung zu erbringen reicht es jetzt im Winter schon um 30 – 40 % der Autobattarie mit dem Tesla Überschussladen zu betanken. Mit größerer Anlage oder später im Jahr wird sicherlich mehr möglich sein.
Hier sieht man an den zwei gelben Balken schön, dass viel Strom direkt für das Tesla Überschussladen verbraucht wurde.