Energieverbrauch Optimierer (inkl. Kachel)

Guten Morgen paresy,

aktuell würde ein „mitloggen“ nicht viel bringen, da die Poolwärmepumpe und die Poolpumpe noch im „trockenen“ stehen und sich vorerst keine Stati ändern.

Die Poolwärmepumpe soll nur per Optimierer dazu geschaltet werden, wenn die Poolpumpe läuft. Die Poolpumpe ist aber noch ein paar Monate ausgeschaltet da sie „offline“ ist. Der Status ist also aktuell dauerhaft AUS und die Bedingung nicht erfüllt. Nur der Optimierer zeigt dies falsch an. Die Variablen ändern sich aktuell bis zum Sommer nicht.

Ich habe mal 2 Browser parallel aufgemacht und direkt nebeneinander gelegt um zu zeigen, dass es zeitgleich aufgenommen wurde.

@paresy ich war zwar nicht angesprochen, habe ich aber das gleiche Problem.
Wenn ich meinem Speicher eine Bedingung hinzufüge, wird regelmäßig „Bedingung erreicht“ angezeigt. Das wechselt dann immer, mal wird kurz geladen, beim nächsten Durchlauf wieder blockiert.

Wie gesagt hatte ich das damals schon beim ersten Gerät und da wurde es dann von dir behoben.

Grüße
Stephan

Ich möchte meinen Beitrag nochmal hochschieben, da es in dem Beitrag derzeit sehr dynamisch zugeht und mehrere Probleme gleichzeitig behandelt werden. Zu meinem Problem kann wahrscheinlich nur @paresy etwas sagen.

Ich verstehe nicht, warum sich bei der go-e nichts tut? Die Variable „aktuell verfügbarer Ladestrom“ ist die Variable mit Aktion, welche den Ladestrom in Ampere ändert. So habe ich es verstanden. Wo ist mein Denkfehler?

Ich kann das Modul scheinbar nicht finden. Ich hab mal im Store geschaut. Ich hab lediglich die Kachel mit Energieverteilung aus der ich noch nicht so ganz schlau werde. Nutze aktuell einen 1,94kwh Speicher an einem HM1600. Sowie einen Shelly Pro 3EM und eine OpenDTU fürs Monitoring. Ich bräuchte da mal eine Hilfestellung welche Variable im Idealfall im Modul verknüpft werden muss an welcher Stelle… damit der Graph sinn ergibt. Den Energieverbrauch Optimierer… der Ist bei mir zwar installiert aber wo finde ich ihn? Als Instanz konnte ich nichts finden. … Edit ich habs nun gefunden :D… Ich ging davon aus… dass es schon installiert war…

Ich habe mir eine Variable anlegt und diese dann im Energieoptimierer hinterlegt.
Der Optimierer befüllt diese Variable mit dem aktuellen Wert in Watt.

In einem Skript habe ich dann folgendes stehen:

<?php
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
if ($_IPS['VALUE'] > 0) {
    RequestAction (43459,true); // ID Variable Wallbox aktiv 
} 
else 
{
    RequestAction (43459,false); // ID Variable Wallbox aktiv 
}
    $amp = floor(($_IPS['VALUE'])/230);
    GoeCharger_SetCurrentChargingAmperage(49676,$amp); // ID go-eCharger Instanz

Das Skript habe ich dann bei eigener Aktion bei der Variablen hinterlegt.

Zumindest für mich klappt das einwandfrei.

Grüße
Stephan

Der Optimierer erwartet eine Variable, die auf Watt arbeitet. D.h. du müsstest das passend umrechnen wie @firewire vorgeschlagen hat.

paresy

Ah, vielen Dank! Durch die Angaben in Optimierer in Ampere war ich davon ausgegangen, dass ich auch Ampere in der Variable vorgeben muss. Mit einer Hilfsvariable in Watt klappt es.

1 „Gefällt mir“

Ah, ja. Das Problem ist die Formulierung. Wenn im Optimierer die Bedingung erreicht ist wird damit intern gemeint, dass die Bedingung blockiert ist. Die Idee dahinter ist, dass z.B. die Ziel-Temperatur erreicht ist und dann ist diese Bedingung nicht mehr gegeben ist.

Ich denke ich sollte es eher in „Blockiert durch erweiterte Bedingung“ umbenennen, oder?

paresy

Ihr könnt den Hinweistext demnächst selber vorgeben, der bei einer Blockierung erscheint.

paresy

2 „Gefällt mir“

Das ist cool. Danke.

Aber ich bin mir nicht sicher ob das mein Problem löst? Oder verstehe ich es einfach falsch?

Ich habe meinen Speicher und mein E-Auto (es gibt eine Akku-SOLL Variable die als Bedingung hinterlegt ist) im Optimierer. Wenn ich jetzt das E-Auto auf Automatik stelle im Optimierer klappt das gut. Der Überschuss wird gegen null optimiert.
Gleiches gilt wenn ich meinen Speicher ebenfalls auf Automatik stelle. Das passt!

Wenn ich aber für meinen Speicher ebenfalls eine Bedingung (Akku-SOLL Variable, wie beim Auto) hinterlege, dann kommt regelmäßig „Bedingung erfüllt“. Beim nächsten Durchlauf lädt der wieder normal, sprich die Watt werden angezeigt. Dann wieder „Bedingung erfüllt“. Das geht immer hin und her. Sobald ich die Bedingung wieder lösche im Optimierer, klappt es.

Ich hoffe du verstehst was ich meine?

Grüße
Stephan

P.S. Bedingung erfüllt sollte doch nur stehen wenn der Ist-Akkustand dem Soll-Akkustand entspricht.
Also so hab ich die Bedingung eingerichtet.

Kann ich mir dieses Problem mal am Freitag Live ansehen? (Bin Morgen/Übermorgen auf Messe unterwegs)

paresy

Ich brauch anscheinend für die einfachste Regelung einen Tipp. :stuck_out_tongue:

Habe im Optimierer sogar alles entfernt was geht, Batterie raus, und andere Dinge auch.
Nur noch den regelbaren Heitzstab im Optimierer. Ich habe einen Überschuss von 6000W und speise sogar mit 2kw ein.

Der Optimierer regelt den Heizstab aber nicht. Ich kann ich jedoch manuell im Optimierer aktivieren und den Regler verschieben, dann funktioniert es.

Wo ist mein Fehler ?

image

Ich komme auch mit dem E-Auto nicht so recht klar. Als Soll-Variable habe ich eine Variable in Watt angelegt und rechne dann in Ampere um (durch 3*230V).
Eine kurze Weile (wenige Minuten) regelt der Optimierer dann auch den Ladestrom. Aber dann steht unter Bedingung „Verfügbarer Ladestrom zu gering“. Und aus diesem Zustand kommt der Optimierer auch nicht wieder raus.
Die Optimierung von anderen Verbrauchern klappt ohne Probleme.

Ich bin mir sicher, diese Frage wurde hier schon oft gestellt und eventuell auch beantwortet. Habe natürlich nach dem Begriff in diesem Thread gesucht, aber keine erklärenden Antworten gefunden. Zumindest hab ich es nicht verstanden.
Ich habe folgenden Testaufbau, alles derzeit Virtuell
Einen Akku der mit 500W geladen wird.
Ich will, dass der Ladevorgang bei -250W (250 Watt werden eingespeist) startet und wenn über 250 W verbraucht werden, soll der Ladevorgang unterbrochen werden. Das funktioniert auch, da ich die Hysterese auf 250W gestellt und den Akku mit 250W in der Liste der Verbraucher eingetragen habe. Aber wie müsste ich die Werte ändern, dass er nur bis +200W lädt? Die Hysterese geht ja in beide Richtungen.
Wobei, dann müsste ich die Hysterese auf 200 und auch den Akku auf 200 stellen. Andererseits, wenn der Akku anspringt zum Laden (dann bei -200) schnellt mir der verbrauch auf +300 und er dreht wieder ab. Bei 250 geht sich das aus. Und der Ladevorgang soll ja nauch nicht bei -200 starten, sondern bei sagen wir 250. Er soll ja nur bei +200 abbrechen.
Ich verstehs nicht, sorry.

Hat deine Variable nur den Überschuss drin, oder auch den Verbrauch? Beim relativen Modus muss die Variable im negativen Bereich auch den Bezug abbilden. Ansonsten weiß der Optimierer ja nicht, wann zu viel bezogen wird. Wobei das nicht dein Problem sein kann, da es ja nichtmal aktiviert wird.

Kannst du mal im Debug nachsehen was der Optimierer sagt/macht?

paresy

Ja, die Variable kann positiv (Bezug vom Netz) oder negativ (Einspeisen) sein. Wie gesagt. Mit Hysterese 250W und Verbrauch (in der Liste) 250W funktioniert es.
Und derzeit läuft alles in einer Simulation mit teilweise Echtdaten. Es wird derzeit noch der virtuelle Verbrauch bei aktiver Ladung berechnet. Dieser Wert ist auch im Energieoptimierer, aber hergeleitet von den aktuellen derzeitigen Verbräuchen bzw. PV Leistung. Es wird nur zum aktuellen Verbrauch/Einspeisung 500 W addiert, wenn ein Status auf true ist. Das tut alles.
Mir ging es nur um das Verständnis und die Zusammenhänge zwischen Hysterese, Verbrauch/Einspeisung und dem Wert der Verbraucher.

Meine Struktur sieht derzeit so aus, die das ganze simuliert

Der Energieoptimierer


Die Variable „Überschuss“ wird letztendlich durch den tatsächlichen Wert ersetzt. Jetzt ist es eben die berechnete Variable wenn der simulierte Ladevorgang aktiv ist.

Ich ahne böses… Mein Action Script der Dimmervariable ist das Problem gewesen ? Ich hatte es ursprünglich nur aus dem Webfront bedient. Bin nicht so der Coder. Sorry dafür.

Actionscript lief so natürlich nur aus dem Webfront.

<?php
// Überprüfen, ob das Skript von einer Variablenänderung aufgerufen wurde
if ($_IPS['SENDER'] == "WebFront") {
    // Setzen des neuen Wertes für die Variable
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

    // Umrechnung des Dimmer-Wertes (0-100%) in einen Leistungswert (0-3000W)
    $powerValue = ($_IPS['VALUE'] / 100) * 3000;

    // Senden des Befehls an den Heizstab
    file_get_contents("http://192.168.2.249/control.html?power=" . $powerValue);
}

Abgeändert…

<?php
// Entfernen der spezifischen Überprüfung auf den WebFront-Sender
// Dies ermöglicht die Ausführung des Skripts durch jede Art von Sender, einschließlich WebFront, Variable, Script, etc.

// Setzen des neuen Wertes für die Variable, sofern $_IPS['VARIABLE'] und $_IPS['VALUE'] gesetzt sind
if (isset($_IPS['VARIABLE']) && isset($_IPS['VALUE'])) {
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
    
    // Umrechnung des Dimmer-Wertes (0-100%) in einen Leistungswert (0-3000W)
    $powerValue = ($_IPS['VALUE'] / 100) * 3000;
} else {
    // Für Fälle, in denen das Skript ohne spezifische VARIABLE oder VALUE aufgerufen wird, definieren Sie einen Standardwert oder eine Handhabung
    // Beispiel: Standardmäßig den letzten Wert der Variable verwenden oder eine Fehlermeldung loggen
    $variableId = 12345; // Ersetzen Sie 12345 durch die tatsächliche ID Ihrer Dimmervariablen
    $powerValue = (GetValue($variableId) / 100) * 3000;
}

// Senden des Befehls an den Heizstab
file_get_contents("http://192.168.2.249/control.html?power=" . $powerValue);

:pray: :pray: :pray:

Jetzt hangel ich mich mal weiter durch und werde noch die Batterie als Verbraucher hinzufügen und Bedingungen angeben. Hoffe das klappt.

Ah, sorry @paresy und @thezepter
Ich habe nicht bemerkt, dass die Antwort von Paresy auf deinen Beitrag bezogen war. :wink:

Eine Logikfrage zum Optimierer bei Nutzung einer Batterie, welche ich einfach als nichtsteuerbaren Verbraucher hinzufüge, habe ich noch.

Wenn ich einen Prio 1 Verbraucher (Batterie) mit einer geringeren Max Leistung angebe als er tatsächlich verbraucht, hatte ich gehofft dass der Optimierer dann vom eigentlichen Überschuss meinen maximal angegeben Wert vom Verbraucher abzieht und den restlichen Überschuss in den steuerbaren Prio 2 Verbraucher schiebt. Tut er aber nicht.

Beispiel:
Ich habe einen Batteriespeicher den ich mit 500W Leistung angebe.
Er verbraucht aber aktuell 1500W weil genug sonne da ist. (Er kann bis 4600)
Hatte gehofft, dass der 2. dimmbare Verbraucher nun mit 1000W angesteuert wird.
Also Überschuss „minus“ Prio 1 Verbraucher (max Vorgabe … nicht IST) = Überschuss für Verbraucher in Prio2.

Ist das nachvollziehbar ?
Wenn ich der Batterie eine Bedingung hinzufügen würde, funktioniert das nicht so explizit, da er dann die ganze „Batterieleistung“ aus dem Spiel nimmt und den ganzen Überschuss für den Prio2 Verbraucher nutzen würde.

Ich möchte einfach schon etwas vor der eigentlich maximalen Leistungsgrenze der Batterie den Heizstab dimmbar hinzuschalten. Überschuss abzüglich der aktuellen Batterieladeleistung.

Grüße

Hallo zusammen,
vielleicht kann mir jemand einen Tipp geben.
Ich konnte meine Wallbox per ModBus einbinden.
Über einen KNX Taster in der Garage wechsle ich zwischen dem Modus „Aktiv“ und „Automatisch“.
Beim Wechsel von Aktiv auf Automatisch durch den KNX Taster bleibt immer der letzte angesteuerte Wert. In meinem Fall 3680Watt. Parallel zur Umschaltung gab es keinen Überschuss.
IPS zeigt auch Automatisch & „Verfügbarer Ladestrom zu gering“ an, setzt jedoch den Wert nicht auf 0 Watt.
Hat jemand einen Tipp?
Vielen Dank! VG Christian