NEWS
[gelöst]Heizstabsteuerung mit PV mit Speicher
-
So, nachgebaut!
Wird hier auch wieder ausgeschalten, wenn der Batteriestand unter 20% liegt?
oder fehlt das da noch?:

-
@jwedenig Für 06:00 würde ich dann noch einen Zeitplan bauen, der bedingungslos den Heizstab abschaltet.
-
So, nachgebaut!
Wird hier auch wieder ausgeschalten, wenn der Batteriestand unter 20% liegt?
oder fehlt das da noch?:

-
@martinp
aber wenn um 6 Uhr die Zieltemperatur noch nicht erreicht ist und noch Akkuspeicher übrige wäre dann wäre es ja falsch!@jwedenig sagte: wenn um 6 Uhr die Zieltemperatur noch nicht erreicht ist und noch Akkuspeicher übrige wäre dann wäre es ja falsch!
Nach 6:00 Uhr wird ausgeschaltet.
In deiner ursprünglichen Version verhinderte die Uhrzeitprüfung das Ausschalten nach 6:00 Uhr. -
@jwedenig sagte: wenn um 6 Uhr die Zieltemperatur noch nicht erreicht ist und noch Akkuspeicher übrige wäre dann wäre es ja falsch!
Nach 6:00 Uhr wird ausgeschaltet.
In deiner ursprünglichen Version verhinderte die Uhrzeitprüfung das Ausschalten nach 6:00 Uhr. -
@jwedenig sagte: drüberschaun?
Der SoC-Trigger gehört unter den Temperatur-Trigger!
Im SoC-Trigger muss die Funktion aufgerufen werden. -
@jwedenig sagte: jetzt aber?
Nein! Niemals Trigger im Trigger, sondern untereinander. Das blaue Warnsymbol ist nicht umsonst vorhanden.
Setze um 4:00 Uhr nochmsg. -
@jwedenig sagte: wenn um 6 Uhr die Zieltemperatur noch nicht erreicht ist und noch Akkuspeicher übrige wäre dann wäre es ja falsch!
Nach 6:00 Uhr wird ausgeschaltet.
In deiner ursprünglichen Version verhinderte die Uhrzeitprüfung das Ausschalten nach 6:00 Uhr.@paul53 sagte: Nach 6:00 Uhr wird ausgeschaltet.
... was nicht gut ist, denn dann wird in die PV-gesteuerte Aufheizung eingegriffen. Besser so:

Damit die PV-Steuerung der Aufheizung nicht überlagert, sollte diese erst ab 6:00 Uhr wirksam werden können.
Besser als eine feste Uhrzeit von 6:00 Uhr wäre die Astrozeit "Sonnenaufgang-Ende".
-
Ja, danke wiedereinmal, ich werde es probieren.
Das Skript wäre (siehe)oben als xml dabei, hier ein Sceenshot davon:
-
@jwedenig sagte: oben als xml dabei
Das ist kein XML-Code. Den exportierten XML-Code kopiert man in Code tags in das Forum.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="#ZO}puq!byH)d[RA8.u~">stufe</variable> <variable id="SXNPrFdTCWx5V%N:sTKY">temp</variable> <variable id="k{nMf[SMX?gF-mm8]|=G">mode</variable> <variable id="S`Q7El*S8|6o7zjVveF`">ueberschuss</variable> <variable type="timeout" id="delayOn">delayOn</variable> <variable type="timeout" id="delayOff">delayOff</variable> </variables> <block type="variables_set" id="V88W|+Iln7v+rgj)=Zch" x="-87" y="37"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> <value name="VALUE"> <block type="math_arithmetic" id="UPGMM~b*V$d-a*#;tS[D" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="~wy?L?:xH(Ni)}x,PFCD"> <field name="NUM">1</field> </shadow> <block type="logic_ternary" id="*J#=-SvRj,t10JsQT^g)" inline="true"> <value name="IF"> <block type="get_value" id="Di]!Es+iNie7c[+9)*;x"> <field name="ATTR">val</field> <field name="OID">shelly.0.shellyplus1pm#d4d4da094ad0#1.Relay0.Switch</field> </block> </value> <value name="THEN"> <block type="math_number" id="e=$;Dm*Kdv-Y8so-i~0#"> <field name="NUM">1</field> </block> </value> <value name="ELSE"> <block type="math_number" id="`O}G]nrYU1J(u^B(cJ4D"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="};}!|b@GbaTL{Y_1M4mO"> <field name="NUM">1</field> </shadow> <block type="logic_ternary" id=";LD9IL!$vH=aILt*01D]" inline="true"> <value name="IF"> <block type="get_value" id="UP`ZrOpZ0?YW7(BPAKu="> <field name="ATTR">val</field> <field name="OID">shelly.0.shellyplus1pm#a0a3b34d7024#1.Relay0.Switch</field> </block> </value> <value name="THEN"> <block type="math_number" id="_#[$Y6bW6I=KD6W@i8-H"> <field name="NUM">2</field> </block> </value> <value name="ELSE"> <block type="math_number" id="a`){P].I3sR02/vH?$|t"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="7R`M9}=u-yZAG[5j@K)$"> <field name="VAR" id="SXNPrFdTCWx5V%N:sTKY">temp</field> <value name="VALUE"> <block type="logic_compare" id="6[ohhz;+P4G2[.od]ImC"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="4Pb~v{Xo!`=Cczx2o0)l"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Warmwassertemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="m_`#qRy{mdN;8Wkutd}Z"> <field name="NUM">70</field> </block> </value> </block> </value> <next> <block type="on" id="LXkRS$m9ymaz|AU}(3D-"> <field name="OID">0_userdata.0.Warmwassertemperatur</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="/*xJA|RfsBE6jL/y4RMv"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="abt~D((tU./KQf)r!P5_"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="jxvpxN@GG/Fr3.@{p*Qg"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="KTT4cWRD*14oOM_eHEM-"> <field name="NUM">40</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="B@|!KIBBsgKl%wMaLLMA"> <field name="VAR" id="SXNPrFdTCWx5V%N:sTKY">temp</field> <value name="VALUE"> <block type="logic_boolean" id="~FL/KuNy;B%E^dbEM2~)"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="0W8i1Y/4aj=@g}9EL)5f"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="Wk:dm:!%FN!b-M}J8DT~"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="#L~Z[Ph@qd5Au:Y/Rxx/"> <field name="NUM">55</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="r+q`|M)Cmk#0{Z*?(tGl"> <field name="VAR" id="SXNPrFdTCWx5V%N:sTKY">temp</field> <value name="VALUE"> <block type="logic_boolean" id="yU:Uu{8YwH%(u[JY_z|5"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="-#-ZoUoJJzOWm:bymT4$"> <field name="NAME">delayOn</field> <next> <block type="controls_if" id="/hND@SJrrY?d.QSbT5g."> <value name="IF0"> <block type="variables_get" id="uu`Y?^o}1M0kt)2+}PL/"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="8V4C*+}E*6rfG:n8v%9j"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> <value name="VALUE"> <block type="math_number" id="c49%ZEXt|0rJ)c3%]Bg7"> <field name="NUM">0</field> </block> </value> <next> <block type="procedures_callnoreturn" id="B/^8#Eh:a=a,b;reJ%$U"> <mutation name="Heizstab"></mutation> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="^=k13pGi`kMjtE||vY.J"> <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="n:wY~I3GQO$7,0:+.oY="> <field name="oid">evcc.0.status.gridPower</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="eS.8I`Cbj?X+,h#Ii[CO"> <field name="VAR" id="k{nMf[SMX?gF-mm8]|=G">mode</field> <value name="VALUE"> <block type="get_value" id="{R{!vXhV35!~PTT}Y^p%"> <field name="ATTR">val</field> <field name="OID">evcc.0.loadpoint.1.status.mode</field> </block> </value> <next> <block type="controls_if" id="hmYi@K1![q7IP+`oD|(i"> <value name="IF0"> <block type="variables_get" id="MZl)|}gNS^ERpHs!P3{^"> <field name="VAR" id="SXNPrFdTCWx5V%N:sTKY">temp</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="U0g[6)DF7XBr6PjSBC1%"> <field name="VAR" id="S`Q7El*S8|6o7zjVveF`">ueberschuss</field> <value name="VALUE"> <block type="math_arithmetic" id="fF$hk1tVi-R05oeMt;V%"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="ixiYq]/$A+RSmijBZE[,"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="Cs,pKE7(!7+1jmwBW.2/"> <field name="NUM">1</field> </shadow> <block type="on_source" id="f=2?mi+jttya*Yya7dG."> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="comment" id="9X:XKXRgH!xZ!=zZbThm"> <field name="COMMENT">3 mal 750 W</field> <next> <block type="controls_if" id="?{[99~rn+X@-!776Gil$"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="d%IZlzT50i(a7nefKk6]"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="lg4*^=8|`oo@q1o#)S/S"> <field name="VAR" id="S`Q7El*S8|6o7zjVveF`">ueberschuss</field> </block> </value> <value name="B"> <block type="math_number" id="vP_iZf?M;`@RCY1gD^i:"> <field name="NUM">1000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="|#WysqWLOkMz:?pQ*-CZ"> <field name="NAME">delayOn</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="dch2(fx(/ykyn#X-R`9x"> <value name="BOOL"> <block type="timeouts_gettimeout" id="xJVx:Mi5[U_(t*bw(Yq$"> <field name="NAME">delayOn</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="=EI:`22NaF],y?uV^b1B"> <field name="NAME">delayOn</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="L^8:G3aDU.xP#v0K7^n["> <value name="IF0"> <block type="logic_compare" id="rRm-_cjXetCm)~hcAE~}"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="k?Bzt4RS=S!C{E%~JKR%"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> <value name="B"> <block type="math_number" id="?UTjTS/9I`U;T!+,CaMi"> <field name="NUM">3</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="j%wz0Z;.Z9l}/YcJ|u@O"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> <value name="DELTA"> <shadow type="math_number" id="*QTjL.s^?cd[t)LK(x*L"> <field name="NUM">1</field> </shadow> </value> <next> <block type="procedures_callnoreturn" id="toS^1+[sVXvM12+04n~j"> <mutation name="Heizstab"></mutation> <next> <block type="timeouts_cleartimeout" id="WJ?t^mxt0H|jM5A2zX=v"> <field name="NAME">delayOn</field> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> <next> <block type="controls_if" id="U^YFuAk{|bn.*b{Ep;B="> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="GddE`U/xj*}WZ:OC-j_5"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="Ji]v?2~|pv5`v!eeLtH`"> <field name="VAR" id="S`Q7El*S8|6o7zjVveF`">ueberschuss</field> </block> </value> <value name="B"> <block type="math_number" id=":{IrB{m-gbX@X2|pVyXZ"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="_N.QOqsujv5EzF,e1:^`"> <field name="NAME">delayOff</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="0(6[M7amQ.RY*S4wPkX3"> <value name="BOOL"> <block type="timeouts_gettimeout" id="pTQJfLPne.dmqq!4K#Q."> <field name="NAME">delayOff</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="b(4T]c7c@_xcR0^(IJQ#"> <field name="NAME">delayOff</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="N`KrOVa}E?2GEgP!,hnz"> <value name="IF0"> <block type="logic_compare" id="!!K9CK;|;n]ddqB#Sv9x"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="(BxBl^T0kZqo1s{{@q2;"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> <value name="B"> <block type="math_number" id="aJaeQbM-4{Urt]DVf9Q."> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="Sq6c}B`kReZUISESR)FH"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> <value name="DELTA"> <shadow type="math_number" id="!F{}xNQ_117l8Vz1)Bw-"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="procedures_callnoreturn" id="$}C4r;1}f|vwd?j_@rJ*"> <mutation name="Heizstab"></mutation> </block> </next> </block> </statement> <next> <block type="timeouts_cleartimeout" id="`D+24l9JDFvo/:O-kz6]"> <field name="NAME">delayOff</field> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_if" id="C.Q,;pb(q@xOpG/(t]/h"> <value name="IF0"> <block type="logic_multi_and" id="2GfeB4yC2kzQT#8ReZ}="> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="AND0"> <block type="logic_compare" id="U8WSk0}eP|gz:_.8;6n-"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="oO(C6Q[/P,)5tJ1A6zn{"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> <value name="B"> <block type="math_number" id="cO:.k%]nbyqdZZKwR:p1"> <field name="NUM">3</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_compare" id="]!,y-!oG5N#LXvZNyy8/"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="wwHeMiuZ`bFf[KL7,Cte"> <field name="VAR" id="k{nMf[SMX?gF-mm8]|=G">mode</field> </block> </value> <value name="B"> <block type="text" id="=.QVc$;/f^Kv6Y{u@QTF"> <field name="TEXT">pv</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="^s0@1#IZw/Jcv!hTb%Uz"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">evcc.0.loadpoint.1.control.off</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=".gM(n78-Gvt7U(D7mB,%"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="@6yDcOCFSz44R_a#Xe+H"> <value name="IF0"> <block type="logic_multi_and" id=";kLlWo4Z^KkbyE{9]G_f"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation> <value name="AND0"> <block type="logic_compare" id="!Vuk__O@p;-zFN$AS_.@"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="W4}91]k0.ZkPVRWjM7N1"> <field name="VAR" id="S`Q7El*S8|6o7zjVveF`">ueberschuss</field> </block> </value> <value name="B"> <block type="math_number" id="BrAU7P|Y`C`QT}o]S:PP"> <field name="NUM">1400</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_compare" id="z522o`OY#!eqiKC1j@Ka"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="9LUmxN=bd,~;kRla7c;@"> <field name="VAR" id="k{nMf[SMX?gF-mm8]|=G">mode</field> </block> </value> <value name="B"> <block type="text" id="dy^QGNHQbY/Pn.0cW~)N"> <field name="TEXT">off</field> </block> </value> </block> </value> <value name="AND2"> <block type="logic_operation" id="SlR}uwy|,^$g5U~MDZl]"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="zf6iV]]vm#lHfATR9[9+"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="-J{q##33fYxWc6yfWd6N"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> <value name="B"> <block type="math_number" id="go.d99LEa_QI6qjodvI)"> <field name="NUM">3</field> </block> </value> </block> </value> <value name="B"> <block type="logic_negate" id="2LBj0zx0][PVJA`+Qrjo"> <value name="BOOL"> <block type="variables_get" id="JN-*;$0!:X~p0j5d.Q*H"> <field name="VAR" id="SXNPrFdTCWx5V%N:sTKY">temp</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id=",L!7S7M.4W~]iB%(Z7|X"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">evcc.0.loadpoint.1.control.pv</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="5Ee$xi7FS%+{f|7I?4hm"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="Q6,+1QdD4Bq`#0DA-`[=" x="412" y="213"> <field name="NAME">Heizstab</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="D|D*gG#w!Gp~S%8AJBml"> <field name="COMMENT">750W</field> <next> <block type="control" id="qYesRpdij9z`93JQ2~w%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.shellyplus1pm#d4d4da094ad0#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number_property" id="2[3jGAZF1c!_#4rLN^lK"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">ODD</field> <value name="NUMBER_TO_CHECK"> <shadow type="math_number" id="^mbt0I.5NcdGL)U11cys"> <field name="NUM">0</field> </shadow> <block type="variables_get" id="8/kAAEJZB_bXT3h*p`y9"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> </block> </value> <next> <block type="comment" id="YWT-oYB^7=C$h7u@xxGd"> <field name="COMMENT">1,5KW</field> <next> <block type="control" id="S(zYFzv^}$AcCYB-`Q`e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.shellyplus1pm#a0a3b34d7024#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="2L^iKhb3yF2tiPb$(%l$"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="/QAECrxs6x0t8U~:B%E*"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> <value name="B"> <block type="math_number" id="PH|,U:I~$fQ*Ja^o2^h0"> <field name="NUM">2</field> </block> </value> </block> </value> <next> <block type="comment" id="bRqM.SjN1ACF=s1zPjsq"> <field name="COMMENT">Pumpe</field> <next> <block type="control" id="XJyIfW1Z}!M6ZNX{8tM0"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.shellyplus1pm#d4d4da7cdbf0#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="?rr;,2B*AE76yep!==Fg"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="56:a(I;HZP{%8o|ilyT4"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> <value name="B"> <block type="math_number" id="Ko^37ApDTALq,A?g^DD|"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="telegram" id="z/3Pq0u?zYU2o$t#/UAa"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="UNDeozYk*CL[92C}[Au="> <field name="TEXT"></field> </shadow> <block type="text_join" id="f^:ycs#*P(R:|84zvCT^"> <mutation items="8"></mutation> <value name="ADD0"> <block type="text" id="8RKF;A8nAvV3XoGI4*Z{"> <field name="TEXT">Heizstab 750 W</field> </block> </value> <value name="ADD1"> <block type="logic_ternary" id="~~tVV~oA1rDOnkItJbuy" inline="true"> <value name="IF"> <block type="math_number_property" id="C@4rz^-}.Zt)woz7L^}."> <mutation divisor_input="false"></mutation> <field name="PROPERTY">ODD</field> <value name="NUMBER_TO_CHECK"> <shadow type="math_number" id="``l$[`aL`MZCpSm,QK{!"> <field name="NUM">0</field> </shadow> <block type="variables_get" id="fM|xH{svM|{GTl9WzSZ1"> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="w=yh:evG@jBi#%vv4VW("> <field name="TEXT"> Ein</field> </block> </value> <value name="ELSE"> <block type="text" id="Eu3]O!V@4{7arYrY^DHn"> <field name="TEXT"> Aus</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text_newline" id=":Cr#6muo9{1}yvD_n=l%"> <field name="Type">\n</field> </block> </value> <value name="ADD3"> <block type="text" id="=Pp3lLJI/a29j2y^K!nv"> <field name="TEXT">Heizstab 1,5 kW</field> </block> </value> <value name="ADD4"> <block type="logic_ternary" id="/$$,E$8Y*Ych?=fna1ve" inline="true"> <value name="IF"> <block type="logic_compare" id="hk6,1HRWvh8pKE,h!)Zc"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="C:T6fXDC/v~SKcpqCS0("> <field name="VAR" id="#ZO}puq!byH)d[RA8.u~">stufe</field> </block> </value> <value name="B"> <block type="math_number" id="AeRKfQfc+7c@VUQulbX~"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="IF(:Z,A-U1(rKR[qQxxV"> <field name="TEXT"> Ein</field> </block> </value> <value name="ELSE"> <block type="text" id="iU1+m14WQ3PZuIfD@yvs"> <field name="TEXT"> Aus</field> </block> </value> </block> </value> <value name="ADD5"> <block type="text_newline" id="lx,-qNPp9m[f.mZi-8ni"> <field name="Type">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="G[/XZG_ufoL{w[K#%5lm"> <field name="TEXT">Warmwassertemperatur </field> </block> </value> <value name="ADD7"> <block type="get_value" id="9D7sd%|ddI*q:_s[o=B/"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Warmwassertemperatur</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml> -
Hi!
Ich habe seit kurzem einen Speicher bei meiner PV und wollte diesen nun in den Morgenstunden nutzen, um mein Warmwasser mit den Heizstäben zu erhöhen.
Ziel wäre es z.B. um 4 Uhr in der Früh abzufragen:- wie warm ist das Wasser
- wie hoch ist der Ladestand des Akkus (Speicher)
und dann die Heizstäbe einschalten oder auch nicht (da Gastherme paralell verfügbar ist)
Ich habe ein paar holprge Skripts entworfen, wobei ich mir sicher bin, dass man das besser lösen könnte.
Deswegen bitte ich um Hilfe!
ich hoffe, @paul53 liest mit!:-)Hier mal meine Versuche:

leider bekomme ich wenn ein Fall zutrifft, auch immer wieder wiederholend die Telegrammeldung!
Hätte wer einen besseren Lösungsansatz für mich?
Vielen Dank
Liebe Grüße
JürgenP.S.: Die Frage an @paul53 wäre auch, ob diese Anforderung eventuell in dein für mich geschriebenes Blockly integrierbar wäre oder es besser ist, separat zu behandeln
Weldscripts.PV.PV_Warmwasser_2_Shellys_plus_Auto.xml@jwedenig sagte: ob diese Anforderung eventuell in dein für mich geschriebenes Blockly integrierbar wäre oder es besser ist, separat zu behandeln
Es ist besser, die zusätzlich Anforderung in das vorhandene Skript zu integrieren, da sonst die gegenseitige Beeinflussung kaum zu überschauen ist.
Ich habe das ursprüngliche Skript um die Variable
msgergänzt und die drei Trigger rechts unten realisieren die zusätzliche Anforderung.
-
@jwedenig sagte: ob diese Anforderung eventuell in dein für mich geschriebenes Blockly integrierbar wäre oder es besser ist, separat zu behandeln
Es ist besser, die zusätzlich Anforderung in das vorhandene Skript zu integrieren, da sonst die gegenseitige Beeinflussung kaum zu überschauen ist.
Ich habe das ursprüngliche Skript um die Variable
msgergänzt und die drei Trigger rechts unten realisieren die zusätzliche Anforderung.
-
bin schon sehr gespannt! Danke wieder einmal, hoffe, ich habe alles richtig!

-
@jwedenig sagte: hoffe, ich habe alles richtig!
Sieht gut aus.
Damit nach einem Skriptstart mitten am Tag die Variablemsgnicht undefined bleibt, setze sie besser auch beim Runterschalten der Stufe.
Da seit JS-Version 7.0.5 Blockly bei Ablauf der Verzögerung die Timer-Variable automatisch auf null setzt, können die "stop delay" innerhalb der Timeout-Blöcke entfallen.





