NEWS
PV Überschuss -> Wetter -> Mindestlaufzeit
-
Hallo Forum,
derzeit verwende ich in ioBroker ein Blockly Script dafür, um den aktuellen Ertrag meiner PV Anlage an die Heizungssteuerung zu übermitteln.
Dies ist relativ rudimentär, erfüllt aber bislang seinen Zweck.
Nun stehe ich vor der Herausforderung, dass meine Wärmepumpe möglichst 25min Mindestlaufzeit haben soll um effizient zu sein und auch das Material zu schonen. Das kann ich zwar in meiner Heizungsfunktion einstellen, wird aber vom Schalteingang mit dem Namen "Freigabe Funktion" überschrieben. An diesem Schalteingang hängt meine Vergleichsfunktion, die ab 3kW PV Ertrag ein EIN sendet.
Nun passiert es, dass witterungsbedingt der Ertrag um die 3kW schwankt und meine Wärmepumpe immer an und ausgeschaltet wird.Phase 1:
Daher möchte ich mein Blockly Script dahingehend erweitern, dass eine Mindestlaufzeit eingestellt werden kann. Dazu würde ich versuchen, den Status der Wärmepumpe auch noch auszulesen, so dass erst bei dessen Trigger der Timer losläuft.
Also sowas wie:- PVLeistungAktuell / 100 = PV Überschuss
- Wenn Wärmepumpe = EIN dann PV Überschuss für x Minuten einfrieren
oder vermutlich ist es besser, die in der Heizungsregelung befindliche Vergleichsfunktion mit dem Blockly zu ersetzen und nur 0/1 in die Regelung zu senden. Das müsste dann sowas hier sein:
- Wenn PVLeistungAktuell > 3000 dann PV Überschuss = 1
- Wenn PV Überschuss = 1 und Wärmepumpe = 1 dann PV Überschuss für x Minuten = 1
Phase 2:
In Abhängigkeit von der Wettervorhersage möchte ich dann den Schwellwert für PV Überschuss ändern. Bei schlechtem Wetter 4000 kW und bei schönen Wetter 3000 kW.Könnt ihr mir dazu Tipps geben?
Danke
Henri -
@hennerich sagte: Blockly Script dafür, um den aktuellen Ertrag meiner PV Anlage an die Heizungssteuerung zu übermitteln.
Das Intervall ist kontraproduktiv! Irgendwann stürzt ioBroker damit ab.
Besser so:@hennerich sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
eine Mindestlaufzeit eingestellt werden kann.
Erfasst Du den PV-Überschuss (Einspeisung in das Netz) oder die erzeugte PV-Leistung?
-
@paul53
Du meinst so?
-
@hennerich sagte: Du meinst so?
Ja.
-
@paul53
Danke dir! Ich glaube, dass ich die von dir beschriebenen Probleme schon hatte und nicht wusste, warum -
@paul53 sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
Erfasst Du den PV-Überschuss (Einspeisung in das Netz) oder die erzeugte PV-Leistung?
Ich erfasse die aktuelle PV-Leistung unabhängig davon, was ins Netz gespeist wird.
-
@hennerich sagte: Ich erfasse die aktuelle PV-Leistung unabhängig davon, was ins Netz gespeist wird.
Dann sollte der Datenpunktname nicht "PV Ueberschuss" sein.
Für die Wärmepumpensteuerung kann bei Verwendung der PV-Leistung die Hysterese kleiner sein, als die Leistungsaufnahme der WP. Eine Hysterese sollte aber immer verwendet werden, zusätzlich zur Mindest-Einschaltdauer. -
@paul53 sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
Für die Wärmepumpensteuerung kann bei Verwendung der PV-Leistung die Hysterese kleiner sein, als die Leistungsaufnahme der WP. Eine Hysterese sollte aber immer verwendet werden, zusätzlich zur Mindest-Einschaltdauer.
Kannst du das einem Laien wir mir etwas näher erklären? Was genau macht die Hysterese?
-
@hennerich sagte: Was genau macht die Hysterese?
Eine Hysterese verhindert, das bei einem Messwert im Grenzbereich schwankend nicht ständig ein- und ausgeschaltet wird.
Beispiel mit einer Hysterese von 1000 (W) und einer Mindest-ED von 30 Minuten:
-
@paul53
Hey Paul, soll ich dir mal sagen, dass ich zu blöd bin die Funktion setze xyz auf im Blockly zu finden. Wo soll die denn sein?Edit sagt:
Ahh, eine benutzerdefinierte Variable ... Hast du das Objekt PV Grenzwert EIN manuell angelegt? -
@hennerich sagte: Hast du das Objekt PV Grenzwert EIN manuell angelegt?
Ja, unter "0_userdata.0". Deshalb:
@hennerich sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
In Abhängigkeit von der Wettervorhersage möchte ich dann den Schwellwert für PV Überschuss ändern.
-
Hallo Paul, damit ich es richtig verstanden habe:
Das Ausführen von delay* sorgt dafür, dass das jeweilige delay solange den darin enthaltenen Objektstatus behält, bis der Timer abgelaufen ist.
Lass mich mal versuchen, das ganze anhand eines Beispiels A durchzuspielen:- aktuelle PV-Leistung = Wert = grenzwertEin = 5.000W
- grenzwertAus = 4.000W
- letzter Wert = 5.100W (also abfallend)
Wert ist also größer als grenzwertEin und daher greift Bedingung Zwei, delayOff wird gestoppt und danach wird delayOff 30 Minuten lang den Wert von Switch auf false setzen. Korrekt?
Wenn ich diese Logik auf mich übersetze, dann brauche ich ja genau das Gegenteil. In diesem Fall muss meine Wärmepumpe true haben.
-
@hennerich sagte: letzter Wert = 5.100W (also abfallend)
Wenn zu diesem Zeitpunkt das Skript gestartet wird, passiert nichts bis 4000 W erstmalig unterschritten werden: Dann wird delayOff gestartet und nach 30 Minuten wird ausgeschaltet, wenn nicht innerhalb der 30 Minuten 4000 wieder überschritten wurden.
Am Vormittag passiert folgendes: Wenn 5000 W erstmalig und mindestens 10 Minuten lang überschritten werden, wird nach 10 Minuten eingeschaltet.
Falls Wert <= 5000
bedeutet für den sonst-Zweig:falls Wert > 5000 und vorheriger Wert <= 5000
= erstmaliges Überschreiten. Es darf immer nur ein Timer laufen.
Ausführen delayOn in 10 Minuten
ist eine Verzögerung der Aktion(en) um 10 Minuten.Damit die Wärmepumpe eingeschaltet wird, wenn das Skript am Tage bei hoher PV-Leistung gestartet wird, kann man außerhalb des Triggers einen Vergleich machen:
@hennerich sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
delayOff wird gestoppt und danach wird delayOff 30 Minuten lang den Wert von Switch auf false setzen. Korrekt?
Wenn die Bedingung erfüllt ist, wird gestoppt und der sonst-Zweig wird nicht ausgeführt.
-
@paul53
Guten Morgen Paul,ok, kompliziert. Ich hab das jetzt so nachgebaut wie du beschrieben hast:
Wobei ich mir noch unsicher bin, ob und was mir die 10min Verzögerung bringen sollen. Sicherlich ist das bei schönen Wetter relativ erwartbar. Wenn du aber paar Wolken vorbeiziehen hast, dann kann sich das auch schnell wieder ändern und die WP geht im schlechtesten Fall nie an. Ich würde das in Kauf nehmen. Daher hab ich den Timer auf 5min reduziert.
Ach, und noch ein Missverständnis meinerseits. Ich bin davon ausgegangen, dass
steuere Wärmepumpe EIN direkt ausgeführt wird und eben false 25min lang gehalten wird. Das stimmt so also nicht sondern NACH 25min wird Wärmepumpe EIN auf false gesetzt. -
@hennerich sagte: was mir die 10min Verzögerung bringen sollen
Damit bei starker Bewölkung die WP nicht bei jeder kleinen Wolkenlücke anspringt.
-
Hallo Paul, danke, dass du mich hierbei unterstützt.
Mir ist noch ein Punkt eingefallen, den ich im Script noch berücksichtigen muss. Meine Heizungssteuerung sieht vor, dass bei Anforderung durch spezielle Temperaturgrenzen (wie z.B. wenn meine Puffertemperatur oben auf unter 45°C fällt) der Trigger für einen Wärmeerzeuger (Wärmepumpe oder Ölbrenner) gegeben wird.
Das ist so derzeit konfiguriert:
Das Blockly soll perspektivisch den Schalteingang "Freigabe Funktion" der Anf.WP1 triggern. Die nachgelagerte Funktion Anf.Benner1 verwendet dabei als Freigabe den inversen Ausgang A5, an dem meine Wärmepumpe hängt. So ist sichergestellt, dass entweder die WP oder der Brenner läuft.
Wenn jetzt in der Brennerfunktion eine Mindestlaufzeit von 10 Minuten eingestellt ist, macht es dann Sinn den Start des Brenners noch zusätzlich im Blockly als eine Art Delay mit aufzunehmen? Und falls ja, wie würdest du das umsetzen? -
@hennerich sagte: im Script noch berücksichtigen muss.
Die Abhängigkeit von Puffer-Temperatur und Vorlauf-Sollwert ist doch intern (nachgelagert) geregelt. Was soll da zusätzlich Blockly übernehmen?
@hennerich sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
Wenn jetzt in der Brennerfunktion eine Mindestlaufzeit von 10 Minuten eingestellt ist, macht es dann Sinn den Start des Brenners noch zusätzlich im Blockly als eine Art Delay mit aufzunehmen?
Wozu? Ist doch sicherlich intern gesteuert. Außerdem fehlt die Eingriffsmöglichkeit: Mehr als die WP-Freigabe ausschalten, damit die interne Brennersteuerung aktiv wird, kann man nicht.
-
@paul53 sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
Wozu? Ist doch sicherlich intern gesteuert.
Das dachte ich bisher auch. Der Hersteller hat mir jedoch geschrieben, dass die "Freigabe Funktion" alle Ausgänge steuert unabhängig davon, ob die Mindestlaufzeit noch läuft oder nicht. Das würde also bedeuten, dass wenn der Brenner angeht und kurze Zeit später der Trigger für Wärmepumpe EIN kommt, dann geht der einfach aus und die Wärmepumpe startet.
Ich muss noch mal meinen Heizungsbauer fragen, ob das dem Brenner schadet, wenn der nur wenige Minuten läuft. Der Wärmepumpe schadet es auf jeden Fall und daher brauche ich ja diese Lösung hier. -
@hennerich sagte: Der Wärmepumpe schadet es auf jeden Fall und daher brauche ich ja diese Lösung hier.
Dadurch, dass die Steuerung der WP über Puffer-Temperatur und Vorlauf-Sollwert nachgelagert erfolgt, ist die Mindest-Einschaltdauer aus dem Blockly nicht garantiert.
-
@paul53 sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
@hennerich sagte: Der Wärmepumpe schadet es auf jeden Fall und daher brauche ich ja diese Lösung hier.
Dadurch, dass die Steuerung der WP über Puffer-Temperatur und Vorlauf-Sollwert nachgelagert erfolgt, ist die Mindest-Einschaltdauer aus dem Blockly nicht garantiert.
Doch, weil wie oben beschrieben die "Freigabe Funktion" der Master ist. Wenn die EIN ist UND die Anforderung von der Temperatur herkommt, dann läuft ja die WP. Oder übersehe ich da etwas?