NEWS
PV-Überschuss nach Prognose und Stufen für Heizstab
-
Hallo liebe Gemeinde :-),
ich muss dann doch jetzt mal auf das Schwarm Wissen zurückgreifen. Statt meinen Überschuss mehr oder weniger zu verschenken, möchte ich diesen gerne selbst noch nutzen um Heizöl zu sparen. Dafür habe ich die Heizung entsprechend mit einer E-Heizung aufgerüstet. Diese funktioniert auch wirklich sehr effizient.
Die Schaltung soll entweder anhand der Ertragsprognose, oder nach Stromüberschuss erfolgen. Das Skript funktioniert leider noch nicht so wie es soll. Nach Ertragsprognose wird geschaltet und auch die erste Stufe funktioniert, leider aber nichts weiter und ich finde meinen Fehler einfach nicht. Vielleicht kann mir hier jemand helfen.
Anbei ein Bild des Skripts
-
@bock-johannes Hallo,
du hast zwar sehr viele Timeouts aber du musst diese auch beenden, wenn eine andere Bedingung erfüllt ist.
Ich versuche das mal zu beschreiben:Wenn Bedingung 1 und Bedingung 2 erfüllt werden, wird nach 5 Minuten (Timeout 1) ein Ereignis geschalten. Sollte sich aber Bedingung 2 ändern, wird Timeout 2 gestartet, Timeout 1 läuft aber weiterhin. Daher kommt es zu Überlagerungen in den Aufgaben.
Du kannst das gut verbildlichen, wenn du anstelle der "steuere" Blöcke "Debug"-Outputs mit verschiedenen Texten einsetzt. Dann wirst du im Log sehen, was da alles im Hintergrund läuft und gestartet wird.
-
@chrille1507 also die Timeouts raus und statt dessen Pausen einfügen damit die Relais nicht so oft geschaltet werden? Das mit den Timeouts hatte ich hier im Forum gefunden bei Überschuss PV Laden an ein E-Auto.
-
@bock-johannes sagte in PV-Überschuss nach Prognose und Stufen für Heizstab:
Das mit den Timeouts hatte ich hier im Forum gefunden
dann sollte da auch etwas vom Stoppen von Timeouts gestanden haben.
Wenn ein Timeout zweimal gestartet wird kann er u.U. nie mehr gestoppt werden.
Woher soll der Stop-Befehl denn dann wissen welchen der laufenden Timeouts er stoppen soll -
@bock-johannes Das kannst du so erstmal versuchen aber du hattest die Timeouts ja nicht ohne einen Grund drin, oder?
-
@chrille1507 ich wollte mit den Timeouts erreichen das nicht so oft hin und her geschaltet wird... Ich schaue mir das aber mit dem Beenden nochmal an, wobei ja die Pause gleiches bewirkt....
Habe jetzt mal an jeden Timeout einen Stop Timeout gebaut. -
@bock-johannes Du brauchst für jeden Timeout einen Timeout-Stop -> siehe dazu die Bezeichnungen der Timeouts (timeout1, timeout2 etc.).
Ich verstehe was du machen willst, Timeouts sind (aus meiner Sicht) nicht die richtige Wahl dafür.
Ich bin gerade nicht an meinem PC aber ich werde versuchen, heute Abend mal meine Gedanken dazu in ein Blockly zu packen.
-
@chrille1507 super ich danke schon vielmals für die Tipps.... Ich versuche aktuell den Überschuss optimal zu verwenden. E-Auto, Heizung, Klimaanlage....
-
@chrille1507 ich hatte die Timeouts durch pausen ersetzt, jedoch wird entweder nach Ertrag geschaltet, oder die 1,5kw. Ganz verstehen kann ich es noch nicht....
-
@bock-johannes Hallo, ich bin mit meinen bisherigen Lösungen noch nicht zufrieden, daher noch kein Vorschlag von mir.
Wenn ich es richtig verstanden habe, ist der auslösende Faktor, die aktuelle Netzeinspeisung. Je nach Abfrageintervall ändert sich dieser Wert aber mehrmals in der Minute.
Mein Vorschlag würde in die Richtung gehen:
Wenn Netzeinspeisung größer als 2 kW dann schalte Heizstab 1.5 kW ein
Jetzt ist aber das Problem, dass mit dem Einschalten des Heizstabes die Netzeinspeisung stark sinkt und der Heizstab müsste abgeschaltet werden. Dies würde, gerade an bewölkten Tagen zu einen ständigen ein- und ausschalten führen.
Daher dazu die Funktion, wenn Netzeinspeisung kleiner 2 kW und Heizstab eingeschaltet, dann Heizstab ausschalten und das mit einem Timeout versehen.
So könntest du dich langsam heranarbeiten und schauen, ob das funktioniert.
Weißt du, wie ich es meine?
-
@chrille1507 ich hatte dazu im Skript die Einschaltsignale von den Abschaltsignalen getrennt, bin mir aber nicht sicher ob das so richtig war. Bei der Klimaanlage die ich so schalte ist es recht einfach, Netzeinspeisung über ... an, unter 100w aus. Beim Heizstab gehe ich ja noch einen Schritt weiter und schalte Ihn früher an wenn die PV Prognose eine gewissen wert für den Tag anschaltet, da die Batterie ja max 6000W aufnehmen kann.
-
@bock-johannes
Also das wäre jetzt erstmal ein einfaches Beispiel:In diesem Beispiel würde der Heizstab ausgeschaltet, 5 Minuten nachdem die Netzeinspeisung kleiner 2500 Watt ist.
-
@chrille1507 sagte in PV-Überschuss nach Prognose und Stufen für Heizstab:
@bock-johannes
Also das wäre jetzt erstmal ein einfaches Beispiel:In diesem Beispiel würde der Heizstab ausgeschaltet, 5 Minuten nachdem die Netzeinspeisung kleiner 2500 Watt ist.
was machst du mit dem laufenden timeout, wenn die nächste Messung auch kleiner 2500 ist?
Ruckzuck läuft der timeout zehnmal
-
@homoran oh ok....
Wie würdest du das dann lösen? -
@chrille1507 sagte in PV-Überschuss nach Prognose und Stufen für Heizstab:
@homoran oh ok....
Wie würdest du das dann lösen?das Ganze ist noch komplexer, da z.B. ein Übersxhuss von 2500 beim Einschalten des Heizstabs ja sofort auf max. 1000 fällt.
Da braucht es noch einige Variablen, die im Falls oder Sonst Falls abgefragt werden müssem.
bin aber nicht am PC
-
Ich würde das so lösen:
Wichtig: Die text Datenpunkte müssen wirklich auf die ID des Datenpunktes zeigen. Offensichtlicherweise habe ich diese nicht.
Der Baustein "wert" und "vorheriger Wert" stammt aus dem Trigger Bereich und ist da mit "ObjektID" vorgelegt.
-
@asgothian vielen Dank dafür, ich versuche das mal noch nachzubauen und da auch noch das vorzeitige Einschalten nach Ertragsprognose einzubauen....
So ganz den Durchblick habe ich aber bei den drei Grafiken noch nicht -
@asgothian ist der "Wert" auch eine Variable? Wo wird diese befüllt?
-
@bock-johannes sagte in PV-Überschuss nach Prognose und Stufen für Heizstab:
ist der "Wert" auch eine Variable? Wo wird diese befüllt?
@asgothian sagte in PV-Überschuss nach Prognose und Stufen für Heizstab:
Der Baustein "wert" und "vorheriger Wert" stammt aus dem Trigger Bereich und ist da mit "ObjektID" vorgelegt.
und wird daher mit dem Wert des Triggerereignisses befüllt