NEWS
Warmwasser und Auto laden
-
Re: Warmwasser schalten mit PV Überschuss
Hi!
Besonders Hi @paul53 !Ich habe ja von Dir ein tolles Skript erhalten, wo ich meinen Heizstab in 3 Stufen schalten kann.
Nun lade ich auch mein Auto mittels EVCC und dessen Überschusssteuerung.
Beides funktioniert einwandfrei.Nun möchte ich aber irgendwie diese 2 "Systeme zusammenführen" damit Sie sich perfekt ergänzen.
Ziel wäre es, dass sich zuerst die Heizstäbe aktivieren und danach das Auto dazu käme.
Wenn dann die Temperatur erreicht ist, soll der gesamte Überschuss ins Auto gehen.
Nun ist es aber so, dass das Auto zu laden beginnt und dies dann immer mehr nach dem Überschuß halt. Die Heizstäbe kommen nicht zum Zug!
Hat hier wer einen Lösungsansatz für mich?
Danke
Liebe Grüße
Jürgen -
@jwedenig sagte: 2 "Systeme zusammenführen"
Bitte beide Skripte zeigen.
-
@paul53
naja, dies ist das Skript von Dir im iobroker:
und das Auto wird über evcc (https://evcc.io)gesteuert, das ist das Problem:
wobei es einen evcc Adapter für iobroker gibt, welchen ich auch habe.
Ich bräuchte quasi eine Art Lösungsansatz wie ich es anstellen könntev7.8.0 BlocklyJavascriptTypeScriptRules Protokoll Ausgewählte Blöcke exportieren <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="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">67</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">55</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">62</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="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">5</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> </block> </next> </block> </next> </block> </next> </block> </statement> </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> <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="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">67</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">55</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">62</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="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">5</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> </block> </next> </block> </next> </block> </next> </block> </statement> </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>
-
@jwedenig sagte: Auto wird über evcc (https://evcc.io)gesteuert, das ist das Problem
Gibt es eine Schnittstelle zu ioBroker, mit der man eine Freigabe steuern kann?
-
@paul53
es gibt z.b. diese Datenpunkte:
Off ist aus
pv ist Laden mit PV Überschuss
min ist Laden mit PV und minimalem Netzbezug
now Schnellladen mit 11kw -
@jwedenig sagte: diese Datenpunkte:
Das sind Button zum Steuern. Es gibt doch sicherlich auch einen Datenpunkt, der anzeigt, ob geladen wird?
Wie betätigst du die Button jetzt? -
z.B. gibt es einen Charging Status, und unzählige mehr.
Ich steuere die 4 Modi mit dem EVCC UI im Browser -
ich könnt mir z.b. vorstellen, dass der Modus "PV" beim Auto erst aktiviert wird, wenn der Heizstab in der 3ten Stufe läuft und dann noch Überschuss wäre.
EVCC startet das Auto bei 1,4kw, das ist die MinimumLast welche benötigt wird -
@jwedenig sagte: Modus "PV" beim Auto erst aktiviert wird, wenn der Heizstab in der 3ten Stufe läuft und dann noch Überschuss wäre.
... oder wenn die Zieltemperatur im Speicher erreicht ist.
-
@paul53
naja, das dauert bei mir so ca. 2 Stunden, da wäre schon früher Überschuss vorhanden, aber ja, ok, wenn dies leichter geht, dann so! -
@jwedenig sagte: Wenn dann die Temperatur erreicht ist, soll der gesamte Überschuss ins Auto gehen.
Diese Ergänzung unten sollte genügen?
Die Variable
Auto_ladung
muss am Triggeranfang mit dem Datenpunktwert gesetzt werden. -
@paul53
ich werde es probieren, danke Dir vielmals -
@paul53 sagte in Warmwasser und Auto laden:
Die Variable Auto_ladung muss am Triggeranfang mit den Datenpunktwert gesetzt werden
Wo genau? und welchen Datenpunktwert meinst du?
-
@jwedenig sagte: welchen Datenpunktwert meinst du?
"charging" - der anzeigt, ob Laden aktiv ist?
Habe es noch etwas optimiert:
-
@paul53
super, bin gespannt, vielen Dank, ich baue es mal nach! -
So schaut es jetzt aus, ich hoffe, ich habe es richtig nachgebaut!
Ganz schön komplex, wow! DANKE
-
@paul53
Also, das Skript läuft und es funktioniert auch!
Nun meine Frage noch:
Kann man fürs "Autoladen" eine gewisse "Trägheit" einbauen, dass das Auto z.b. erst nach 5 Minuten Überschuss ladet und das ganze dann auch umgekehrt beim Ausschalten.
Sonst schaltet das Auto viel zu oft ein und aus.Und noch eine Frage:
Wenn ich "Schnellladen möchte" sprich diesen Datenpunkt aktiviere bei EVCC:
dann stoppt das Laden, was ja auch stimmt, da ja das Skript so aufgebaut ist.Mein Zugang wäre jetzt wenn ich die Datenpunkte "Schnellladen" und "Laden mit minimalem Netzbezug" aktiviere, dann "Deaktivere das Skript"!!
Ist das so OK nach deiner Meinung nach?
Oder hättest du da eine elegantere Lösung?
Liebe Grüße
Jürgen -
@jwedenig sagte: "Schnellladen" und "Laden mit minimalem Netzbezug" aktiviere, dann "Deaktivere das Skript"!!
Versuche es mal so:
-
@jwedenig sagte: Sonst schaltet das Auto viel zu oft ein und aus.
Das kann eigentlich nicht sein: Wenn die Speichertemperatur erreicht ist, wird nicht gestoppt; wenn die Speichertemperatur noch nicht erreicht ist, dauert es mind. 5 Minuten, bis die Stufe von 3 auf 2 bzw. umgekehrt wechselt.
-
@paul53
ok, danke dir wieder einmal, ich werde es testen!
Schönes Wochenende