ich brauche Eure Schwarm-Intelligenz um eine passende SolarStrom-ÜberschussLadung in HomeAssistant umsetzen zu können.
Als Grundlage habe ich derzeit lediglich
eine kleine 2,6KW SolarAnlage
Shelly 3EM am Hausanschluss
und Shelly 2.5 an den Wechselrichtern zum Messen des Solarertrages
keine steuerbare Wallbox sondern CEE-Dose mit UMC1
Mein aktueller Versuch liest den aktuellen Hausverbrauch aus. Wenn hier ein Überschuss von 300W anfällt wird der Tesla geweckt und das Laden beginnt mit 1A. Wenn dann wieder ein Überschuss festgestllt wird, wird die Laderate weiter erhöht. und wenn zuviel verbraucht wird erfolgt stufenweise das Herunterskalieren.
Wobei ich aber derzeit noch Probleme habe ist das korrekte Aufwecken des Tesla und auch der Start.
Das Event <-300w wird ab und zu nicht korrekt erkannt und auch das Setzen der Laderate per API scheint mal zu klappen und auch mal nicht.
Also wie habt ihr das ganze umgesetzt? Vielleicht finden wir zusammen eine passende Lösung.
Und ja die Lösungen im Iobroker, NodeRed, TeslaSolarCharger, evcc, teqqy und und und sind mir bekannt, haben aber auch die eine oder andere Unzulänglichkeit. Daher der Versuch es im Homeassistant direkt umzusetzen
Ähnliche Ausgangssituation, PVA mit 10 kW, allerdings Tesla Gen3.
Suche ebenfalls Möglichkeiten des Überschussladens, da völlig untalentiert was basteln u/o programmieren betrifft, am besten als „von der Stange Lösung“ oder viel Unterstützung.
Meines Wissens kann der Tesla nicht unter 6 A laden, wenn die Begrenzung von der Wallbox kommt. Außerdem ist der Ladewirkungsgrad schlecht, da der Tesla etwa 300 W Basisverbrauch hat, wenn er wach ist und lädt. Daher wird „Überschuss“-Laden bei nur 2,6 kWp schwierig, denn da dürfte nur selten mehr als 1 kW übrig bleiben…
Habe jetzt übergangsweise die clever-pv Lösung, die hier echt super läuft.
Nachteil:
Die Updates des PV-Überschußes wird nur einmal die Minute gesendet. Das kommt aber vom Smartmeter, der online abgefragt wird.
Vorteil:
Extrem einfacher Aufbau. Geräte anmelden und fertig. Super Grafik und versteht jeder in der Familie. Dann noch Shelly nachgekauft und die gehen auch super.
Würde mir eine Lösung und Anbindung an KNX (smarthome) wünschen, muss das nur selber bauen und das kostet halt viel Zeit. Als einfache Lösung, der beste Weg. Keine zusätzliche Hardware nötig ausser einem kompatiblen Smartmeter vom Netzversorger.
Die Webseite auf dem Handy öffnen und dann als Link auf dem Homescreen ablegen. Fertig.
Clever-pv ist da so schön einfach und smart. Nur die eine Minute muss man halt schlucken.
dann versuche ich mal meine derzeitigen Ideen hier zusammenzufassen:
in der Configuration.yaml einige neue Sensoren anlegen
–einen Sensor der mir den aktuellen Stromverbrauch anhand der einzelnen Phasen zusammenrechnet; dieser wird negativ wenn mehr Solarstrom als Verbrauch anfällt
– und zwei weitere welche mir einen Durchschnittswert über die letzten 5 Minuten und letzten 30 Sekunden ermittelt
Klingt ganz gut und ich schaue mir den Code in Ruhe an.
Ich fange gerade an mit HA und habe Shelly 3EM (Total Stromzähler), Easee Wallbox und SolarEdge PV Anlage. Die Wechselrichterdaten kann ich noch nicht nutzen da der Modebus fehlt, die Freischaltung kann nur durch die PV Firma erfolgen und die sind eigentlich nicht zu erreichen vor Aufträgen. Ich kann also negative Werte auslesen über die Shelly und die Easee starten. Es sollte doch eine Automatisierungsregel in HA reichen? Bekomme ich aber noch nicht hin.
War aus Zeitgründen bisher faul und habe auch clever-pv genutzt. Jetzt habe ich aber gestern (12.02) eine Mail bekommen, dass es ab morgen (14.02.) Geld kostet. Da ich diese Umstellung ohne Vorwarnung das Allerletzte finde und die Schaltzeiten auch oft sehr langsam sind, überlege ich mir nun doch meinen momentan ungenutzten Raspberry zu reaktivieren.
aktuell habe ich einige Probleme mit der Verwendung des Tesla-Addons in Homeassistant. Dieser zeigt regelmässig alte Werte an oder nach einem Update kommen gar keine Werte mehr herein.
Ich plane derzeit eine Umstellung auf TeslaMate per MQTT, was glaube ich besser laufen wird.
Eine gute Seite ist direkt bei TEslamate zu finden:
wer also auch Probleme hat kann sich das auch einmal anschauen
Habe auch eine kleine 1,6 kWp-Anlage. Den Überschuss würde ich gerne nutzen anstatt ihn zu verschenken (da kein Speicher).
Habe mal mit Scan My Tesla geschaut, was im Akku ankommt wenn ich dreiphasig mit 1A (700 Watt) lade:
Ist meist so knapp bei 350 - 400 Watt, also tatsächlich so 300 - 350 Watt Verluste. Wenn die aber sonst ins Netz gehen würden, ist mir das ehrlichgesagt egal.
2A sprengt leider meinen Überschuss meistens wegen 1,4 kW.
Was aber noch gehen würde wäre einphasiges laden. Hier scheint das Minimum auch via API bei 5A zu liegen (1,2 kW).
Kann das jemand bestätigen?
Das lässt mir effektiv die Möglichkeit entweder dreiphasig mit 1A zu laden (700 Watt) oder einphasig mit 5A (1,2 kW).
Ansonsten mach ich mich jetzt ans Überschussladen mit Home Assistant.
Hab es jetzt auch hinbekommen. Läuft super. Lade ausschließlich einphasig. HA stellt meine Easee automatisch auf max 6A/einphasig ein. Geregelt wird über Tesla, da man in der Easee leider nix unter 6A einstellen kann. Mehr als 5A einphasig macht mit meiner kleinen Anlage keinen Sinn.
1A macht halt keinen Sinn, weil im Akku nix ankommt, aber ab 2A kann man’s laufen lassen. Bei mir bewegt es sich die meiste Zeit zwischen 3A und 5A.
Bis zu 6 kWh kommen da täglich zusammen. Immerhin. Besser als verschenken.
Hab mir für die bessere Visualisierung was in Grafana gebastelt:
Jain, für einen „Start“ wäre mir das noch zu wenig, bzw. mit einem Zeitfaktor wie lange es auf 2A bereits ist.
Für eine kurze Wolke sind 2A/1P durchaus in Ordnung, aber bei Schlechtwetter ist es reiner „Online“ Verbrauch
Ja, die Verluste sind schon recht arg, aber es kommt was im Akku an. Ich nehme was ich kriegen kann.
Betrifft bei mir auch vllt 20% des Tages. Würde sonst ins Netz gehen.
Habe maximal 3500W zur Verfügung, daher die Beschränkung auf 5A.
Den Lademodus wähle ich aktuell noch manuell via Dropdown Menu (Aus/ Überschuss/ Schnell)
Hier sind meine Automationen und Konfigurationen. Ich nutze die Easee Home und Tesla API.
Die Messwerte für meinen aktuellen Hausverbrauch liefert mir ein Infrarotsensor an meinem Stromzähler über VZLogger.
Ich habe die YAMLs entsprechend kommentiert. Hat jetzt natürlich keine Guide-Qualität, aber vllt könnt ihr euch nen Reim draus machen.
Auszug aus der configuration.yaml
input_number:
// Variable fuer den Puffer in Watt, der vom zur Verfuegung stehenden Ueberschuss abgezogen werden soll (negativ zum Testen ob das Ueberschuss-Laden funktioniert)
sec_consumption_buffer:
name: SEC consumption buffer
initial: 100
min: -12000
max: 12000
step: 1
mode: box
// Maximale Stromstaerke in Ampere
sec_max_amp:
name: SEC max amps
initial: 5
min: 0
max: 16
step: 1
// Schaetzung der Voltzahl (kann ja je nach Stromstaerke variieren)
sec_projected_voltage:
name: SEC projected voltage
initial: 235
min: 230
max: 250
step: 1
input_boolean:
// Ueberschussladen aktivieren oder deaktivieren
solar_excess_charging:
name: Solar excess charging enabled
initial: true
// Zwischensensor, der die maximale Stromstaerke fuer das Ueberschussladen auf Basis des Ueberschusses, den mein Stromzaehler negativ meldet, berechnet
// Vom Ueberschuss-Strom muss für die Berechnung noch die aktuelle Ladeleistung der Easee abgezeogen werden, damit die Soll-Stromstaerke auch stimmt wenn der Ladevorgang aktiv ist
sensor:
- platform: template
sensors:
tesla_max_charge:
unit_of_measurement: A
unique_id: tesla_max_charge
value_template: >-
{% set sec_consumption_buffer = states('input_number.sec_consumption_buffer') | float %}
{% set sec_projected_voltage = states('input_number.sec_projected_voltage') | float %}
{% set sec_max_amp = states('input_number.sec_max_amp') | float %}
{% set effective_charge_power = (states('sensor.meter_current_power') | float - (states('sensor.easee_power') | float * 1000)) + sec_consumption_buffer %}
{% if effective_charge_power < 0 %}
{% set tesla_max_charge = ((effective_charge_power + sec_consumption_buffer) / sec_projected_voltage) | abs | round %}
{% if tesla_max_charge <= sec_max_amp %}
{{ tesla_max_charge }}
{% else %}
{{ sec_max_amp}}
{% endif %}
{% else %}
0
{% endif %}
Automationen
// Automation die getriggert wird wenn der Ueberschussladen-Schalter aktiviert wird (Easee auf 1-Phasig max 6A schalten, da meine PV eh nicht mehr kann)
alias: SEC turn on action
description: ""
trigger:
- platform: state
entity_id:
- input_boolean.solar_excess_charging
to: "on"
condition: []
action:
- service: easee.set_circuit_dynamic_limit
data:
currentP1: 6
currentP2: 0
currentP3: 0
time_to_live: 0
device_id: xxx
mode: single
// Automation die getriggert wird wenn der Ueberschussladen-Schalter deaktiviert wird (Easee wieder auf 3-Phasig unbegrenzt umschalten)
// Komischerweise braucht man hier pause und resume damit umgeschaltet werden kann. Beim "Anschalten" ist das nicht noetig
alias: SEC turn off action
description: ""
trigger:
- platform: state
entity_id:
- input_boolean.solar_excess_charging
to: "off"
condition: []
action:
- service: easee.set_circuit_dynamic_limit
data:
currentP1: 16
currentP2: 16
currentP3: 16
time_to_live: 0
device_id: xxx
- service: easee.action_command
data:
device_id: xxx
action_command: pause
- service: easee.action_command
data:
device_id: xxx
action_command: resume
mode: single
// Automation, die die Stromstaerke aus dem Sensor einstellt wenn sich mein Zwischensensor fuer mehr als sechs Sekunden aendert (dieser Wert hat sich fuer mich als gut erwiesen)
alias: Set Tesla charging amps
description: ""
trigger:
- platform: state
entity_id:
- sensor.tesla_max_charge
for:
hours: 0
minutes: 0
seconds: 6
condition:
- condition: state
entity_id: sensor.easee_status
state: charging
- condition: state
entity_id: input_boolean.solar_excess_charging
state: "on"
action:
- service: tesla_custom.api
data:
command: CHARGING_AMPS
parameters:
path_vars:
vehicle_id: "{{ state_attr(\"binary_sensor.tesla_online\", \"id\") }}"
charging_amps: "{{ (states(\"sensor.tesla_max_charge\"))| int }}"
mode: single
// Automation die das Laden des Teslas beginnt (Aufwecken und Schalter fuers Laden anschalten)
// Fuer mich hat sich als gut herausgestellt, wenn ich das Laden beginne wenn mein Zwischensensor fuer mehr als fuenf Minuten >= 2A anzeigt
// Die Schleife stellt sicher, dass das Laden auch wirklich beginnt. Es gab Faelle da hats mit einem Mal nicht geklappt
// Es wird in jedem Schleifendurchlauf zwei Minuten gewartet und dann zur naechsten Iteration gesprungen
alias: Start Tesla charging
description: ""
trigger:
- platform: numeric_state
entity_id: sensor.tesla_max_charge
for:
hours: 0
minutes: 5
seconds: 0
above: 1
condition:
- condition: state
entity_id: switch.tesla_charger
state: "off"
- condition: not
conditions:
- condition: state
entity_id: sensor.easee_status
state: disconnected
- condition: state
entity_id: input_boolean.solar_excess_charging
state: "on"
action:
- service: easee.set_circuit_dynamic_limit
data:
currentP1: 6
currentP2: 0
currentP3: 0
time_to_live: 0
device_id: xxx
- repeat:
until:
- condition: template
value_template: >-
{{ is_state('sensor.easee_status', 'charging') or
repeat.index == 5 }}
sequence:
- type: turn_on
device_id: xxx
entity_id: switch.tesla_charger
domain: switch
- wait_for_trigger:
- platform: state
entity_id:
- sensor.easee_status
to: charging
timeout:
hours: 0
minutes: 2
seconds: 0
milliseconds: 0
- service: tesla_custom.api
data:
command: CHARGING_AMPS
parameters:
path_vars:
vehicle_id: "{{ state_attr(\"binary_sensor.tesla_online\", \"id\") }}"
charging_amps: "{{ (states(\"sensor.tesla_max_charge\"))| int }}"
mode: single
// Automation, die das Laden beendet, wenn mein Zwischensensor fuer mehr als zehn Minuten eine Stromstaerke unter zwei anzeigt
alias: Stop Tesla charging
description: ""
trigger:
- platform: numeric_state
entity_id: sensor.tesla_max_charge
for:
hours: 0
minutes: 10
seconds: 0
below: 2
condition:
- condition: state
entity_id: sensor.easee_status
state: charging
- condition: state
entity_id: switch.tesla_charger
state: "on"
- condition: state
entity_id: input_boolean.solar_excess_charging
state: "on"
action:
- repeat:
until:
- condition: template
value_template: >-
{{ not(is_state('sensor.easee_status', 'charging')) or
repeat.index == 5 }}
sequence:
- type: turn_off
device_id: yyy
entity_id: switch.tesla_charger
domain: switch
- wait_for_trigger:
- platform: state
entity_id:
- sensor.easee_status
from: charging
timeout:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
mode: single
// Automation die sicherstellt, dass nur geladen wird, wenn genug PV-Ueberschuss-Strom da ist (nur wenn der Ueberschuss-Schalter aktiv ist)
alias: Ensure no charging without sec
description: ""
trigger:
- platform: state
entity_id:
- sensor.easee_status
to: charging
condition:
- condition: state
entity_id: input_boolean.solar_excess_charging
state: "on"
- condition: numeric_state
entity_id: sensor.tesla_max_charge
below: 2
- condition: device
type: is_off
device_id: yyy
entity_id: switch.tesla_charger
domain: switch
action:
- type: turn_off
device_id: yyy
entity_id: switch.tesla_charger
domain: switch
mode: single
Das ganze Konstrukt läuft wie ein Traum. Gestern hab ich mit meiner 1,6 kWp-Anlage 6kWh (laut Tesla API in den Akku geladen) an Überschuss-Strom abgreifen können.
Also wenn ich ausm Urlaub zurück bin ist mein Akku jedenfalls voll.