Eine etwas komplexere Automatisierung, Nulleinspeisung PV mit Speicher, Hoymiles

holgster

New member
Hi,

Ich möchte die angehängte Logik in HA abbilden.
Leider wird das mit der Automatisierungs GUI schwierig denke ich.
Jetzt gibt es scheinbar 100 Möglichkeiten sowas zu machen.
Alle sind kompliziert, selbst für jemanden der einen längeren Programmierbackground hat.
Hat jemand einen Tipp, wo ich diesen Code sinnvollerweise wie erstelle?

Vielen Dank im VorausIMG-20240310-WA0002.jpeg
 
Nein, kompliziert ist das mit der Automatisierung überhaupt nicht. Ich habe hier sowas in der Art am laufen.
Einfach mal hier Nachlesen, da habe ich beschrieben, wie ich das gemacht habe.
Lässt sich sicherlich leicht an deine Bedürfnisse anpassen, die, wie ich leider zugeben muß, trotz der Zeichnung nicht ganz Verstanden habe.
Eine Abfrage alle 5 Sekunden solltest Du tunlichst unterlassen, Müllt nur unnötig die Logs zu und macht ja keinen Sinn, wenn sich die Werte nicht verändert haben. Ändern sich aber die Werte, kann eine Automatisierung ja sowieso darauf reagieren.

Was genau willst Du erreichen ?
Du willst wissen, ob es Tag oder Nacht ist, also der Wechselrichter was tut. Halte ich in dem Zusammenhang für unnötig, weil der Sollwert 100 Watt auch so wieder eingestellt würde.
Strommessung Zentrale sagt mir nun natürlich gar nichts. Auch was dein Sollwert sein soll, bin ich mir nicht sicher.
Ein paar mehr erklärende Worte wären hier schon hilfreich.
 
Mahlzeit. Erstmal danke für den Link.
Naja ich möchte halt das erreichen was im Struktogramm steht und zwar alle x Sekunden.
Der Inhalt spielt hier auch keine Rolle sondern eher die beste Vorgehensweise für diese mehrfach verschachtelten If Anweisungen.
Muss ich mich mit Templates, Skripten, Automatisierungen oder womit beschäftigen?
Danke
 
Je nachdem, was Du erreichen willst, mit allem.
Und da wir immer noch nicht wissen, was da diverse Bezeichnungen sein sollen, kann man auch kaum sagen, wo das nachher eingestellt werden soll.
Sollen es nur Variablen sein, reicht vermutlich Automatisierung und Helfer.

Ich versuch es mal ein wenig zu Übersetzen und in meinen Augen Sinnvoll umzustellen.

Auslösung mit:
WENN Strommessung Zentral > 10 Watt DANN
Aktion mit WENN DANN
WENN Sollwert < Limit DANN Sollwert = Sollwert + 10
ELSE Sollwert = Sollwert - 10

Und wenn es den noch sein muß, ein zweiter Aktion Zweig mit.
WENN Wechselrichter = unavailabel
DANN Sollwert = 100
 
OK, also ich versuche es mal grob zu beschreiben aber die Logik steht. (Struktogramme sind ja sprachenunabhängig, darum habe ich auf IF THEN ELSE verzichtet) Ich möchte hier auch keinen fertigen Code angeboten bekommen oder irgendwas an der Logik ändern sondern nur den einfachsten Weg zur Lösung.

Also, wenn ich am Zähler messe, dass wir Strom aus dem Netz beziehen möchte ich mehr Strom aus meiner Batterie ziehen. Dafür gibt es den Sollwert der hier in der Logik überall geschrieben wird.
Das ist eine Entität.
Alle Eingangswerte sind auch Entitäten von Geräten (z.B. Shelly 3EM für die Strommessung etc.)
Dann gibt es noch so Randbedingungen wie die Abfrage einer Obergrenze (in Watt) bis zu welcher ich die Batterie belasten möchte (Limit). Das wird wohl ein Helfer werden o.ä. irgendwas was man auf dem Dashboard bearbeiten kann.
Wenn der Wechselrichter ausgeschaltet ist (wird woanders gelöst) soll der Sollwert auf 100 gesetzt werden damit wenn er das nächste Mal einschaltet auf 100 steht. Das könnte ich auch anders machen, steht aber halt jetzt einfach hier.
Achso, das soll eine Sollwertrampe sein, also wird der Sollwert alle 5 Sekunden um 10Watt erhöht solange wir Strom aus dem Netz beziehen (außer wird haben das Limit erreicht) und umgekehrt...also wenn wir weniger Strom verbrauchen wird der Sollwert langsam runtergefahren.
Hoffe, das erklärt etwas besser warum ich das angehängte Struktogramm genau so umsetzen möchte.
Wie gesagt, sind alle Entitäten, Helfer etc. Wechselrichter aktiv ist auch eine binäre Entität.
Die Rampenschritte werden vielleicht später auch Variablen ist aber hier jetzt zu detailliert.
Viele Grüße
 
Ja, dann stimmt mein obiger Pseudocode ja. Muß also nur eine Automatisierung so erstellen, deine Entitäten einsetzen, dann sollte das funktionieren.
Und wenn Du unbedingt alle 5 Sekunden die Automatisierung laufen lassen willst, dann als Auslöser "Zeit und Ort" wählen, da dann Zeitraster und bei Sekunden schreibst Du dann "/5" für alle 5 Sekunden rein.
 
Zurück
Oben