Überschußladung aus PV (SMA) für Tesla

Begonnen von CarlosTT, 16 März 2019, 11:21:19

Vorheriges Thema - Nächstes Thema

CarlosTT

Hallo,
die Codes sind nur für Nutzer interessant, die eine PV mit Wechselrichter von SMA betreiben und Tesla fahren (läßt sich natürlich auch für andere Kombinationen anpassen).

Hintergrund
Meine Wallboxanschaffung ist erst für später geplant. Daher habe ich mir angeschaut, was bereits an Modulen existiert, um einen Tesla gesteuert aufzuladen. Natürlich nur dann, wenn genügend Strom vom Dach meiner PV kommt.
Dabei ist das rausgekommen:

  • Überwacht, ob der Tesla in der Garage steht
  • Abhängig von der Leistung des SMA Wechselrichters wird die Ladung gestartet und gestoppt
Die Überwachung der Lokation ist notwendig, damit nicht beim Laden an anderen Ladestationen der Watchdog zuschlägt.
Gelöst habe ich das mit dummys und 3 DOIFs:

Voraussetzung
Die Module SMAInverter und TeslaConnection sind konfiguriert und funktionieren!
Der SMA Inverter heißt bei mir STP_20000 und der Tesla hat halt seine VIN 5YJ3E7EB1KF207.... .

Zuerst einen dummy StatusCharging für den Zustand, ob geladen wird:


defmod Charging dummy
attr Charging icon flux
attr Charging room Tesla
attr Charging setList on off
attr Charging webCmd on:off


Dann den dummy TeslaAtHome für den Status, ob der Tesla in der heimischen Garage steht:

defmod TeslaAtHome dummy
attr TeslaAtHome devStateIcon on:fts_garage off:fts_garage_door_10
attr TeslaAtHome room Tesla
attr TeslaAtHome setList on off
attr TeslaAtHome webCmd on:off


Ein dummy PVLimit für das Ladelimit:
Beispiele: der 16A CEE blau läd mit maximal 3,7 kW, Schuko mit 1,8kW ... + die Last der anderen Verbraucher im Haus/Puffer.
Ich habe aktuell 5,7kW eingestellt.

defmod PvLimit dummy
attr PvLimit room Tesla

setstate PvLimit 5.7


Nun werden 2 DOIFs definiert, für den Ladestatus
defmod StatusCharging DOIF ([5YJ3E7EB1KF20....:charging_state] eq "Charging") \
(set Charging on) \
DOELSE \
(set Charging off)
attr StatusCharging cmdState on|off
attr StatusCharging devStateIcon on:taster_ch_an_gruen off:taster_ch_aus_rot
attr StatusCharging room Tesla


und für den Ladestart/stop:
defmod StartCharging DOIF ( [STP_20000:total_pac] > [PvLimit] )\
  (set 5YJ3E7EB1KF20.... startCharging) \
DOELSE\
  (set 5YJ3E7EB1KF20.... stopCharging)\

attr StartCharging cmdpause 300
attr StartCharging disable 0
attr StartCharging room System,Tesla


Dann noch einen Watchdog für die Überwachung des Standorts:

defmod HomeFencingTesla DOIF ([5YJ3E7EB1KF207647:native_latitude] > 50.xxx and \
[5YJ3E7EB1KF207647:native_latitude] < 50.xxy and\
[5YJ3E7EB1KF207647:native_longitude] > 7.xxx and\
[5YJ3E7EB1KF207647:native_longitude] < 7.xxy\
)\
   ( set TeslaAtHome on)\
   ( set StartCharging enable)\
   ( set WatchDogCharging enable) \
DOELSE \
   ( set TeslaAtHome off)\
   ( set StartCharging disable)\
   ( set WatchDogCharging disable)
attr HomeFencingTesla room Tesla


Die xxx und xxy mit den eigenen Werten ersetzen (bekommt man über die Logs des Tesla).
Funktioniert bis jetzt bei mir ganz gut.
Ich bin überzeugt, man kann dies auch mit verschachtelten DOIFs oder einer Kombination von DOIF und Ifs erreichen, aber so hat man volle Transparenz (und kann zusätzlich die Status auch mitloggen).

Nachteil

Will man kurzfristig dann doch aus dem Netz laden, muß man manuell die DOIFs HomeFencingTesla und WathcDogCharging disablen.

Verbesserungen

  • Ladestop bei erreichtem SoC des Tesla (mache ich über das Auto)
  • Ladung in Abhängigkeit vom SoC des Hausakku.

Hinweis
Beim Tesla darf kein zeitgesteuertes Laden eingerichtet sein. Dann läuft der Charge Befehl ins Leere.

Vile Spaß beim Nachbauen!

Black7king

Also Vielen herzlichen Dank erst mal dafür sieht sehr gut aus. Wird Gleich getestet!

Hast du auch schon daran gedacht bzw. aus probiert nicht nur wenn genug Überschuss vorhanden ist (Start/Stopp).
Sondern je nach Menge des Überschusses der PV-Anlage die Ladeleistung zu steuern?

Bei Uns sieht es Aktuell so aus Wir haben zwei EVs (bald 3:-) eines davon ein Tesla und aber zwei TWC mit RasPi und TWC-Manger drauf.
Bin gerade dabei zu versuchen die Überschuss Menge auf den Besetzten (angeschlossen) TWC zu verteilen.

Und eine Hardware Taster neben den TWC dafür zu nutzen wenn mal egal mit welcher PV Leistung Volle Power zuladen.

CarlosTT

Aktuell gibt die API von Tesla ja keine Steuerung des Ladestroms her (also nur an / aus). Aktuell macht das bei mir nix, da ich eh mit dem UMC (3,7 kW) lade.

Wenn ich mir dann (irgendwann) eine steuerbare Wallbox zulege, kann man das besser steuern.
Was ich noch überlege, ob ich die Ladung in Abhängigkeit vom SoC des Hausakku priorisiere. Der Akku im Haus sollte zuerst vollgemacht werden, da ich noch keine so hohe Fahrleistung mit dem Modell 3 habe.
An Optimierung teste ich noch unterschiedliche Start/Stop Bedingungen. So wäre es praktischer, wenn zwar der Ladevorgang sofort startet, aber der Ladestop erst verzögert gesendet wird (könnte mit den Attributen cmdpause oder waitxxx klappen).
Dann wird evtl. zwar auch aus dem Hausakku in den Tesla geladen (was aufgrund der Kumulation der Ladeverluste dann kompletter Unfug ist), aber für ein paar Minuten würde das ja nicht stören.
Nach meinen ersten Versuchen mit DOIF bin ich aber mit Änderungen vorsichtig geworden - so hab ich verschachtelte DOIFs oder Kombinationen mit DOIF und if nicht stabil hinbekommen.
Andererseits gefällt mir die aktuelle Lösung, da man auf einem Blick sieht, was gerade passiert.