NEWS
Blockly für Stufeneinschaltung
-
Ich bräuchte aktuell ein Script für eine Stufeneinschaltung. Dieses soll abhängig von der PV-Produktion und in Abhängigkeit von einer Temperatur meinen bereits eingebauten Heizstab (3KW jeweils 3-Stufen ) schalten.
Beschreibung:
Wenn Produktion zwischen 1200 und 2200 Watt und Temperatur zwischen 40 und 55 Grad dann schalte Stufe 1.
Wenn Produktion zwischen 2201 und 3200 Watt und Temperatur 40 und 55 Grad, dann schalte Stufe 1 und 2.
Wenn Produktion ab 3201 Watt und Temperatur 40 und 55 Grad, dann schalte Stufe 1, 2 und 3.
Sobald Temperatur bei 55 Grad alles aus.
Sobald Produktion rückwärtig geht, Stufenschaltung rückwärts.Eventuell hat ja jemand so ein Script, oder kann behilflich sein?
Bislang hab ich noch keinen Anfang. -
Versuche es mal selbst sonst lernste nix.
Trigger auf Watt wenn aktualisiert,
Falls der Wert von Watt ist > 1200 und < 2200 und Temp ist > 45 Grad und < 55 Grad
mache steuere Stufe mit 1 usw. -
@quorle sagte: Heizstab (3KW jeweils 3-Stufen )
3 mal 1 kW?
Dann benötigt man drei 2-Punkt-Regler mit einer Hysterese von ca. 1200 W. Etwa so: -
@paul53 sagte in Blockly für Stufeneinschaltung:
@quorle sagte: Heizstab (3KW jeweils 3-Stufen )
3 mal 1 kW?
Dann benötigt man drei 2-Punkt-Regler mit einer Hysterese von ca. 1200 W. Etwa so:Danke schon einmal für deine ausführliche Hilfe.
Also es ist ein Heizstab, der jeweils 3 Heizspiralen mit je 1000W hat. Angeschlossen an 3-Phasen mit Anschluss Nullleiter. Somit könnte ich alle 3-Phasen einzeln schalten.Zudem muss berücksichtig werden, dass wenn die Temperatur bei 55°C ist alles abgeschaltet wird.
Was muss in den Datenpunkten ausgewählt werden bei "Scriptstart"?
-
@quorle sagte: Was muss in den Datenpunkten ausgewählt werden bei "Scriptstart"?
Die 3 Phasen des Heizstabes.
-
@paul53 sagte in Blockly für Stufeneinschaltung:
@quorle sagte: Was muss in den Datenpunkten ausgewählt werden bei "Scriptstart"?
Die 3 Phasen des Heizstabes.
Ich verstehe, aber ich verstehe noch nicht was es mit den 3 variablen "Heizung1, Heizung2 und Heizung3" auf sich hat?
-
@quorle sagte: was es mit den 3 variablen "Heizung1, Heizung2 und Heizung3" auf sich hat?
Das sind die Aktor-Datenpunkte der 3 Phasen des Heizstabes.
-
Ok, langsam verstehe ich das Script. Jedoch ist meine Konstellation etwas anders.
Ich habe 1 einzigen Heizstab der auf 3 Phasen läuft.
Phase 1 = 1000W
Phase 2 = 1000W
Phase 3 = 1000WGesteuert von 3 einzelnen Aktorkanälen.
-
@quorle sagte: Ich habe 1 einzigen Heizstab der auf 3 Phasen läuft.
Genau so habe ich es verstanden. Ersetze "HeizungN" durch "PhaseN".
-
Also ich habe dein Script etwas modifiziert. Damit sollte eigentlich Schwankungen der PV-Produktion abgefangen werden. Zudem sollte erst eine gewisse Zeit gewartet werden, bis die 1. Stufe einschaltet, dann wieder warten bis 2. Stufe und dann wieder warten bis 3. Stufe einschaltet. Und Telegram Meldungen.
- Leider ist es jetzt so, dass eigentlich permanent Telegram Meldungen kommen.
- Das mit den Schwankungsausgleich funktioniert irgendwie doch nicht so wie erhofft.
- Ich habe den Trigger-Datenpunkt auf die PV Produktion/Verbrauch gelegt. Wenn aber keine Produktion läuft, dann steht hier der Verbrauch mit "Minuswert" drin.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="8r-Evz4_P6Nb^eQ{,/4d">Vorgabe_Stufenschaltung</variable> <variable id="E3SRUlnSz]]x.yzvz/G#">Telegram_Meldung</variable> <variable id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</variable> <variable id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</variable> <variable id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</variable> <variable type="timeout" id="Wartezeit_Einschalten_Stufe_1">Wartezeit_Einschalten_Stufe_1</variable> <variable type="timeout" id="Wartezeit_Auschalten_Stufe_1">Wartezeit_Auschalten_Stufe_1</variable> <variable type="timeout" id="Wartezeit_Einschalten_Stufe_2">Wartezeit_Einschalten_Stufe_2</variable> <variable type="timeout" id="Wartezeit_Auschalten_Stufe_2">Wartezeit_Auschalten_Stufe_2</variable> <variable type="timeout" id="Wartezeit_Einschalten_Stufe_3">Wartezeit_Einschalten_Stufe_3</variable> <variable type="timeout" id="Wartezeit_Auschalten_Stufe_3">Wartezeit_Auschalten_Stufe_3</variable> </variables> <block type="procedures_callcustomnoreturn" id="j1Q/ynh34L%xJPDW[|-C" x="87" y="637"> <mutation name="Create States"></mutation> <next> <block type="on_ext" id="6oXee=8;NRXs$1BmU{CI"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Y?EClv`~bLlL]-N8,2+H"> <field name="oid">default</field> </shadow> <block type="field_oid" id="HQl^SkY=M.NcP%E4s~gz"> <field name="oid">modbus.0.inputRegisters.13009_Export_Power</field> </block> </value> <statement name="STATEMENT"> <block type="comment" id="Y)V~AI-*E_|?TCu#_]RH"> <field name="COMMENT">Vergleich auf Temperatur Min und</field> <next> <block type="comment" id="`3KmImc^Rrd|u80OoAC8"> <field name="COMMENT">PV muss Überschuss haben:</field> <next> <block type="controls_if" id="cAm`uEHrXg!)*b~B9Vz,"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="mwhrV)up46gGPed8=oDy" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="]1D+T`R5cKus52oKVygL" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="q}/a=R]C^Nw)?m$s%Ag6"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="GWQ2Y][/W/#`HVs[sAwA"> <field name="ATTR">val</field> <field name="OID">km200.0.dhwCircuits.dhw1.actualTemp</field> </block> </value> <value name="B"> <block type="math_number" id="!$u|sB9:.K:%}MtfP8Hy"> <field name="NUM">52</field> </block> </value> </block> </value> <value name="B"> <block type="logic_negate" id="-=@]xn4dvgtCe`^NoM5C"> <value name="BOOL"> <block type="logic_compare" id="3[O{qULEKiPP[4eH+dKp"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="C57}RS-cHP2f_GfxOB,+"> <field name="ATTR">val</field> <field name="OID">km200.0.dhwCircuits.dhw1.actualTemp</field> </block> </value> <value name="B"> <block type="math_number" id="~R`qgQGH+0FJoi]+3ZAZ"> <field name="NUM">57</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="-=%q9{9-Urh6s(UVq9ff" disabled="true"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="E]_x?g1wd1oE)W,n-S-n"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="t@lIUgZZ?,1?YR2PaVuJ"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="vHA6!p-ehT`JU8{sD:3o"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="bRTtQ=h]o7az{,Fu*;c4"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="U,fj@Q7h77AV7}}CjAxu"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="U.@@|x`hWK!^q4)gP7{#"> <field name="NUM">2600</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="BUdkQDZ9DiQ9qdbxl{_a"> <field name="COMMENT">Heizstab Stufe 1 einschalten:</field> <next> <block type="timeouts_settimeout" id="R]K6igzqWaektwB.^:bA"> <field name="NAME">Wartezeit_Einschalten_Stufe_1</field> <field name="DELAY">20</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="73Juliz^#}yeM3jtv3IQ"> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> <value name="VALUE"> <block type="logic_boolean" id="m],z*1%7vg+zVHlt)RO+"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="7S:t^#3ZzNLXPj,uAhUM"> <mutation name="Stufenschaltung_Vorgabe"> <arg name="Vorgabe_Stufenschaltung"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="aw,6eMVG5{kRX^At]1)i"> <field name="NUM">1</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="V4xG*,Yqfuh3x7bk`W}q"> <field name="NAME">Wartezeit_Einschalten_Stufe_1</field> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="GnmdG3#SdQ14PXz7s-o$" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="qm{/]vW~u?H/j1s.?F^W"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="p#!w|Va1O9G%*LX2CssP"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="}N3KK@f}zpd9k@QX)F5A"> <field name="NUM">1400</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="*6Uvs1.Lr0appj/fj)Vx" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_negate" id="-]XcFS2bu=DU_BJ;9i*E"> <value name="BOOL"> <block type="variables_get" id="/#Tj#cEkVLi|:k#P|iKJ"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> </block> </value> </block> </value> <value name="B"> <block type="logic_negate" id="$+^Rh6ei%tc#nzRCsap6"> <value name="BOOL"> <block type="variables_get" id="Cm.wOG-vU_L.,?e;!;2b"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="xzgPpANzR+?cCKr#zEXc"> <field name="COMMENT">Heizstab Stufe 1 ausschalten:</field> <next> <block type="timeouts_settimeout" id="z5k]Dtl^^Z)UxceB7UaX"> <field name="NAME">Wartezeit_Auschalten_Stufe_1</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="2pgG/Cy{aZg)%D5:]7C."> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> <value name="VALUE"> <block type="logic_boolean" id="*DkkU-9:^9)=xn[Wgf4p"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="iQ-M@km^$^;O5K=,^?R7"> <mutation name="Stufenschaltung_Vorgabe"> <arg name="Vorgabe_Stufenschaltung"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="DWz_e}im67k$X,XdBi6I"> <field name="NUM">0</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="HS(=i+zQQ0+NxgD=e{)9"> <field name="NAME">Wartezeit_Auschalten_Stufe_1</field> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="controls_if" id="=#JGllLZz-Jx[DexZ)tB"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-9+(J.yX^EKtoAA5Vv*6" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Vt/DEUs`t$FLmGhq;^B:"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="%SRp3#1acmpXZHdm)Tzw"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="Y(ds[U{?A70fvlGd5S8y"> <field name="NUM">2600</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="s~:e8=?aKr6sc,*//M;I"> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="pp9lXa4va/C3WENX6Os{"> <field name="COMMENT">Heizstab Stufe 2 einschalten:</field> <next> <block type="timeouts_settimeout" id="l`1Uw,-/GY$)S*MFF5SM"> <field name="NAME">Wartezeit_Einschalten_Stufe_2</field> <field name="DELAY">20</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="v|OboJ_3GgX/;]3Wtn.]"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> <value name="VALUE"> <block type="logic_boolean" id="_s??o_[Bo4~F^`=I(1FD"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="[8qD`fz=8G$oP)Js/lt8"> <mutation name="Stufenschaltung_Vorgabe"> <arg name="Vorgabe_Stufenschaltung"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="1v:;)5DP?JQT]^2KBH7Z"> <field name="NUM">2</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="D}Z2_;,xTRX{{qK+O-z6"> <field name="NAME">Wartezeit_Einschalten_Stufe_2</field> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="o?+A$)?Y4wTCi)_(%Wfp" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="yH,t~lC(SkT=ISDMx%=#" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="p^R7:LZL5Kv}D*Q~?Z-%"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="sBiMhGYh~1?ok@z/$V9Y"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="KfGk9jGsJRCC5`4wb^R@"> <field name="NUM">1400</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="bNTsUm$9sOW%Gt5Qv|@?"> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="Y7RlJV(T$~J/wJIiD1bD" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="variables_get" id="wu3qGzPA7Gs,K5.h-U0^"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> </block> </value> <value name="B"> <block type="logic_negate" id="Z;u6g!9lbm|*]~7{psjj"> <value name="BOOL"> <block type="variables_get" id="-hi!ipn=D(r#K2Jhdrqt"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="CTNR@EX7=S`q%TGDOBYz"> <field name="COMMENT">Heizstab Stufe 2 ausschalten:</field> <next> <block type="timeouts_settimeout" id="az)iL?xn=faXl,d?sj,x"> <field name="NAME">Wartezeit_Auschalten_Stufe_2</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="3$yQ=0_d8^c;,9NPnOr@"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> <value name="VALUE"> <block type="logic_boolean" id="(cm3.Lx_F)KJee0,tsq8"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="8E,v(OBOoHS[dQ]fCx-?"> <mutation name="Stufenschaltung_Vorgabe"> <arg name="Vorgabe_Stufenschaltung"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="P1rN@oQLb=4KYt]B0a0T"> <field name="NUM">1</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="B~B?o[_4A=NLT6RNd]g8"> <field name="NAME">Wartezeit_Auschalten_Stufe_2</field> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="controls_if" id="t1+?:iJGI9cA$Y4^P#te"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="x.uy~g^xI3Pi|X330R7p" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="QG/}:0/W{=XaTK:-#s5H"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="#f:k^O9.CB2qaKmi}R%x"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="M;E7qR+u2K._F@X:.lWO"> <field name="NUM">2600</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="]%~m6s|R%K2milM/GXYB" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="variables_get" id="rp+^6gAeAQK#D6NM6Y?1"> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> </block> </value> <value name="B"> <block type="variables_get" id=".Z!8xr[ukvm0oYC#cn]C"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="ulg!h+GY+HW0.bd|Z!o!"> <field name="COMMENT">Heizstab Stufe 3 einschalten:</field> <next> <block type="timeouts_settimeout" id="}02eTi$$G/n-~W#!!O,#"> <field name="NAME">Wartezeit_Einschalten_Stufe_3</field> <field name="DELAY">20</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="FQe9Gi1{Lm(vfalgRq3%"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> <value name="VALUE"> <block type="logic_boolean" id="c]NSF[~-1WOb6MMfd?)7"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="oaA=bu:zqjm^A;CMEXR|"> <mutation name="Stufenschaltung_Vorgabe"> <arg name="Vorgabe_Stufenschaltung"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="q/|yEa^Vvw1eF`#aSZwc"> <field name="NUM">3</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="pE:e/V5SIgkuSQg=r5Sv"> <field name="NAME">Wartezeit_Einschalten_Stufe_3</field> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="^B6L*z7b8}qOLrTml;XG" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="ykW/Id*c(^@-(MRu!S!o" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="NZ+7oKVfl(P.`bzN7{?)"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="U?^OoVXDz}(zVnYC}4#W"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="4uIqR3b2p$zzl{-iG!B;"> <field name="NUM">1400</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="4uw,CD,L5uqsP}!M~no*"> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="9z3fO-UFZmopkv5qYJg=" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="variables_get" id="7ba6HuC4Y1+cvCHpWGRd"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> </block> </value> <value name="B"> <block type="variables_get" id="_uYG5CKtyYL%Zi6cF5Xf"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="yPQ#{Ek[VL2;~5/ZMs9d"> <field name="COMMENT">Heizstab Stufe 3 ausschalten:</field> <next> <block type="timeouts_settimeout" id="x;px)+%r(nbZkp.bT~3c"> <field name="NAME">Wartezeit_Auschalten_Stufe_3</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="pe??aSH+p{^+rc;t:Dvf"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> <value name="VALUE"> <block type="logic_boolean" id="adofW0i)]8Y*Xjwa$S3S"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="9t3C):yG0^1pFO6,F$^f"> <mutation name="Stufenschaltung_Vorgabe"> <arg name="Vorgabe_Stufenschaltung"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="c$c$w?).WJ_l.6ApqII-"> <field name="NUM">2</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="^{C8BRm=^B+[_S!Xh*Vw"> <field name="NAME">Wartezeit_Auschalten_Stufe_3</field> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="kFpt.D22U?.Ot=jq78ad" inline="false" disabled="true"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="eTlxI?{XFA1m/]Pi[)(?"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="GJAZIU1iGFh6/,?7kER|"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="fMmi|[!aSJ,Wn272C;U5"> <field name="NUM">1200</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="RF.;do}/3a9wC!:Zn;|n"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="QvYjESF83X2gY/u,cG^R"> <field name="ATTR">val</field> <field name="OID">km200.0.dhwCircuits.dhw1.actualTemp</field> </block> </value> <value name="B"> <block type="math_number" id="j(WsBax]P}|vRkr{k~S]"> <field name="NUM">57</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="procedures_callnoreturn" id=")~04.~gY,77ak%a#3}h(" disabled="true"> <mutation name="Stufenschaltung_Vorgabe"> <arg name="Vorgabe_Stufenschaltung"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="ntsEuAe`z:xJ/,gdC;fj"> <field name="NUM">0</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="comment" id="3uT#cM_Wug4-;5t[3i*o"> <field name="COMMENT">Falls PV-Überschuss unter 1400W, oder</field> <next> <block type="comment" id="n]fjkM[H~?=MP[VPlGhV"> <field name="COMMENT">Temperatur Warmwasser über 55°C</field> <next> <block type="comment" id="*mk3EnlXj(yN:gOmM|}7"> <field name="COMMENT">alles abschalten !:</field> <next> <block type="variables_set" id="=_y}a+HBDCe~iXwxvx*="> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> <value name="VALUE"> <block type="logic_boolean" id="pAarc6EQ=u#3J0OOVaE)"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="@xYGSzyW{%.tPNr,z@x;"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> <value name="VALUE"> <block type="logic_boolean" id="y_?9vDh{;]jzc+L-q7[5"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="n6}4A1~Pj(:[FHt*dOEg"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> <value name="VALUE"> <block type="logic_boolean" id="MJm5dOabjQ6i@aY;9-[Y"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="Z?{XE?R5VO5Bjck,w4+l"> <field name="NAME">Wartezeit_Einschalten_Stufe_1</field> <next> <block type="timeouts_cleartimeout" id="SAaB5f7[n$F.8{CG{26]"> <field name="NAME">Wartezeit_Einschalten_Stufe_2</field> <next> <block type="timeouts_cleartimeout" id="=R|]vut%Znw42u_s0~];"> <field name="NAME">Wartezeit_Einschalten_Stufe_3</field> <next> <block type="timeouts_cleartimeout" id="fE2TPfr6si2g*an50Q2x"> <field name="NAME">Wartezeit_Auschalten_Stufe_1</field> <next> <block type="timeouts_cleartimeout" id="]/VbMU:f-qu2KWSPPJo%"> <field name="NAME">Wartezeit_Auschalten_Stufe_2</field> <next> <block type="timeouts_cleartimeout" id="^0BJYOfyon#:%AHXK!f1"> <field name="NAME">Wartezeit_Auschalten_Stufe_3</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id="Rq=oB:M*FURI0?%NVL8f" x="938" y="637"> <mutation> <arg name="Vorgabe_Stufenschaltung" varid="8r-Evz4_P6Nb^eQ{,/4d"></arg> </mutation> <field name="NAME">Stufenschaltung_Vorgabe</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="#ZAt#nTg!@GAa5Bck#]*"> <field name="COMMENT">Stufenschaltung Vorgaben State setzen:</field> <next> <block type="update" id="t-[n(e],zT9.M5Uobk4^"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.Stufenschaltung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="NR]fl{-jbxr1a4am#_3H"> <field name="VAR" id="8r-Evz4_P6Nb^eQ{,/4d">Vorgabe_Stufenschaltung</field> </block> </value> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="SX#:T$#7;_]BuRf?5mT;" x="987" y="762"> <mutation> <arg name="Telegram_Meldung" varid="E3SRUlnSz]]x.yzvz/G#"></arg> </mutation> <field name="NAME">Send Telegram</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="vr:+QlROLg9d3{f${h;e"> <field name="COMMENT">Nachricht über Telegram senden:</field> <next> <block type="telegram" id="CADZzz9;ZdIfo%RH,2}a"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">HTML</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id=",5,oUO7M1}f`(.Q,iJr;"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="=UM}lm_(/bZJFrt4$l)C"> <field name="VAR" id="E3SRUlnSz]]x.yzvz/G#">Telegram_Meldung</field> </block> </value> <value name="USERNAME"> <block type="text" id="3V:*#BlJq22J^g,t4D_m"> <field name="TEXT">Quorle</field> </block> </value> </block> </next> </block> </statement> </block> <block type="procedures_defcustomnoreturn" id="8MQuEK-owvX;BF$,8/BZ" x="1437" y="787"> <mutation statements="false"></mutation> <field name="NAME">Create States</field> <field name="SCRIPT">Y3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci5TdHVmZW5zY2hhbHR1bmcnLCB7DQogICBuYW1lOiAnV2FybXdhc3NlcnNwZWljaGVyIFRhdWNoc2llZGVyIFN0dWZlbnNjaGFsdHVuZycsDQogICBkZXNjOiAnV2FybXdhc3NlcnNwZWljaGVyIFRhdWNoc2llZGVyIFN0dWZlbnNjaGFsdHVuZycsDQogICB0eXBlOiAnbnVtYmVyJywNCiAgIHJvbGU6ICd2YWx1ZScsDQogICBtaW46IDAsDQogICBtYXg6IDMsDQogICBzdGF0ZXM6IHsNCiAgICAgIDA6ICJBdXMiLA0KICAgICAgMTogIlN0dWZlIDEgKDEwMDBXKSIsDQogICAgICAyOiAiU3R1ZmUgMiAoMjAwMFcpIiwNCiAgICAgIDM6ICJTdHVmZSAzICgzMDAwVykiDQogICAgfSwNCn0pOw0K</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="comment" id="qb8j8*{;NjJ~_qlgr3u," x="1438" y="863"> <field name="COMMENT">Scriptstart:</field> <next> <block type="variables_set" id="2opn~#2iYio_tnh*9,^l"> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> <value name="VALUE"> <block type="logic_boolean" id=".q8q)IgKDsKl7,J[aN|C"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="z4Qr;9NwJ:bJ}y5{4:g6"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> <value name="VALUE"> <block type="logic_boolean" id="9T!lRC,hwJ/%?fVQIu@6"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="k8TbGBc;Uk8*pnPKlU!H"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> <value name="VALUE"> <block type="logic_boolean" id="?yl9#-HE6cOUK.lT]uX)"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="/@nx5h1p]ef:Y:L^|L]%"> <mutation name="Stufenschaltung_Vorgabe"> <arg name="Vorgabe_Stufenschaltung"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="l$9#(-I,2^T#REPI+PJy"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="comment" id="Lu=R2~qia@LFHt9D|JPq" x="988" y="1063"> <field name="COMMENT">Setzen der Ausgänge über KNX:</field> <next> <block type="comment" id="[1Qq|::(8PhXjt6.MSCC"> <field name="COMMENT">Und Meldung für Telegram auswerten:</field> <next> <block type="on_ext" id=")lM:)HZ1vm,jAwzrxokv"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="E`4LyVWCkv|^akM^S-0R"> <field name="oid">0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.Stufenschaltung</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="DJlxt#hk~dIi.g7!oS+{"> <field name="COMMENT">Setzen der Ausgänge über KNX:</field> <next> <block type="controls_if" id="5?%LZ9@[HV5#Z8^mYDn5"> <value name="IF0"> <block type="logic_compare" id="8@,slr3{zQF7C3D*X2;G"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="19m*Xhxno#TXS2G{H]2d"> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> </block> </value> <value name="B"> <block type="get_value" id=")D;YyG]lhyUpZ@d6/)nT"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.Phase_1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="-?:7r}~c3}B)(Gd)1zzV"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.Phase_1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Z9p6mNKb|Z@6y6E5,eiT"> <field name="VAR" id="EKeVtW2D?9H?7pZR}C;1">Heizstab_Stufe_1</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="mKg:3(#jgM_Ms9SjtJ~9"> <value name="IF0"> <block type="logic_compare" id="=/_h}1*:ZOWNYMJHY~Z^"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="VHM=n9QbK`-1;ut_#B7t"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> </block> </value> <value name="B"> <block type="get_value" id="|NG`Ni}sHTIM!fj@3b.S"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.Phase_2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="W0_+?_xD~O=;XV{G-xS~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.Phase_2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=":z=g{1lC)!$mU!(UEg{o"> <field name="VAR" id="je^a_GLGu+B@Axq8E+wn">Heizstab_Stufe_2</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="zSt,.GEAaKO5q.y-ZJer"> <value name="IF0"> <block type="logic_compare" id="ov(~j8tziR3l+3JlTNL3"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="2u~Ab8wL^o7Zum@$-[Vn"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> </block> </value> <value name="B"> <block type="get_value" id="5EBtA*d;sQc+b$:XQ`9u"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.Phase_3</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="S2a.h`vxp@aO`L6|liy8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.Phase_3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="l4IB$BnqxgGgc^9ocan%"> <field name="VAR" id="udN^{w=wEbnHivjC`~o#">Heizstab_Stufe_3</field> </block> </value> </block> </statement> <next> <block type="comment" id="?^KfWL0OVYvm:{kZh[JA"> <field name="COMMENT">Auswertung Meldung Telegram:</field> <next> <block type="logic_switch_case" id="?vE{GRHS4`-#py63M`aD" collapsed="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" case="3"></mutation> <value name="CONDITION"> <block type="on_source" id="Bmi0wPk=~9!sU}[cklIC"> <field name="ATTR">state.val</field> </block> </value> <value name="CASECONDITION0"> <block type="math_number" id="[6n7r]-Tc2RRF}}vRKWZ"> <field name="NUM">0</field> </block> </value> <statement name="CASE0"> <block type="procedures_callnoreturn" id="Vw,G!Brk!LT?7xSp1QMK"> <mutation name="Send Telegram"> <arg name="Telegram_Meldung"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="HO#}Nr,k1VSc:v,D5AS]"> <mutation items="15"></mutation> <value name="ADD0"> <block type="text" id="rpAwrIq[wqcG^zC)a.c`"> <field name="TEXT"><b>PV-Anlage</b></field> </block> </value> <value name="ADD1"> <block type="text_newline" id="XL^V$OXM!Pp00ZyR-kse"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="uGQafaH#2@`}KMd%+aSf"> <field name="TEXT">PV-Anlage Überschuss <b>kleiner</b> Verbrauch.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="~n?Mp!~#TS7]GY@%L7=S"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="k7XIsmVsld%g1-r%ec^N"> <field name="TEXT">Oder Temperatur Warmwasserspeicher erreicht <b>erreicht</b>.</field> </block> </value> <value name="ADD5"> <block type="text_newline" id="xQ*gRt-Y~?jp;!q`9iR#"> <field name="Type">\n</field> </block> </value> <value name="ADD6"> <block type="text" id=".GOhZ7wwmcima4sEG4.W"> <field name="TEXT">Alle Heizstufen Warmwaserspeicher <b>abgeschaltet</b>!</field> </block> </value> <value name="ADD7"> <block type="text_newline" id=":@]-w0;3ghm0VG5=;7Bb"> <field name="Type">\n</field> </block> </value> <value name="ADD8"> <block type="text" id="[Q6q!#k/OqUYMT+0Gf]="> <field name="TEXT">Aktueller Überschuss: </field> </block> </value> <value name="ADD9"> <block type="get_value" id="-8%NTe%*B@nF!/{:Oocs"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.13009_Export_Power</field> </block> </value> <value name="ADD10"> <block type="text" id="?z,H|a~s$.=w1a2@AoEw"> <field name="TEXT"> Watt.</field> </block> </value> <value name="ADD11"> <block type="text_newline" id="#jzne-36cXQwoc2RGV!x"> <field name="Type">\n</field> </block> </value> <value name="ADD12"> <block type="text" id="VxSxkxkAejN|HMvpdko$"> <field name="TEXT">Aktuelle Temperatur warmwasserspeicher: </field> </block> </value> <value name="ADD13"> <block type="get_value" id="QVF*uk0gN[C^1%l3b$0T"> <field name="ATTR">val</field> <field name="OID">km200.0.dhwCircuits.dhw1.actualTemp</field> </block> </value> <value name="ADD14"> <block type="text" id="#!XVS97zm*/SN(}+?..u"> <field name="TEXT"> °C. Abschaltung bei 57 °C erfolgt!</field> </block> </value> </block> </value> </block> </statement> <value name="CASECONDITION1"> <block type="math_number" id="d*}%bGRDDM/Gi~I3RX6_"> <field name="NUM">1</field> </block> </value> <statement name="CASE1"> <block type="procedures_callnoreturn" id="wu:}$#|}.=@0*ARZ{GA%"> <mutation name="Send Telegram"> <arg name="Telegram_Meldung"></arg> </mutation> <value name="ARG0"> <block type="text_join" id=")gF:?SK/W5Vo0Ub^Y|BY"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="2[-W(y?Ev{QXT}aSznS-"> <field name="TEXT"><b>PV-Anlage</b></field> </block> </value> <value name="ADD1"> <block type="text_newline" id="mR^U@+VHU?LMlo5}GD5%"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="]c#Q]Y(dlFjLzugj0(w@"> <field name="TEXT">PV-Anlage Überschuss <b>größer</b> Verbrauch.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="}`.B-][))gwFI5*O0J+z"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="k!@V7}znSFHLY7IRze0Q"> <field name="TEXT">Heizstufe Warmwasser auf <b>Stufe 1</b> geschaltet!</field> </block> </value> <value name="ADD5"> <block type="text_newline" id="=qpqv(A[[`{F6bHmRs{q"> <field name="Type">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="p%]zhBNh$*TgB5+K^kCQ"> <field name="TEXT">Aktueller Überschuss: </field> </block> </value> <value name="ADD7"> <block type="get_value" id="*lBC.QySxk-Q@Ffx+Ahg"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.13009_Export_Power</field> </block> </value> <value name="ADD8"> <block type="text" id="}V;@S.pjh@9WfdiO*A0U"> <field name="TEXT"> Watt.</field> </block> </value> </block> </value> </block> </statement> <value name="CASECONDITION2"> <block type="math_number" id="{Y0$]Sc@h4E%a9S^UVUD"> <field name="NUM">2</field> </block> </value> <statement name="CASE2"> <block type="procedures_callnoreturn" id="|[5hD.wJcr{uZ_JbB:8P"> <mutation name="Send Telegram"> <arg name="Telegram_Meldung"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="IG*XEz61S.BW21Y?M:8!"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="?93_s:Wu,!Lblc7V+$)~"> <field name="TEXT"><b>PV-Anlage</b></field> </block> </value> <value name="ADD1"> <block type="text_newline" id="hShd%)0OP](S)Ri6:0s4"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="SSexEU`r1/R]u0xju]rj"> <field name="TEXT">PV-Anlage Überschuss <b>größer</b> Verbrauch.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="})5!1}g;[o[KjZ[_7:VT"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="Tho(QYDx|r4~NULg/@TO"> <field name="TEXT">Heizstufe Warmwasser auf <b>Stufe 2</b> geschaltet!</field> </block> </value> <value name="ADD5"> <block type="text_newline" id="=j?V}4-vx0Y6T$CetlI~"> <field name="Type">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="q2%q*EQE)l{QeXWV/Bn7"> <field name="TEXT">Aktueller Überschuss: </field> </block> </value> <value name="ADD7"> <block type="get_value" id="fq*IipyY%~Ay_Wu}1Kx*"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.13009_Export_Power</field> </block> </value> <value name="ADD8"> <block type="text" id="^%mi4~|S;yB/gUjc?{5v"> <field name="TEXT"> Watt.</field> </block> </value> </block> </value> </block> </statement> <value name="CASECONDITION3"> <block type="math_number" id=";OoFSLo~mveYigsYaOFl"> <field name="NUM">3</field> </block> </value> <statement name="CASE3"> <block type="procedures_callnoreturn" id="$)SoXxqZ?S?/BfGV)ZQf"> <mutation name="Send Telegram"> <arg name="Telegram_Meldung"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="]99OEs.2Q2#!{qgGI%yQ"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="c,c[pZePtin;ojj9d{n1"> <field name="TEXT"><b>PV-Anlage</b></field> </block> </value> <value name="ADD1"> <block type="text_newline" id="nUBNV9K!BqU0Ctr|DyLn"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="K%7:q[PEhry[Yn[3UQaj"> <field name="TEXT">PV-Anlage Überschuss <b>größer</b> Verbrauch.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="J:-_lydiX!EJ#rW1aHoy"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="]/Yx-)UbJ}a~r9YdVo#N"> <field name="TEXT">Heizstufe Warmwasser auf <b>Stufe 3</b> geschaltet!</field> </block> </value> <value name="ADD5"> <block type="text_newline" id="}0V8_)p+nJU4:sBq0IpC"> <field name="Type">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="#zhOw|U{x_45ree#4P.+"> <field name="TEXT">Aktueller Überschuss: </field> </block> </value> <value name="ADD7"> <block type="get_value" id="4eS~^!bJRKa@uok9D8z*"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.13009_Export_Power</field> </block> </value> <value name="ADD8"> <block type="text" id="(@=8a{cD]gDU!q^[XePG"> <field name="TEXT"> Watt.</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
@quorle sagte: Trigger-Datenpunkt auf die PV Produktion/Verbrauch gelegt. Wenn aber keine Produktion läuft, dann steht hier der Verbrauch mit "Minuswert" drin.
Also nicht PV-Produktion, sondern Einspeisung - Bezug? Dann muss dieses Prinzip verwendet werden, da der Heizstab diesen Wert beeinflusst: Wenn eine Phase zugeschaltet wird, sinkt die Einspeisung um 1 kW - allerdings bleibt diese Rückwirkung aus, wenn man Datenpunkte unter "0_userdata.0" steuert, was deshalb zum Testen ungeeignet ist.
@quorle sagte: sollte erst eine gewisse Zeit gewartet werden
Die Verzögerung bringt nichts, da sie die Vergangenheit erfasst. Um zu erfassen, dass nicht eine Wolke in Kürze die PV-Leistung reduziert, bräuchte man eine Prognose. Prognose-Daten stehen allerdings nicht zur Verfügung, so dass man nur hoffen kann, dass die PV-Leistung nicht zu stark schwankt. Wenn verhindert werden soll, dass zu häufig geschaltet wird, macht man die Hysterese größer.
Vorschlag mit Berücksichtigung der Rückwirkung des Heizstabes auf die Einspeisung:
EDIT: Die Nachricht lässt sich natürlich noch erweitern:
-
@quorle sagte: Trigger-Datenpunkt auf die PV Produktion/Verbrauch gelegt. Wenn aber keine Produktion läuft, dann steht hier der Verbrauch mit "Minuswert" drin.
Servus,
das mit dem minus Wert hab ich folgendermaßen gelöst:
Ich zerlege meinen "Gridfeedin" in zwei eigene Datenpunkte.
Ich stehe momentan vor dem selben Problem wie Du.
Meine Heizstäbe haben aber ein Thermostat und schalten automatisch bei Temperatur X aus, also komme ich nie in die Nähe der Kritischen Temperatur. Darum habe ich mich jetzt von der Temperaturregelung verabschiedet.
Ich will wie Du: mehr Strom -> mehr Phasen / weniger Strom -> weniger Phasen.
Mehr Strom-> mehr Phasen habe ich im Griff, allerdings das Stufenweise Abschalten klappt noch nicht.
Aber: ich bleib dran...Mfg
Tom
-
@steinmetz_4 Hallo Tom, @quorle Hallo quorle,
habt ihr eure Projekte abgeschlossen?
Ich würde das Thema gerne nochmal aufwärmen da ich eine ähnliches Projekt laufen habe, nur etwas "großzügiger". Ich habe zwei 1500l Schichtspeicher mit jeweils 4 Heizstäben und jeweils 3 Phasen, sprich 24 Aktoren. Dazu habe ich in jeder Schicht noch ein Thermostat also 8 Sensoren.Danke für euer Feedback
VG -
@streit187 sagte: sprich 24 Aktoren.
Das Beispiel mit 7 Stufen lässt sich sicherlich auch auf 24 Stufen erweitern.
@streit187 sagte in Blockly für Stufeneinschaltung:
in jeder Schicht noch ein Thermostat also 8 Sensoren.
Der Thermostat schaltet den zugehörigen Heizstab bei Erreichen des Grenzwertes aus?
-
@paul53 Wäre bei so vielen Stufen ggfs Sinnvoll, auf eine Lookup Table umzustellen? weiß aber nicht, ob das eine Lösung ist die in Blockly eine Vereinfachung wäre.
Bei 2x2 Heizstäben pro Phase wären auch noch feinziseliertere Abstufungen durch Reihenschaltung möglich
Ich habe zwei 1500l Schichtspeicher mit jeweils 4 Heizstäben und jeweils 3 Phasen
@Streit187 sind die "hintereinandergeschaltet? Also, dass der eine Schichtspeicher vom Output eines zweiten Schichtspeichers gefüttert wird?
-
@martinp @paul53 Entschuldigt bitte. Wie peinlich. Hab die Benachrichtigungen nicht gesehen. Vielen Dank für euer schnelles Feedback, im Gegensatz zu mir.
Also ich habe es inzwischen tatsächlich sehr zuverlässig am Laufen. Zum Glück mit einem Script und nicht mit Blockly. Zum Nachvollziehen finde ich das einfacher und übersichtlicher.
Genau, jeder Heizstab hat auf seiner Ebene ein Thermostat welches ihn abschaltet bzw. in meinem Fall jetzt nicht einschaltet.
In meinem Script jetzt wird alle x-Minuten (hier 5 da großer Stromspeicher verfügbar) der Wert von "Überschussstrom" genommen. Dieser durch 1000 (W) geteilt um die Menge der Heizstäbe zu bekommen die eingeschaltet werden dürfen.
Nun wird einer Liste erstellt mit der Anzahl der Heizstäbe die eingeschaltet werden dürfen und deren Temperatur nuter dem Schwellwert liegt.
Danach werden genau diese eingeschaltet und 5 Minuten später das gleiche Spiel von vorne.@MartinP Nein, die sind parallel mit mehreren Verbindungen. Es gibt also einen geringen Austausch welcher so auch gewüncht war.
Selbstverständlich teile ich das Script gerne wenn es Interesse daran gibt.
Ein wichtiger Punkt noch zum Thema Sicherheit. Das Erhitzen von so viel Wasser auf diese Art und Weise in einem geschlossenen Tank ist nicht ungefährlich. Deshalb habe ich diverse Sicherheitsfunktionen eingebaut.
Vom regelmäßg zu prüfenden Überdruckventil an den Tanks, über Timer in den Aktoren welche automatisch ausschalten wenn eine gewisse Zeit keine Steuerung stattfindet bis zu STB`s welche über ein Schütz den kompletten Saft abdrehen. -
@paul53 hallo, hättest du auch eine Vorlage für eine stufenlose Ansteuerung eines DP durch den Wert der PV? Mir fehlt in Blockly leider der Ansatz wie ich den PV-Bereich von 0-5kW in % umrechne.
PV-Erzeugung 5kW = 100%
PV-Erzeugung 0kW = 0%
Ansteuerung z.B. eines Dimmers 0-100% oder HUE-Wert durch %-Wert der ErzeugungIch freue mich auf deine Rückmeldung
-
@flkontakt sagte: stufenlose Ansteuerung eines DP durch den Wert der PV?
Du willst eine Nulleinspeisung realisieren? Dann nimm einen PI-Regler:
@flkontakt sagte in Blockly für Stufeneinschaltung:
PV-Bereich von 0-5kW in % umrechne.
Eine direkte Umrechnung der PV-Leistung in % macht wenig Sinn, da die PV-Leistung nicht die restlichen Verbraucher berücksichtigt.
-
@paul53 vielen Dank für die schnelle Rückmeldung, mir geht es hier eher um eine Art Visualisierung der Erzeugungleistung von 0-100%. Einen direkten Verbraucher will ich nicht schalten oder dimmen.
-
@flkontakt sagte: Visualisierung der Erzeugungleistung von 0-100%.
Dann nimm im unteren Blockly "aktualisiere" anstelle von "steuere".