Automatische Regelung des Wechselrichter bei zu viel Einspeisung

Hi,
ich habe mal eine frage woher kommen eigentlich genau die 850 her hat das was mit der Leistung der Wechselrichter zu tun.
Da bin ich einfach nicht hinter gekommen, vielleicht denke ich auch kompliziert oder stehe einfach auf dem Schlauch, wie auch immer.
Ich konnte meine Ansteuerung noch nicht testen da bisher keine ordentliche Sonne da war.
Gib es eine nicht eine Möglichkeit Ereignisse nicht zu logen es gibt doch den Befehl
logbook:
exclude:
würde das nicht gehen ? ich habe nur keine Ahnung wie man das einbaut auch neu in HA und finde es klasse das du eine Anleitung hier gemacht hast und ch denke mit eurer Hilfe bekomme ich das zeit nah auch am laufen
 
ich habe mal eine frage woher kommen eigentlich genau die 850 her hat das was mit der Leistung der Wechselrichter zu tun.
Ich sag mal so. Das ist meine ganz persönliche Zahl, damit ich bei Überschuss X zwar noch etwas ins öffentliche Netz einspeise, aber es niemals so viel werden kann, das irgendwer komische Fragen stellen würde. ;)
Stell Dir vor, Du hast zwei Wechselrichter mit je 600 Watt. Macht zusammen 1200 Watt.
Jetzt bist Du grad nicht zu Hause, dein Haus/Wohnung braucht so 150 Watt und nun kommt die Sonne raus.
1200 - 150 = 1050 Watt Einspeisung ins öffentliche Netz. Da könnte dann ja jemand komische Fragen stellen, wenn er das sieht.
Wenn das bei mir so kommen würde, würde die Berechnung 850 - (1050 / 2) = 325 ergeben. Die Wechselrichter also auf jeweils 325 Watt eingestellt. Heißt, es kommen max. 650 Watt von der PV, abzüglich 150 Watt Verbrauch bleiben 500 Watt Einspeisung ins öffentliche Netz. Also im Bereich des erlaubten.

Da bin ich einfach nicht hinter gekommen, vielleicht denke ich auch kompliziert oder stehe einfach auf dem Schlauch, wie auch immer.
Ne, es ist ja auch ein wenig kompliziert, wenn an zwar immer so viel Strom produzieren will, das auch alles läuft, selbst wenn ein größerer Verbraucher anspringt, aber eben niemals zu viel ins öffentliche Netz eingespeist wird.
Gib es eine nicht eine Möglichkeit Ereignisse nicht zu logen es gibt doch den Befehl
logbook:
exclude:
würde das nicht gehen ? ich habe nur keine Ahnung wie man das einbaut auch neu in HA und finde es klasse das du eine Anleitung hier gemacht hast und ch denke mit eurer Hilfe bekomme ich das zeit nah auch am laufen
Was willst Du denn warum nicht loggen ? Was erwartest Du dir davon ?
 
Was willst Du denn warum nicht loggen ? Was erwartest Du dir davon ?
Ich meinte das könnte man doch nutzen für dein 1. Code wo er alle 10sek. nach schaut ob ob die Bedienung erfüllt sind und dabei wird ja aktuell immer in Logbuch geschrieben.

2. der Letzte Code den du gepostet hast ist das dein aktueller ist der gut so oder gibts dort Schwierigkeiten ?

3. Ich habe 2x800W WR und möchte nur bis so -400W einspeisen dann habe ich folgende Werte aus gedacht 1200 als feste Zahl, zwischen 400 und 200 soll geregelt werden. Das müsste doch Funktionieren oder nicht ?
 
Ich meinte das könnte man doch nutzen für dein 1. Code wo er alle 10sek. nach schaut ob ob die Bedienung erfüllt sind und dabei wird ja aktuell immer in Logbuch geschrieben.
Mag sein, aber irgendetwas so oft zu starten ist der Performance sicher nicht zuträglich. Das mag bei ei, zwei oder drei Routinen noch Ok sein, aber irgendwann mal stört es möglicherweise.
Und es ist ja auch unnötig. Die Routine wird ja jedes mal gestartet, wenn sich mein Stromverbrauch in einem Bereich bewegt, wo ich regeln will
2. der Letzte Code den du gepostet hast ist das dein aktueller ist der gut so oder gibts dort Schwierigkeiten ?
Ja, der Code ist aktuell und nein, bisher keine Probleme. Wobei natürlich auch schon länger nicht mehr geregelt werden mußte, weil zu wenig Sonne oder zu viele Verbraucher.
3. Ich habe 2x800W WR und möchte nur bis so -400W einspeisen dann habe ich folgende Werte aus gedacht 1200 als feste Zahl, zwischen 400 und 200 soll geregelt werden. Das müsste doch Funktionieren oder nicht ?
Du mußt eine Berechnung finden, die deine Werte findet, die an die Wechselrichter geschickt werden sollen.
Beispiel: Wenn Du an beide Wechselrichter 500 als max. Output schickst, kannst Du ja noch max. 1000 Watt bekommen. Abzüglich dem, was Du gerade verbrauchst soll dann ja ein Wert zwischen -200 und -400 raus kommen. Minus weil Einspeisung.
Wenn Du jetzt als feste Zahl 1200 nimmst und 400 Watt Einspeisung, würde die Rechnung ja so aussehen.
1200 + (-400 / 2) = 1000
1000 an beide WR zu schicken macht keinen Sinn, die stehen schon auf max. 800 Watt Output.
Nehmen wir mal als Feste Zahl 800
800 + (-400 / 2) = 600.
600 an beide WR geschickt reduziert also deren Output auf max. 1200. Wenn beide vollgeliefert haben, also 1600 Watt, kommen jetzt 400 Watt weniger raus, also sinkt deine Einspeisung.

Der Trick ist hier eben, das nicht kontinuierlich die WR runter geregelt werden, sondern sofort um einen Wert reduziert werden, der den Output in einen Bereich drückt, den wir wollen .
Mach Dir am besten mal eine Excel Tabelle mit der Formel und spiel diverse Szenarien durch. Also wenn 1600 Watt von den Wechselrichtern kommen, dein Verbrauch aber mal 500 Watt, mal 1000 Watt, oder auch nur mal 200 Watt ist, wie hoch wäre dann die Einspeisung und was würde bzw. muß an die WR geschickt werden, damit die Einspeisung nur noch zwischen 200 und 400 Watt liegt.


OutputVerbrauchEinspeisungWR
1600​
200​
-1400​
150​
1600​
400​
-1200​
250​
1600​
600​
-1000​
350​
1000​
200​
-800​
450​
1000​
400​
-600​
550​
1000​
600​
-400​
650​
Wenn deine PV also 1600 Watt liefert, Du selbst aber nur 200 Watt verbrauchst, würden 1400 Watt ins Netz eingespeist. Bei einer festen Zahl von 850 würde an jeden Wechselrichter 150 als max. Output geschickt, so das Du gesamt 300 Watt von denen bekommst und nur noch 100 Watt einspeist. Passt also
Wenn deine PV 1600 Watt liefert, Du selbst aber nur 400 Watt verbrauchst, würden 1200 Watt ins Netz eingespeist. Bei einer festen Zahl von 850 würde an jeden Wechselrichter 250 als max. Output geschickt, so das Du gesamt 500 Watt von denen bekommst und nur noch 100 Watt einspeist. Passt auch

Ich weiß, diese Art der Berechnung ist schwierig nachzuvollziehen, ich habe auch ne weile gebraucht, auf die Formel zu kommen. Aber mach Dir mal ne Excel Tabelle, dann wird es schnell deutlich und hilft Dir, deine feste Zahl zu finden.

Mein Tip: Feste Zahl 900.
Bei 1600 Watt von den Modulen und 200 Watt Eigenverbrauch würden die Wechselrichter auf jeweils 200 eingestellt, also 400 Watt Output und somit 200 Watt Einspeisung.

Ach ja. Aufbau und Formeln der Excel Tabelle.
A1 (Output) gibst Du per Hand vor und entspricht dem Output deiner PV.
B1 (Verbrauch) ist dein Eigenverbrauch und gibst Du auch per Hand ein.
C1 (Einspeisung) wird berechnet mit =-(A1-B1) Minus vorne dran wegen Einspeisung, die ja negativ ist.
D1 (WR) ist dann die eigentliche Berechnung: =900+(C1/2). Raus kommt der Wert, den Du an jeden Wechselrichter schicken muß.

Übrigens, für die, die mehr als 2 Wechselrichter haben, dann muß C1 / 4 da stehen, wenn man 4 Wechselrichter hat.
 
ich habe deinen code bei mir eingegeben und angepasst und dich bekomme folgende Fehlermeldung und weiß nicht warum.

Message malformed: Unexpected value for condition: '[]'. Expected and, device, not, numeric_state, or, state, sun, template, time, trigger, zone, a list of conditions or a valid template @ data['action'][0]

Wäre schön wenn du eine Lösung hast.

Code:
alias: Einspeisebegrenzung
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.tasmota_sml_watt_summe
    below: -400
  - platform: numeric_state
    entity_id: sensor.tasmota_sml_watt_summe
    above: -200
condition: []
action:
  - if:
      - condition: numeric_state
        entity_id: sensor.tasmota_sml_watt_summe
        below: -400
    then:
      - service: number.set_value
        data:
          value: "{{ states('sensor.pv_einspeisung')|float }}"
        target:
          entity_id: number.balkon_limit_persistent_absolute
        enabled: true
      - service: number.set_value
        data:
          value: "{{ states('sensor.pv_einspeisung')|float }}"
        target:
          entity_id: number.gartenhutte_limit_persistent_absolute
        enabled: true
    alias: Wenn Einspeisung größer -550 Watt
  - if:
      - condition: numeric_state
        entity_id: sensor.tasmota_sml_watt_summe
        above: -200
    then:
      - device_id: 8620d7555c871770d4d2cacc3320626e
        domain: number
        entity_id: 65ef074770efc1949f86643a3e5f7a02
        type: set_value
        value: 800
      - device_id: ddb3419f65d170098ee160b572b7e1de
        domain: number
        entity_id: bec45a78d4902f339367242e9fb5efb9
        type: set_value
        value: 800
    alias: Wenn Einspeisung kleiner -400 Watt
mode: single
 
Message malformed: Unexpected value for condition: '[]'. Expected and, device, not, numeric_state, or, state, sun, template, time, trigger, zone, a list of conditions or a valid template @ data['action'][0]
Wann und WO bekommst Du diese Fehlermeldung ?

Dieses "Unexpected value for condition" sagt, das ein Unerwarteter Wert für Bedingung aufgetreten ist.
Die einzige Bedingung hier ist ja, die Leistung zu vergleichen. Ich fürchte also, das dein "sensor.tasmota_sml_watt_summe" keine nummerische Werte mag. Das kann ich hier so aber nicht nachvollziehen, ich habe kein Tasmota.
Allerdings sollte HA Dir diesen Sensor eigentlich auch nichts zur Auswahl anbieten, wenn er keine numerischen Werte kann.

Was ist mit dem Template, welches die Einspeisung berechnet. Ist die den korrekt ?
Code:
  - sensor:
    - name: PV Einspeisung
      unique_id: PV_Einspeisung
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      state: >
        {{  ( 850 + (states('sensor.electricity_rodgener_strasse_22_gesamtleistung') | int /2)) }}
 
Das ist der Code im Template

und die Fehlermeldung bekomme ich wenn ich die Automation erstelle.
erstellen mache ich so bei dann mache auf gerät und wähle dann gartenhutte_limit_persistent_absolute als nächstes auf yaml alles weg machen und code einfügen als nächstes auf erstellen und dann kommt die Fehlermeldung

Code:
- sensor:
    - name: PV Einspeisung
      unique_id: "PV_Einspeisung"
      unit_of_measurement: "W"
      device_class: "power"
      state_class: "measurement"
      state: >
        {{  ( 900 + (states('sensor.tasmota_sml_watt_summe') | int /2)) }}

Mein Tasmota kann numerische Werte weil ich darüber ein Spülmaschine schon laufen habe. Hat es vielleicht was damit zu tun das der Wert Watt 2 Komma stellen besitz oder ist das egal.
 
Zuletzt bearbeitet:
Sieht eigentlich alles so aus, wie bei mir.
Ich habe gerade mal deinen Code bei mir in eine neue Automatisierung geschrieben.
Beschwert er sich natürlich, das er die device_id mit den Zahlen nicht kennt. Habe ich dann meine rein geschrieben, dann kann ich die Automatisierung speichern, ohne Fehlermeldung.

Ich habe ein Tool drüber laufen lassen, was deinen Code und meinen Code auf unterschiede Untersucht. Bis auf die Gerätebezeichnung alles gleich.
Die Anzahl der Kommastellen sollte egal sein. 20 Watt wird ja auch als 20 und nicht als 20,00 dargestellt. Richtig ?
Aber selbst wenn, so kleinlich wird doch kein Gerät sein. :D

Ansonsten würde ich hergehen und erst mal alles raus nehmen, bis auf die Auslöser bzw. einen Auslöser.
Dann immer mehr hinzufügen, bis das erste mal der Fehler auftaucht, dann weißt Du zumindest schon mal in welchem Bereich der Fehler auftaucht.
 
Sicher, aber der Vergleich funktioniert ja trotzdem, egal ob ich abfrage
Ist -400 kleiner als 241,53
oder
Ist 400,00 kleiner als 241,53

Da würde ich mir eher Gedanken machen, wenn ich dem Wechselrichter einen Wert schicke, den er nicht kann.
 
ich habe folgendes ausgefunden, bei diesem code sagt er mir das:

Message malformed: Unable to determine action @ data['action'][0]

Code:
alias: Einspeisebegrenzung
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.tasmota_sml_watt_summe
    below: -400
  - platform: numeric_state
    entity_id: sensor.tasmota_sml_watt_summe
    above: -200
  - if:
      - condition: numeric_state
        entity_id: sensor.tasmota_sml_watt_summe
        above: -200
    then:
      - device_id: 8620d7555c871770d4d2cacc3320626e
        domain: number
        entity_id: 65ef074770efc1949f86643a3e5f7a02
        type: set_value
        value: 800
      - device_id: ddb3419f65d170098ee160b572b7e1de
        domain: number
        entity_id: bec45a78d4902f339367242e9fb5efb9
        type: set_value
        value: 800
    alias: Wenn Einspeisung kleiner -400 Watt
mode: single

jetzt füge ich fogedes noch ein weil er sagt keine action:

Code:
condition: []
action:

und dann habe ich den Fehler der oben schon von mir beschrieben wurde:

Message malformed: Unexpected value for condition: '[]'. Expected and, device, not, numeric_state, or, state, sun, template, time, trigger, zone, a list of conditions or a valid template @ data['action'][0]

Code:
alias: Einspeisebegrenzung
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.tasmota_sml_watt_summe
    below: -400
  - platform: numeric_state
    entity_id: sensor.tasmota_sml_watt_summe
    above: -200
condition: []
action:
  - if:
      - condition: numeric_state
        entity_id: sensor.tasmota_sml_watt_summe
        above: -200
    then:
      - device_id: 8620d7555c871770d4d2cacc3320626e
        domain: number
        entity_id: 65ef074770efc1949f86643a3e5f7a02
        type: set_value
        value: 800
      - device_id: ddb3419f65d170098ee160b572b7e1de
        domain: number
        entity_id: bec45a78d4902f339367242e9fb5efb9
        type: set_value
        value: 800
    alias: Wenn Einspeisung kleiner -400 Watt
mode: single
 
ich habe folgendes ausgefunden, bei diesem code sagt er mir das:

Message malformed: Unable to determine action @ data['action'][0]

Code:
alias: Einspeisebegrenzung
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.tasmota_sml_watt_summe
    below: -400
  - platform: numeric_state
    entity_id: sensor.tasmota_sml_watt_summe
    above: -200
  - if:
      - condition: numeric_state
        entity_id: sensor.tasmota_sml_watt_summe
        above: -200
    then:
      - device_id: 8620d7555c871770d4d2cacc3320626e
        domain: number
        entity_id: 65ef074770efc1949f86643a3e5f7a02
        type: set_value
        value: 800
      - device_id: ddb3419f65d170098ee160b572b7e1de
        domain: number
        entity_id: bec45a78d4902f339367242e9fb5efb9
        type: set_value
        value: 800
    alias: Wenn Einspeisung kleiner -400 Watt
mode: single
Du kannst Code nicht einfach kürzen, wie es Dir gefällt.
condition: []
action: []
sind nun mal zwingend notwendig.
Warum machst Du es nicht im Visual Editor, dann passiert so etwas nicht.
Ich habe bei mir einfach mal alles bei "Dann mache", also der action Zweig, raus gelöscht. Dan bleibt als Code nur noch.
Code:
description: ""
mode: single
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.electricity_rodgener_strasse_22_gesamtleistung
    below: -550
  - platform: numeric_state
    entity_id:
      - sensor.electricity_rodgener_strasse_22_gesamtleistung
    above: -400
condition: []
action: []
Wenn er jetzt immer noch den Fehler ausspuckt, weißt Du, das der Fehler in diesem Zweig zu suchen ist.
Spuckt er keinen Fehler aus, führst Du EINEN action Zweig hinzu und auch den vielleicht mal nicht vollständig.
Code:
alias: Wenn Einspeisung größer -550 Watt
if:
  - condition: numeric_state
    entity_id: sensor.electricity_rodgener_strasse_22_gesamtleistung
    below: -550
then:
  - service: number.set_value
    data:
      value: "{{ states('sensor.pv_einspeisung')|float }}"
    target:
      entity_id: number.wechselrichter_1_limit_persistent_absolute
    enabled: true
Und dann schauen wir wieder, was passiert. Kein Fehler, fügen wir weitere Teile hinzu, kommt der Fehler, weißt Du, das er in diesem Bereich zu suchen ist.

Was Du oben gemacht hast, hilft leider absolut nicht weiter, weil Du die IF THEN Bedingungen hast stehen lassen, ohne ACTION. Damit kann er so rein gar nichts anfangen.
 
ich hab alles noch mal neu gemacht und jetzt läuft es keine Ahnung woran das lag.

Danke für deine Hilfe.
Eine Frage hab ich noch, hat nicht direkt was hiermit zu tun, aber ich denke du könntest eine Antwort drauf haben.

und zwar Schalten sich die Wechselrichter nachts ab und ich bekomme Werte sind nicht Verfügbar gibt es eine Möglichkeit das bei einigen Werten wie zb. Tages Ertrag und Gesamt Ertrag der letzte Wert weiterhin angezeigt wird ?
 
ich hab alles noch mal neu gemacht und jetzt läuft es keine Ahnung woran das lag.
Prima, das freut mich.
und zwar Schalten sich die Wechselrichter nachts ab und ich bekomme Werte sind nicht Verfügbar gibt es eine Möglichkeit das bei einigen Werten wie zb. Tages Ertrag und Gesamt Ertrag der letzte Wert weiterhin angezeigt wird ?
Das kommt drauf an, was für Wechselrichter Du hast und wie die ihre Daten an HA senden.
Falls Du mit OpenDTU arbeitest, da kann man in den Einstellungen -> MQTT und dann sehr weit unten "Ablauffunktion aktivieren" deaktivieren.
 
Hallo, ich bin neu hier und habe eure Einspeisebegrenzung studiert weil ich das auch verwenden möchte. Meine Frage ist, wie kommt der sensor.pv_einspeisung zustande? Ist das eine Variable? Muss ich den vorher irgendwie definieren? Bei mir kommt folgender Fehler:
1712490611993.png
 
Zuletzt bearbeitet:
Steht im ersten Beitrag.
Zunächst einmal habe ich in meiner templates.yaml folgenden Code.
Code:
  - sensor:
    - name: PV Einspeisung
      unique_id: PV_Einspeisung
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      state: >
        {{  ( 850 + (states('sensor.electricity_rodgener_strasse_22_total_power') | int /2)) }}
Du legst SELBST in der templates.yaml diesen Code an. Wenn Du noch keine templates.yaml hast, mußt Du diese erstellen.
 
Hallo Rudi, danke erst mal. Die templates.yaml habe ich erstellt. Muss ich den sensor.electricity ... ändern? Mein Smartmeter heißt ja anders? Irgendwie muss ich doch noch die templates.yaml in die configuration.yaml einbeinden, oder?
 
Bei mir hatte das mit dem Code in templates.yaml nicht geklappt, ich musste ein Template über die Oberfläche eingeben kann dazu später noch den Code und Fotos hochladen.
 
Ich habe jetzt nur das Problem, wenn ich das include der templates.yaml in die configurations.yaml setze, dann ist die smartmeter.id nicht mehr verfügbar.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.531
Beiträge
46.441
Mitglieder
4.167
Neuestes Mitglied
Rabauke
Zurück
Oben