Gleitende Mittelwerte für Schaltung Heizstab

Begonnen von Mellowback, 28 September 2022, 10:19:22

Vorheriges Thema - Nächstes Thema

Mellowback

Müsste doch so passen, oder ?


(
([SolarEdge:MittelwertFreieLeistung] >= 1800) ## ...WR über 1800 Wattl
)
(
## Heizstab an
set Heizstab on,,
)
DOELSE
(
([SolarEdge:MittelwertFreieLeistung] <= 500) ## ...WR unter 500 Wattl
)
(
## Heizstab aus
set Heizstab off,,

)

DetlefR

Hallo,

damit das ohne ständiges Ein/Aus funktioniert, muss in die Berechnung von MittelwertFreieLeistung der Heizstab mit einbezogen werden.
D.h. wenn der Heizstab an ist, die Leistung des Heizstabes zur "freien Leistung" addieren.
Dann ist auch kein else/doelse notwendig.

Mellowback

wäre aber auch nicht effektiv da ja auch andere Geräte wie Waschmaschine den Wert übersteigen können.
Das müsste doch aber mit dem DOELSE funktionieren, oder ?

DetlefR

Man muss das mit der freien Leistung nur anders interpretieren. Selbst wenn der Heizstab schon eingeschalten ist, ist das noch "freie Leistung", da sie bei Bedarf zu/abschaltbar ist.

Der Heizstab hat 3000W
Der Schwellwert zum Schalten liegt bei 3100. Er darf nicht weniger als die Leistung des Heizstabes sein. Außer "freie Leistung" kann negativ werden.

Frei 4000. Heizstab schalten ein. Frei sind weiterhin 4000(1000+3000). Heizstab bleibt an.
Waschmaschine kommt dazu(2000W). Frei 3000(0+3000). Heizstab schaltet ab. Frei 2000(4000-2000+0)Heizstab bleibt aus.

Ich hoffe, es ist einigermaßen rübergekommen. Mit dem Erklären hab ich es nicht so.  :-[

Mellowback

Die Logik habe ich verstanden. Mir ging es nur noch darum ob mein DEF korrekt ist.

Vorab Danke

Skusi

Ich habe meinem meinem SML Stromzähler Device ein User Reading verpasst, das die aktuelle Einspeisung  mit den aktuellen Leistungen meiner 2 Ölradiatoren, die ich zum verheizen benutze, verrechnet.

Auf dieses Reading das ich noch mit dem Aggregator auf Mittelwert alle 60 Sekunden gezähmt habe, triggert mein Stufen DOIF zum zuschalten der Radiatoren.

So ich der Wert auf den ich reagiere immer der aktuelle Überschuss, egal welche Leistung gerade verheizt wird.

userReading:

Ueberschuss {sprintf "%.0f",((ReadingsVal($NAME,"SML_Watt_Summe",0) - ReadingsVal("Radiator1","power",0) - ReadingsVal("Radiator2","power",0)))}

DOIF:

defmod Heizen_mit_PV_Ueberschuss DOIF ([Stromzaehler:Ueberschuss] > -490)\
(set Radiator1 off, set Radiator2 off) \
\
DOELSEIF ([Stromzaehler:Ueberschuss] <= -490 and [Stromzaehler:Ueberschuss] > -740)\
(set Radiator1 on, set Radiator2 off) \
\
DOELSEIF ([Stromzaehler:Ueberschuss] <= -740 and [Stromzaehler:Ueberschuss] > -1330)\
(set Radiator1 off, set Radiator2 on)\
\
DOELSEIF ([Stromzaehler:Ueberschuss] <= -1330)\
(set Radiator1 on, set Radiator2 on)


Die Schaltstufen sind auf die Leistungen der Radiatoren abgestimmt und um 100 W nach oben verschoben. Die Überlegung ist das es auch günstiger ist als Gas wenn ich nur ca 70 % der Nennleistung aus der Einspeisung nehme.
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

hankyzoolander

Hallo,
bin so etwas ähnliches am bauen.
Idee ist es den Überschuss an erzeugtem Strom in den Heizkessel zu speisen. Als Rücklaufanhebung.
Hardware:
Einen Bypass im Rücklauf aus 1 1/2" Zoll rohr.
Eine kleine Zirkulationspumpe
2 Heizstäbe, jeweils 150 Watt
2 Heizstäbe, jeweils 100 Watt
3 Temperatursensoren DS18b20
3 kurze 1/2" Zoll Tauchhülsen
evt. Magnetventil und oder Rückflussverhinderer

Relaiskarte mit 8 Relais
Finder Hutschienen Relais 220V

Software:
([stromzaehler:power] > -100)
(set relais1 off, set relais2 off, set relais3 off, set relais4 off)           
DOELSEIF ([stromzaehler:power] <= -100 and [stromzaehler:power] > -150)       
(set relais1 off, set relais2 off, set relais3 on, set relais4 off)

DOELSEIF ([stromzaehler:power] <= -150 and [stromzaehler:power] > -200)       
(set relais1 on, set relais2 off, set relais3 off, set relais4 off)

DOELSEIF ([stromzaehler:power] <= -200 and [stromzaehler:power] > -250)       
(set relais1 off, set relais2 off, set relais3 on, set relais4 on)

DOELSEIF ([stromzaehler:power] <= -250 and [stromzaehler:power] > -300)       
(set relais1 on, set relais2 off, set relais3 on, set relais4 off)

DOELSEIF ([stromzaehler:power] <= -300 and [stromzaehler:power] > -400)       
(set relais1 on, set relais2 on, set relais3 off, set relais4 off)

DOELSEIF ([stromzaehler:power] <= -350 and [stromzaehler:power] > -400)       
(set relais1 off, set relais2 on, set relais3 on, set relais4 on)

DOELSEIF ([stromzaehler:power] <= -400 and [stromzaehler:power] > -500)       
(set relais1 on, set relais2 on, set relais3 on, set relais4 off)

DOELSEIF ([stromzaehler:power] <= -500 and [stromzaehler:power] > -800)       
(set relais1 on, set relais2 on, set relais3 on, set relais4 on)


Tempsensor 1 soll vor den Bypass
Tempsensor 2 soll hinter den Bypass
Tempsensor 3 soll in den Bypass

Wenn Tempsensor 3 z.b. 50°C misst, soll relais5 "Pumpe" für gewisse Zeit eingeschaltet werden, und drückt erwärmtes Wasser in den Rücklauf von Kessel.

So ist mal der Plan.
betateilchen  <--- my personal hero