Warmwasserbereitung nach PV-Leistung und Zeitbereich

Begonnen von Vize, 05 Juli 2016, 18:53:31

Vorheriges Thema - Nächstes Thema

Vize

Hallo zusammen,

da meine Warmwasserbereitung (Wärmepumpe+Heizstab) leider keine Abfrage irgendwelcher Daten, Register oder Sonstiges zulässt, habe ich mir überlegt, das Ganze "hart" über einen Zwischenstecker (HM-ES-PMSw1-Pl) zu schalten.

Die Warmwasserbereitung soll (täglich) zwischen 11:00 und 12:30 starten und nach einer Laufzeit von drei Stunden enden.

Bedingungen für das Starten der Warmwasserbereitung im o.g. Zeitfenster:
- Photovoltaik-Ausgangsleistung liegt bei 3000 W oder mehr
- Netzeinspeisung liegt bei 2500 W oder mehr
- Batteriefüllstand liegt bei 80 % oder mehr

Ab 16:00 bis zum nächsten Tag 10:59 soll der Zwischenstecker ausgeschaltet werden, um ein Anspringen der Warmwasserbereitung zu vermeiden, wenn erfahrungsgemäß zu wenig PV-Leistung anliegt.

Auf dem Papier habe ich mir dazu erstmal folgendes DOIF gebaut:
([?11:00-12:30] and [httpmod_piko:Ausgangsleistung] >= 3000 and [httpmod_senec_online:gridexport_now] >= 2500
and [httpmod_senec_akku:Akku-Füllstand] >= 80)
(set ke_026_warmwasser_switch on-for-timer 10800) # channel_01 des HM-ES-PMSw1-Pl
DOELSEIF ([16:00-10:59]) (set ke_026_warmwasser_switch off)
DOELSE ()

Dazu die Attribute
attr di_warmwasser timerWithWait 1
attr di_warmwasser wait 310

damit die Warmwasserbereitung erst startet, wenn auch der nächste 5-Minuten-Wert die Bedingungen erfüllt.

Nun habe ich dazu noch einige Verständnisfragen, die ich mir selber nicht so richtig mit der commandref zu DOIF beantworten kann.
Erreiche ich mich dem o.g. DOIF ein Starten zu jedem Zeitpunkt zwischen 11:00 und 12:30, und läuft die Warmwasserbereitung dann auch immer für drei Stunden, selbst wenn sie z.B. erst um 12:29 startet, oder geht sie dann um 12:30 immer wieder aus?
Könnte ich dann auch den DOELSEIF-Zweig weglassen und nur den DOELSE-Zweig mit "set ke_026_warmwasser_switch off" belegen?

Möchte das ungern am "lebenden" Objekt testen, da ich nicht die ganze Nacht wachbleiben möchte, um aufzupassen, dass mir die Warmwasserbereitung nicht meinen Akku leersaugt...  ;) :-[

Ich bedanke mich schonmal für Tipps und Hilfe jeglicher Art!

Gruß
Andreas

Ellert

#1
ZitatErreiche ich mich dem o.g. DOIF ein Starten zu jedem Zeitpunkt zwischen 11:00 und 12:30, und läuft die Warmwasserbereitung dann auch immer für drei Stunden, selbst wenn sie z.B. erst um 12:29 startet

Ja, der on-for-timer steckt nicht im DOIF, sondern im Switch.

ZitatKönnte ich dann auch den DOELSEIF-Zweig weglassen und nur den DOELSE-Zweig mit "set ke_026_warmwasser_switch off" belegen?

Nein, dann wird, wenn Bedingung 1 unwahr wird, der DOELSE-Zweig ausgeführt und sofort abgeschaltet.

ZitatMöchte das ungern am "lebenden" Objekt testen, da ich nicht die ganze Nacht wachbleiben möchte, um aufzupassen, dass mir die Warmwasserbereitung nicht meinen Akku leersaugt

Du könntest einen Testlauf machen und dazu die set-Befehle ersetzen und nur loggen, mit:

{Log 1, "set ke_026_warmwasser_switch on-for-timer 10800"} bzw. {Log 1, "set ke_026_warmwasser_switch off"}
ggf. auch bei DOELSE einen Log-Befehl einfügen

Vize

Hallo Ellert,

super, danke dir für die Antwort...das bringt wieder ordentlich Licht ins Dunkle!!!
Wobei, das mit dem on-for-timer hätte ich wissen können...

Egal, Dankeschön!

Gruß
Andreas

Vize

Mahlzeit,

so, nach einigem Rumprobieren hab ich das jetzt für mich folgendermaßen gelöst:

Da bei lockerer Bewölkung die Ausgangsleistung des Wechselrichters und somit auch die Überschusseinspeisung sehr stark schwanken, habe ich zunächst die Funktion "Gleitender Mittelwert" von pah genutzt, um das etwas zu glätten. Danke an pah für die Funktion!

Damit frage ich dann die Readings "Ausgangsleistung_Mittel" und "gridexport_av" aus den entsprechenden Devices im DOIF ab.

([?11:00-12:30] and [httpmod_piko:Ausgangsleistung_Mittel] >= 3000 and [httpmod_senec_online:gridexport_av] >= 2.5 and [httpmod_senec_akku:Akku-Füllstand] >= 80 and [?ke_026_warmwasser_switch] ne "an")
(set ke_026_warmwasser_switch on)
DOELSEIF ([16:00] and [?ke_026_warmwasser_switch] ne "aus")
(set ke_026_warmwasser_switch off)
DOELSE ()


Zusätzlich noch die Attribute
attr di_warmwasser timerWithWait 1
attr di_warmwasser wait 310

um das Ganze noch weiter zu "glätten"...

Läuft damit bisher sehr zufriedenstellend.

Gruß
Andreas