Automatische Regelung des Wechselrichter bei zu viel Einspeisung

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?
Richtig. Da muß man natürlich die eigenen Sensoren einsetzen.
Die templates.yaml kann automatisch eingebunden werden. Falls nicht, dann schau Dir mal die Includes für die anderen .yaml Dateien an und erstellst genau so einen Eintrag für die templates.yaml.

@Blitzkriegbob "Hat nicht geklappt" ist immer so eine Sache. Warum nicht ? Kommt eine Fehlermeldung ? Was genau funktioniert nicht ?
Und wie erstellt man ein Template über die Oberfläche ?

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
Vermutlich weil Du in deiner Configuration.yaml ein Template hast, was dann natürlich nicht mehr passt, sondern dann ebenfalls in die templates.yaml müßte.
 
Hallo Rudi, danke für deine Hilfe. Ich habe den Sensor ersteinmal in die Configurationn.Yaml unter die anderen Sensoren gepackt. So funktioniert es. Werde dann einmal aufräumen und die Sensoren in eine gesonderte Datei zusammen fassen. Nochmals vielen Dank. LG
 
Super, das Du es ans laufen bekommen hast. Wie ist erst mal egal.
Ich finde es immer wichtig, das man erst mal ein Erfolgserlebnis hat und sich dann später mal anschaut, wie funktioniert das den überhaupt, so das man daraus lernen kann.
 
Hallo Rudi, habe jetzt festgestellt, dass beim Unterschreiten der unteren Toleranz -400 (bei mir) die WR geregelt werden. Bei der nächsten Überschreitung passiert dann aber nichts mehr. Brauche ich da noch eine Schleife die das überwacht? Hast du eine Lösung dafür?
 
Nun, wenn Du den Code genau so übernommen hast UND Deine Daten eingesetzt hast, dann regelt der schon bei weniger als 400 Watt Einspeisung wieder hoch. Bei mir dann halt auf 700 Watt. Eventuell mögen das aber deine Wechselrichter nicht, also trag da mal 600 ein.
Code:
  - if:
      # sinkt die Einspeisung auf weniger als 400 Watt, dann......
      - type: is_power
        condition: device
        device_id: 2e562692166a7f556412a313a97fe3eb
        entity_id: e08cbf7ef28d8daf1565733651991cdb
        domain: sensor
        above: -400
    then:
        # setzen wir beide Wechselrichter auf 700 Watt Output.
      - device_id: 1104e25f8f413428dd29d04b13169ab3
        domain: number
        entity_id: 6311b5b2385d6f86b15ddfa06bde927f
        type: set_value
        value: 700
      - device_id: 9bfd33a5996fa6a0c98a283d065ea50b
        domain: number
        entity_id: e76f11aae03459148dde6ae0100434c9
        type: set_value
        value: 700
Das hier ist der Teil, der wieder zurück regelt. Ich hoffe ja, das Du alle Zahlen durch deine Wechselrichter ersetzt hast.

Ansonsten hilft auch ein TRACE, wo man sehen kann, ob die Automatisierung bis zum ende durchgelaufen ist oder wo sie hängen geblieben ist.
 
Hi, ich habe alle notwendigen Daten (und noch mehr ;-) ) im HA und habe schon diverse scripte laufen, was mir in diesem Post noch nicht klar ist, wie ich die Daten an den Hoymiles sende - eventuell habe ich auch einfach irgend etwas nicht richtig verstanden ? Meine Installation basiert primär auf MQTT hier habe ich eine Zendure Solarflow, intelligentes Messsystem (Discovery) und eine Hoymiles 800 über AhoyDTU integriert. Direkt am Ahoy Interface kann ich den neuenmaximalen Inverter Wert übermitteln, nur wie mache ich das direkt aus Homeassistant ? Per Mqtt? Vielen Dank.
 
Du sendest da eher gar nichts.
Dein Hoymiles sollte doch Entitäten in HA abbilden. Eine davon wäre "wechselrichter_1_limit_persistent_absolute"
Und der weisen wir einfach einen Wert zu, den Rest macht das System.
Ich habe zwar kein AhoyDTU laufen, sondern OpenDTU, aber da muß ich nur den Wert zuweisen und fertig. Wenige Sekunden später kann ich in der Weboberfläche von OpenDTU sehen, das die Wechselrichter den neuen Wert haben.
Wenn dein AhoyDTU keinen solchen Wert in HA bereit stellt, schau mal, ob es da versteckte Entitäten gibt.
 
Du sendest da eher gar nichts.
Dein Hoymiles sollte doch Entitäten in HA abbilden. Eine davon wäre "wechselrichter_1_limit_persistent_absolute"
Und der weisen wir einfach einen Wert zu, den Rest macht das System.
Ich habe zwar kein AhoyDTU laufen, sondern OpenDTU, aber da muß ich nur den Wert zuweisen und fertig. Wenige Sekunden später kann ich in der Weboberfläche von OpenDTU sehen, das die Wechselrichter den neuen Wert haben.
Wenn dein AhoyDTU keinen solchen Wert in HA bereit stellt, schau mal, ob es da versteckte Entitäten gibt.
Danke für die schnelle Antwort. Ich sehe die Daten im HA (
- name: "Active Power Limit"
unique_id: "<SN>powerlimit"
state_topic: "inverter/Inverter/ch0/active_PowerLimit"
unit_of_measurement: "%"
device:
name: "PV Microconverter"
identifiers: "PV<SN>"
manufacturer: "Hoymiles"
model: "Hoymyles HM-800")
, aber die kommen doch über MQTT rein. Soweit ich verstehe ist das doch "nur" ein Mitschneiden an den Daten die der Hoymiles sendet, evtl. liegt es tatsächlich daran das ich nicht opendtu sondern ahoy nutze. Hat jemand das schon mit Ahoy gemacht ? In der Doku sollte es auch ein Topic "inverter/ctrl/limit/0" geben, das sehe ich aber nicht über den MQTT Browser :-(
 
Danke für die schnelle Antwort. Ich sehe die Daten im HA (
- name: "Active Power Limit"
unique_id: "<SN>powerlimit"
state_topic: "inverter/Inverter/ch0/active_PowerLimit"
unit_of_measurement: "%"
device:
name: "PV Microconverter"
identifiers: "PV<SN>"
manufacturer: "Hoymiles"
model: "Hoymyles HM-800")
, aber die kommen doch über MQTT rein. Soweit ich verstehe ist das doch "nur" ein Mitschneiden an den Daten die der Hoymiles sendet, evtl. liegt es tatsächlich daran das ich nicht opendtu sondern ahoy nutze. Hat jemand das schon mit Ahoy gemacht ? In der Doku sollte es auch ein Topic "inverter/ctrl/limit/0" geben, das sehe ich aber nicht über den MQTT Browser :-(
Habe noch mal gebastelt, der Inverter hat auf meinen Test reagiert, der part im Script:
YAML:
- service: mqtt.publish
    metadata: {}
    data:
      qos: 0
      retain: false
      topic: inverter/ctrl/limit/0
      payload: "14"
die 14 war nur ein ein test und ist in % .
 
Zuletzt bearbeitet:
Ich sag mal so. Wie das intern abläuft, hat mich bisher nicht wirklich Interessiert.
Für mich war wichtig, das da eine Entität ist, der ich einen Wert zuweisen kann, die der Wechselrichter dann übernimmt.
Wie HA das macht, naja, mir egal. :D
 
Hallo Rudi, vielen Dank für die Inspiration. Ich habe statt des Templates einen Helper gebaut und nutze diesen in meiner Automation. Außerdem soll das Setzen des relativen Limits bei meinem WR (HM-Serie) schneller funktionieren anstatt das W-Limit, weshalb ich noch einen %-Wert verwende.
Leider passt bei mir dein System mit der fixen Zahl nicht oder ich habe dein Konzept nicht verstanden.
Bei meinem WR (nur 1) bekomme ich max. 1840 W ins Heimnetz. Mein Smartmeter (Shelly 3EM) gibt mir die Einspeisung ins Netz ebenfalls als negativen Wert zurück.
Verwende ich 1200 als Feste Zahl, passt alles bei vollen 1840 W, aber nicht bei weniger PV-Leistung.
Du teilst die Einspeiseleistung durch zwei, weil zwei WR, bei einem WR müsste man also direkt die Einspeiseleistung (neg.) mit der fixen Zahl saldieren. Das hat bei mir nicht funktioniert, weshalb ich rechne wie du und das Ergebnis mit zwei multipliziere. Passt aber wie gesagt nur bei voller PV-Leistung.
Gruß, brainiii
 

Anhänge

  • IMG_3175.jpeg
    IMG_3175.jpeg
    419,7 KB · Aufrufe: 7
Zuletzt bearbeitet:
Ich fürchte, Du hast Recht. Meine Formel passt nur bei kleinen Anlagen.
Würde ich 800 Watt Einspeisen, würden meine WR auf 25 Watt reduziert, was ja nicht passt.
Andere Überlegung.
Du sagst ja, das Du so um die 560 Watt Einspeisen möchtest.
Was die PV gerade liefert, ist eher Nebensache, weil sich das ja unmittelbar in der Einspeisung bemerkbar macht.
Sprich, wenn dein Haus 100 Watt verbraucht, die PV 1840 liefert, könnte die Einspeisung auf - 1740 gehen.
Liefert die PV aber nur 1000 Watt und Du verbrauchst 100 Watt, ist die Einspeisung auch nur auf -900.
Wenn wir nun die max. PV Leistung nehmen, also bei Dir 1840, ziehen davon die aktuelle Einspeisung ab und rechnen 560 drauf.
1840 +- 1740 + 560 = 660
Der WR wird also auf 660 Watt begrenzt, 100 Watt verbrauchst Du, es werden nur 560 Watt eingespeist.
Anderes Beispiel
1840 +- 1240 + 560 = 1160
Der WR liefert max. 1160 Watt, 600 Watt verbrauchst Du gerade selbst, bleiben also nur 560 zum Einspeisen.

Liefert die PV keine 1840 Watt, sondern nur 1000 Watt, ist das vollkommen Egal, weil Du den WR auf 600 Watt begrenzt hast, 400 Watt also sowieso nicht ankommen.

So, wenn die Einspeisung jetzt auf z.B. -100 Watt sinkt, weil dein Eigenverbrauch gerade gestiegen ist, dann wäre es
1840 +- 100 + 560 = 2300. Der WR würde also auf max gestellt, wobei man hier eventuell noch ne kleine Angleichung einbauen müßte, das auch nur 1840 an den WR gesendet wird. Meiner Schluckt das zwar (liefert dann auch ein wenig mehr, als er sollte), aber erzeugt einen Fehler im Protokoll. Aber auch nur da, fällt also nicht so sehr auf.

Ich muß da mal ein wenig rumrechnen, recherchieren und schau dann mal, ob ich ne neue passende Formel finde.
 
Hallo RudiP,
ich benutzte deine Einspeiseregelung schon seit letztem Jahr und bin super zufrieden. Aber eine Frage habe ich noch.
Mit der ganzen Materie Codes und so kenne ich mich nicht aus. Wie muss ich unten den Code abändern, wenn mein Sensor in der yaml einen positiven Wert ausgibt? Also nicht -550 sondern +550. {{ ( 850 + (states('sensor.tasmota_strom_export') | int /2)) }}.
Gruß und Danke
transputer
 
Wenn
YAML:
(states('sensor.tasmota_strom_export')
550 liefert, dann wird
YAML:
-(states('sensor.tasmota_strom_export')
-550 liefern.
 
Ich fürchte, Du hast Recht. Meine Formel passt nur bei kleinen Anlagen.
(...)
Darüber habe ich mir etwas Gedanken gemacht. Ich denke es liegt daran, dass kleinere Anlagen einfach nicht so weit von den 600 W Einspeisung weg sind. Daher dein Ansatz mit der festen Zahl.
Ich habe jetzt folgendes Template:
YAML:
{{ [((states('sensor.WR_aktuelles_Limit') | int) * Anzahl_WR + (states('sensor.aktuelle_Einspeisung') | int) + 400), Maximale_Leistung_WR] | min / Anzahl_WR}}
Ich nehme also keine fixe Zahl, sondern immer das aktuell eingestellte Limit. In der Automation ist dann keine Fallunterscheidung mehr bei der Action notwendig. Die Formel reguliert den/die WR schrittweise.
Habe ich heute mit voller Leistung, halber Leistung und verschiedenen Verbrauchslasten getestet und funktioniert soweit.
Ich muß da mal ein wenig rumrechnen, recherchieren und schau dann mal, ob ich ne neue passende Formel finde.
Vielleicht findest du noch einen anderen Ansatz, aber teste mit deinem Setup gerne mal meine Formel.

Beste Grüße,
brainiii
 
So arbeitet die Logik. Für ganz kurze Zeit speist man natürlich mehr ein als 600 W, aber dann regelt sich das sehr schnell.
Um 8:30h begann das E-Auto zu laden und sofort ging die Drossel wieder auf.
 

Anhänge

  • IMG_3181.jpeg
    IMG_3181.jpeg
    290,2 KB · Aufrufe: 9
Ich konnte es bisher noch nicht testen, da ich aktuell zu viel Strom verbrauche bzw. die PV nicht genug liefert.
Aber ich hab ein Auge darauf. :D
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
5.646
Beiträge
55.408
Mitglieder
5.504
Neuestes Mitglied
thburkhart
Zurück
Oben