HomeAssistant PV Überschussladen

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

1 „Gefällt mir“

Ä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 für mich die perfekte Lösung für „nicht Nurds“ gefunden:
EV Autocharge

Zahle ich gerne 50€ im Jahr und muss nichts Programmieren, Kabel legen oder auf sonst was achten…

1 „Gefällt mir“

Ich habe im HA noch das node-red & teslamate addon laufen und mach so die Steuerung.

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.

So sieht der Shelly Plug aus:
Kann man bis 3680W belasten. Was ich nicht ausreizen würde, sondern da doch merklich drunter bleiben würde.


Copyright:Shelly Plug | Online-Shop für perfomante IT Lösungen | OMG.de GmbH

1 „Gefällt mir“

dann versuche ich mal meine derzeitigen Ideen hier zusammenzufassen:

  1. 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
sensor:
  - platform: statistics
    name: "Haus-Verbrauch-5m"
    unique_id: haus_verbrauch_5m
    entity_id: sensor.verbrauch_total
    state_characteristic: mean
    precision: 0
    max_age:
      minutes: 5
  - platform: statistics
    name: "Haus-Verbrauch-30s"
    unique_id: haus_verbrauch_30s
    entity_id: sensor.verbrauch_total
    state_characteristic: mean
    precision: 0
    max_age:
      seconds: 30
  -platform: template:	  
      verbrauch_total:
        friendly_name: 'Verbrauch total'
        unit_of_measurement: "W"
        value_template: >-
          {{ (states('sensor.shellyem3_8caab561f0d6_channel_a_power')|float(default=0) + states('sensor.shellyem3_8caab561f0d6_channel_b_power')|float(default=0) + states('sensor.shellyem3_8caab561f0d6_channel_c_power')|float(default=0))|round(0,default=0) }}

und dann noch weitere Einträge in der automation.yaml
– aufwecken des Tesla (bei einem Verbrauch kleiner als -90w)

- id: '1665056153073'
  alias: wecke tesla
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.haus_verbrauch_5m
    below: -90
  condition: []
  action:
  - alias: wecke Tesla
    service: tesla_custom.api
    data:
      command: WAKE_UP
      parameters:
        path_vars:
          vehicle_id: '{{ state_attr(''binary_sensor.tesla_online_sensor'', ''id'')
            }}'
  mode: single
  • starten des Ladens bei mehr als 100w Solarüberschuss
- id: Tesla001
  alias: Tesla - Start charging if solar generation is available
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.haus_verbrauch_5m
    below: -100
  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: input_number.set_value
    data:
      value: 1
    target:
      entity_id: input_number.tesla_ampere
  - alias: Laderate auf 0
    service: tesla_custom.api
    data:
      command: CHARGING_AMPS
      parameters:
        path_vars:
          vehicle_id: '{{ state_attr(''binary_sensor.tesla_online_sensor'', ''id'')
            }}'
        charging_amps: '1'
  - service: switch.turn_on
    target:
      entity_id:
      - switch.tesla_charger_switch
    data: {}
  - service: automation.turn_on
    data: {}
    target:
      entity_id: automation.laderate_anpassen
  mode: single

  • anhand des aktuellen Stromverbrauches wird nun die Laderate erhöht oder verringert
- id: '1652991993200'
  alias: Tesla Laderate anpassen
  description: ''
  trigger:
  - platform: time_pattern
    seconds: /30
  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: 'on'
    - condition: state
      entity_id: switch.tesla_maxrange_switch
      state: 'off'
  action:
  - choose:
    - conditions:
      - condition: state
        entity_id: input_boolean.tesla_70prozent
        state: 'on'
      - condition: numeric_state
        entity_id: sensor.tesla_battery_sensor
        below: 70
      sequence:
      - alias: fest 12A bis 70% Ladestand
        service: tesla_custom.api
        data:
          command: CHARGING_AMPS
          parameters:
            path_vars:
              vehicle_id: '{{ state_attr(''binary_sensor.tesla_online_sensor'',
                ''id'') }}'
            charging_amps: '12'
      - type: turn_on
        device_id: c6be56c680a208783755ad8fea145149
        entity_id: switch.tesla_charger_switch
        domain: switch
    - conditions:
      - condition: numeric_state
        entity_id: sensor.haus_verbrauch_30s
        below: -100
      sequence:
      - service: input_number.increment
        data: {}
        target:
          entity_id: input_number.tesla_ampere
      - alias: genug Solar erhöhe Laderate
        service: tesla_custom.api
        data:
          command: CHARGING_AMPS
          parameters:
            path_vars:
              vehicle_id: '{{ state_attr(''binary_sensor.tesla_online_sensor'',
                ''id'') }}'
            charging_amps: '{{ (states(''input_number.tesla_ampere''))| int }}'
      - alias: genug Solar erhöhe Laderate
        service: tesla_custom.api
        data:
          command: CHARGING_AMPS
          parameters:
            path_vars:
              vehicle_id: '{{ state_attr(''binary_sensor.tesla_online_sensor'',
                ''id'') }}'
            charging_amps: '{{ (states(''input_number.tesla_ampere''))| int }}'
    - conditions:
      - condition: numeric_state
        entity_id: sensor.haus_verbrauch_30s
        above: 610
      sequence:
      - service: input_number.decrement
        data: {}
        target:
          entity_id: input_number.tesla_ampere
      - alias: wenig Solar, veringere Laderate
        service: tesla_custom.api
        data:
          command: CHARGING_AMPS
          parameters:
            path_vars:
              vehicle_id: '{{ state_attr(''binary_sensor.tesla_online_sensor'',
                ''id'') }}'
            charging_amps: '{{ (states(''input_number.tesla_ampere''))| int }}'
      - alias: wenig Solar, veringere Laderate
        service: tesla_custom.api
        data:
          command: CHARGING_AMPS
          parameters:
            path_vars:
              vehicle_id: '{{ state_attr(''binary_sensor.tesla_online_sensor'',
                ''id'') }}'
            charging_amps: '{{ (states(''input_number.tesla_ampere''))| int }}'
      - condition: numeric_state
        entity_id: input_number.tesla_ampere
        below: 1
      - service: switch.turn_off
        data: {}
        target:
          entity_id: switch.tesla_charger_switch
    default: []
  mode: single
  • und hier noch zwei Snippets in der Hoffnung des PollingIntervall des Tesla zu verringern (weiss nicht ob das wirklich klappt)
- id: '1664031719252'
  alias: AUT_TeslaPollingIntervalTo60
  description: ''
  trigger:
  - platform: state
    entity_id: switch.tesla_charger_switch
    to: 'on'
  condition:
  - condition: state
    entity_id: device_tracker.tesla_location_tracker
    state: home
  action:
  - service: automation.turn_on
    data: {}
    target:
      entity_id: automation.laderate_anpassen
  mode: single

- id: '1664031771886'
  alias: AUT_TeslaPollingIntervalToDefault
  description: ''
  trigger:
  - platform: state
    entity_id: switch.tesla_charger_switch
    to: 'off'
  condition:
  - condition: state
    entity_id: device_tracker.tesla_location_tracker
    state: home
  action:
  - service: script.1664031654834
    data: {}
  - service: input_number.set_value
    data:
      value: 0
    target:
      entity_id: input_number.tesla_ampere
  mode: single

  • mittendrin sind noch ein paar Anpassungen um ab einem gewissen „Tiefstand“ eine Aufladung auf 70% zu veranlassen

Es funktioniert oft recht gut, aber manchmal hakt es. Ich weiss noch nicht an welcher Stelle aber vielleicht bekommen wir zusammen etwas gutes gebaut

gabor

4 „Gefällt mir“

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.

Wie ist hier so mittlerweile der Stand?

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

gabor

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. :slight_smile:

Hier scheint das Minimum auch via API bei 5A zu liegen (1,2 kW).
Kann das jemand bestätigen?

Via der Home Assistant (HACS) Integration kannst du das Minimum bei 230V sogar auf 1 A herunter stellen! Hab’s getestet und klappt :slight_smile:

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. :blush:
Bis zu 6 kWh kommen da täglich zusammen. Immerhin. Besser als verschenken.

Hab mir für die bessere Visualisierung was in Grafana gebastelt:

tesla_max_charge ist der Zwischensensor, der unter Einbeziehung des aktuellen Überschusses berechnet mit wie viel A ich laden kann.

Meine Automatisierungen regeln dann zuverlässig die Ladeleistung.

SEC = solar excess charging

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

1 „Gefällt mir“

Ja, die Verluste sind schon recht arg, aber es kommt was im Akku an. Ich nehme was ich kriegen kann. :man_shrugging:
Betrifft bei mir auch vllt 20% des Tages. Würde sonst ins Netz gehen.

Kannst du mir mal deine Automatisierungen schicken? :wink: Meine laufen zwar auch, aber mehr schlecht als Recht.

Ich habe das nun über das evcc Addon gelöst (mit einer schaltbaren Steckdose Gosund SP1):

Sorry, bin gerade zeitlich etwas unter Wasser. :slight_smile:
Sobald ich Luft habe dokumentier ich meine Lösung mal hier.

Bin zwar nicht angesprochen, kann dir jedoch meine Automatisierung als Beispiel zeigen:

alias: Überschuss Laderegelung
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.leistung            # ausführen bei Wertänderung Hauszähler
  - platform: time_pattern    
    seconds: "30"
action:
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
    enabled: true
  - repeat:
      while:
        - "{{ states('sensor.zuruck_zum_netz_watt') | float > 800 }}" # sensor.zuruck_zum_netz_watt ist mein Überschuss. ginge jedoch auch mit sensor.leistung mit negativwerten.
        - "{{ states('number.road_runner_charging_amps') | int < 5 }}"
      sequence:
        - service: number.set_value
          data_template:
            entity_id: number.road_runner_charging_amps
            value: "{{ states('number.road_runner_charging_amps') | int + 1 }}"
        - delay: "00:00:10"
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
    enabled: true
  - repeat:
      while:
        - "{{ states('sensor.zuruck_zum_netz_watt') | float < 50 }}"
        - "{{ states('number.road_runner_charging_amps') | int > 0 }}"
      sequence:
        - service: number.set_value
          data_template:
            entity_id: number.road_runner_charging_amps
            value: "{{ states('number.road_runner_charging_amps') | int - 1 }}"
        - delay: "00:00:10"
  - condition: template # optionale Abschaltung bei 0A
    value_template: "{{ states('number.road_runner_charging_amps') | int == 0 }}" 
  - service: switch.turn_off
    entity_id: switch.road_runner_charger
    enabled: false

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)

Screenshot_2

4 „Gefällt mir“

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. :wink:

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. :slight_smile:

Also wenn ich ausm Urlaub zurück bin ist mein Akku jedenfalls voll. :stuck_out_tongue:

2 „Gefällt mir“

Auch nicht schlecht. Ruft dann aber wirklich immer alle 10 Sekunden die Tesla API auf.