NEWS
Bräuchte Hilfe bei einem Blockly
-
Hallo,
ich probiere nun schon seit tagen an dem Script rum und komm einfach nciht auf den Fehler warum sporadisch die TP Link Steckdose geschalten wird obwohl sie dies gar nicht dürfte, aber ich finde einfach den Fehler nicht.Habe ein Hauptscript daß in Abhängigkeit vom Temperatursensor abläuft.
In diesem Hauptscript wird nur die TP Link Steckdoese angesteuert bei einem bestimmten Durchschnitt vom Ertrag der in dem Wolkentimer Script gerechnet wird.
Die Funktion zum ansteuern der Steckdose ist folgendes:
So nun meine Frage findet hier jemand den Fehler warum nach willkürlichen Zeitabständen die Steckdose deaktiviert wird, ich komm einfach nciht dahinter entweder liegt in einem anderen script noch der Hund begraben.
Gruß und vorab schon mal danke
Code dazu:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="rdZTBs%C|nf@QumHGzzi">Temp_Zimmer_Inkremental</variable> <variable id="PS#6aw7YyfgW,juPr9*.">Wolkentimer_Zeit_in_Min</variable> <variable id="`Pbkj)hIBM]872alO@Ec">verbraucher_1</variable> <variable id="wddD!`XS_cM;;S/L]K!h">Wolkentimer_Zeit</variable> <variable id="JUTTpgXVPYc(B)*|+`,-">Hausspeicher_verwenden_Soc</variable> <variable id="Jy#y{M,Su#rIX%sPgKCq">Liste</variable> <variable id="Tu2b]OsyLnV,|{1^*6zl">stromüberschuß</variable> <variable id="DiG+2}S?|s:Tpa~6%W{s">summe_durchschnitt</variable> <variable id="XH+!C4AEO:lt{]5JE-`?">i</variable> <variable id="pw7a=PK}q`%|m94.AaSL">durchschnitt</variable> </variables> <block type="on" id="Y%)d$m(|#8M^rF+;1@/6" x="-312" y="-287"> <field name="OID">zigbee.0.00158d0005363273.temperature</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="f11JBDgs|`]lzFtzMv@a"> <field name="VAR" id="rdZTBs%C|nf@QumHGzzi">Temp_Zimmer_Inkremental</field> <value name="VALUE"> <block type="math_number" id="37#YW=2*ss]nDW/eQTmZ"> <field name="NUM">1</field> </block> </value> <next> <block type="variables_set" id="YBQP9[9YXYLi5G^6.I!3"> <field name="VAR" id="`Pbkj)hIBM]872alO@Ec">verbraucher_1</field> <value name="VALUE"> <block type="math_number" id=";J6[kdHHo=Kvg]]^4//4"> <field name="NUM">2100</field> </block> </value> <next> <block type="variables_set" id="xOffmmzSYqFXjQZ/oL;i"> <field name="VAR" id="JUTTpgXVPYc(B)*|+`,-">Hausspeicher_verwenden_Soc</field> <value name="VALUE"> <block type="math_number" id="u+hMp`b:vp+iToEN9k0W"> <field name="NUM">70</field> </block> </value> <next> <block type="controls_if" id="?703{cgE]*}pB*Pb|Ugq"> <value name="IF0"> <block type="time_compare_ex" id="xh(K3Zg+Z~[T|0nyV:+4"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="N|x:9L}$4xB{bC%-aF%?"> <field name="TEXT">07:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="cq7k+A^$HKV*L2GFfYuz"> <field name="TEXT">18:00</field> </shadow> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="j+T(}ihHW-2*/.)v2u^%"> <value name="IF0"> <block type="logic_operation" id="Xj575)w4G#+8Qf=B6jbk"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="3)u2}owiM0q/,+l#9FB0"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="fJ8x7{b[ccgAO15IJ:/,"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Heizungssteuerung.Zimmer_Josef.heizung_pv</field> </block> </value> <value name="B"> <block type="logic_boolean" id="?-vByX.=y]{A-`sQv:lm"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="367~9.A)opUEdb:!sqwX"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="lZ[MaKNAerMS8K%vNAhj"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d00054db088.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="3s.jbXL%C?8P!LGon=:Q"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="GAOA?7FY}y2NR#WGem`Q"> <value name="IF0"> <block type="logic_compare" id="JT19NepqFI7+/C1}P4sm"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="O;m:Z()8{!S(nKbx1?mg"> <field name="ATTR">val</field> <field name="OID">sonnen.0.status.userSoc</field> </block> </value> <value name="B"> <block type="variables_get" id="Z$:P3`UArhUhBLl1-5Y1"> <field name="VAR" id="JUTTpgXVPYc(B)*|+`,-">Hausspeicher_verwenden_Soc</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="Z-XI%*SWa}Wnp4#fZ,Il"> <value name="IF0"> <block type="logic_compare" id="Iq4#eI$pWOFaS[F4E,(%"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="N5]D4U;D@r0@i5_V]%s3"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0005363273.temperature</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="+Ah4JWX|HuZC@u}Eu[;l"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="k{U7n9CPw2^PiI#vf(Uk"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Rpg=R[PNbLQe=D[Uvs7}"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Heizungssteuerung.Zimmer_Josef.zimmer_josef_temp_normal</field> </block> </value> <value name="B"> <shadow type="math_number" id="+q()qUc`|e0[-iNg#LjW"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="~G$!BkeS0:}Bz{xwpk@2"> <field name="VAR" id="rdZTBs%C|nf@QumHGzzi">Temp_Zimmer_Inkremental</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="W[5cbcqLUT1xBoyv_:zA"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="UvdcsRgDqNe~ARX;tOdr"> <field name="OP">GT</field> <value name="A"> <block type="math_arithmetic" id="`/Cr|pE3tAcf1;Ip1EqA"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="b*{MUmqo^^-i6fOZ@hM-"> <field name="NUM">1</field> </shadow> <block type="get_value" id="T6XD-3c%2,vFXr2,^j[)"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Allgemein.PV_Überschuss_Durchschnitt</field> </block> </value> <value name="B"> <shadow type="math_number" id="xBkZ%zmX.!KDG1(c4j8s"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="|Eg$0zj)}?0~m1;v%PDq"> <field name="VAR" id="`Pbkj)hIBM]872alO@Ec">verbraucher_1</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="G^g7(cRtXFW*d-|Ob3/,"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="{-N+E.FNF6DsoBUB%E5c"> <mutation name="heizung_pv_ein"></mutation> </block> </statement> <statement name="ELSE"> <block type="procedures_callnoreturn" id="V$QmDFi#+|DQvWGwNS]7"> <mutation name="heizung_pv_aus"></mutation> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="comment" id="$bFZ#d#VVkVb8e0bwp`_" x="1038" y="-212"> <field name="COMMENT">Zeit in Minuten für den Wolkentimer</field> <next> <block type="variables_set" id="7~I-gC`B_qw9._^o2PbF"> <field name="VAR" id="PS#6aw7YyfgW,juPr9*.">Wolkentimer_Zeit_in_Min</field> <value name="VALUE"> <block type="math_number" id="ls94HDArm-Ss+)ncuEM4"> <field name="NUM">20</field> </block> </value> <next> <block type="variables_set" id="pTwN|P=b33r{2e+Nk;{["> <field name="VAR" id="wddD!`XS_cM;;S/L]K!h">Wolkentimer_Zeit</field> <value name="VALUE"> <block type="math_arithmetic" id="Z48CsbIbY}4f|iyIay|b"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="H7bLTM#Dt-kAp.n@)TB["> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="%07Uuk=aUdqdbG}#Cpc_"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Pe6{G^$rh~%J./G~h|9W"> <field name="NUM">15</field> </shadow> <block type="variables_get" id="deQD$|NG-yaY#nP/jtk)"> <field name="VAR" id="PS#6aw7YyfgW,juPr9*.">Wolkentimer_Zeit_in_Min</field> </block> </value> <value name="B"> <shadow type="math_number" id="l_s=AB(*_R/[-GN[nWjw"> <field name="NUM">60</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="y`hHf|IqP?8jouO#q)r/"> <field name="NUM">5</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="[Z15m-vBuL%_ZH~Dm;[h"> <field name="VAR" id="Jy#y{M,Su#rIX%sPgKCq">Liste</field> <value name="VALUE"> <block type="lists_repeat" id="HaU=kuX#B,AO4p52a)K9"> <value name="NUM"> <shadow type="math_number" id="YqCbT3-GF=+@5PXyJ~ex"> <field name="NUM">5</field> </shadow> <block type="variables_get" id="{z#~_yU-0}A`+W?[c4o,"> <field name="VAR" id="wddD!`XS_cM;;S/L]K!h">Wolkentimer_Zeit</field> </block> </value> <value name="ITEM"> <block type="get_value" id="LYVplVlV#[l5HV5RKf*3"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV_Ertrag</field> </block> </value> </block> </value> <next> <block type="on_ext" id="$-%swus|@0p:@tPx:2ji"> <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="-Jhb0YQGiw5In_nKNG_`"> <field name="oid">0_userdata.0.PV_Ertrag</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="~WbF!E5sq!6hF{,J[4Ts"> <field name="VAR" id="Tu2b]OsyLnV,|{1^*6zl">stromüberschuß</field> <value name="VALUE"> <block type="get_value" id="]w{7H01`x6fdn,c?((YG"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV_Ertrag</field> </block> </value> <next> <block type="lists_getIndex" id="Z]9Xr*`Z}BJ.j}?TrAN:"> <mutation statement="true" at="false"></mutation> <field name="MODE">REMOVE</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="jOm!eF}wCCwT8.EB/POg"> <field name="VAR" id="Jy#y{M,Su#rIX%sPgKCq">Liste</field> </block> </value> <next> <block type="lists_setIndex" id="w#G$ZbY254r$*@`5_/Sl"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">FIRST</field> <value name="LIST"> <block type="variables_get" id="kLc%eYnh8}S:p@#=zeiC"> <field name="VAR" id="Jy#y{M,Su#rIX%sPgKCq">Liste</field> </block> </value> <value name="TO"> <block type="variables_get" id="9/E3v7C%fvaj^IlO7/Vb"> <field name="VAR" id="Tu2b]OsyLnV,|{1^*6zl">stromüberschuß</field> </block> </value> <next> <block type="variables_set" id="F_,2j0~?+qfg[S[Lao_y"> <field name="VAR" id="DiG+2}S?|s:Tpa~6%W{s">summe_durchschnitt</field> <value name="VALUE"> <block type="math_number" id="piTxSp-PY+]XD.QXsq9f"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_for" id="THl2HIg:?@i%^7_%(1CO"> <field name="VAR" id="XH+!C4AEO:lt{]5JE-`?">i</field> <value name="FROM"> <shadow type="math_number" id="[s7609ZUKjdqHUdo[n{S"> <field name="NUM">1</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="cGD/Wb{V5n$qK@/?m8??"> <field name="NUM">10</field> </shadow> <block type="lists_length" id="O+73uhK|5rJI]_Bmo*,u"> <value name="VALUE"> <block type="variables_get" id="e{VX|h8X69wAvT*C@sg~"> <field name="VAR" id="Jy#y{M,Su#rIX%sPgKCq">Liste</field> </block> </value> </block> </value> <value name="BY"> <shadow type="math_number" id="$;xEdtC!)~94(Nt2..;J"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="math_change" id="rHe0!l;2VkP*x_#$`T.s"> <field name="VAR" id="DiG+2}S?|s:Tpa~6%W{s">summe_durchschnitt</field> <value name="DELTA"> <shadow type="math_number" id="{Ml=MYno|+,01rMHe+x/"> <field name="NUM">1</field> </shadow> <block type="lists_getIndex" id="4GeGa:XlF8B2QO2PaS/}"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="a$=@=Ei:v)2/8ONFD)4R"> <field name="VAR" id="Jy#y{M,Su#rIX%sPgKCq">Liste</field> </block> </value> <value name="AT"> <block type="variables_get" id="TSm.xCzn)-T10tLbb%+7"> <field name="VAR" id="XH+!C4AEO:lt{]5JE-`?">i</field> </block> </value> </block> </value> </block> </statement> <next> <block type="variables_set" id="GuXFiNiF)eZ%{IO^^GU$"> <field name="VAR" id="pw7a=PK}q`%|m94.AaSL">durchschnitt</field> <value name="VALUE"> <block type="math_arithmetic" id="6%c;AJ94?G1w{wxhSc/v"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="dG)I|Xg^mmd:Fs)7)50u"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="EjjkatYF1GHS`8vY0i7d"> <field name="VAR" id="DiG+2}S?|s:Tpa~6%W{s">summe_durchschnitt</field> </block> </value> <value name="B"> <shadow type="math_number" id="],(KaJfvzN||ouwsTE~;"> <field name="NUM">1</field> </shadow> <block type="lists_length" id="ZiBg~D/k$6H:/Zf.e;_K"> <value name="VALUE"> <block type="variables_get" id=":+G[R#r2,,Vz)cf@24Oq"> <field name="VAR" id="Jy#y{M,Su#rIX%sPgKCq">Liste</field> </block> </value> </block> </value> </block> </value> <next> <block type="update" id="[aB-Ln7q/v}-t~a1=+uK"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Allgemein.PV_Überschuss_Durchschnitt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="z,zB};oD#/t`!H@WTH[S"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="SkLpMo$Aks6pM.s8DU;B"> <field name="NUM">3.1234</field> </shadow> <block type="variables_get" id="k9mqVDb_Ul}3]Fa!1Hi{"> <field name="VAR" id="pw7a=PK}q`%|m94.AaSL">durchschnitt</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="JyG/`)_.]HC/n[~KA}%$" x="-312" y="438"> <field name="NAME">heizung_pv_ein</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="debug" id="DC1pU4gtcbz=8i)_]s#i"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Sl,zPtI:2)CT%.$]7K*H"> <field name="TEXT">heizung ist durch durchschnitt ein</field> </shadow> </value> <next> <block type="control" id=",Arlp+1o;nxuMRUo|m3e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">hs100.0.192_168_178_29.state</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="logic_boolean" id="cf.=j}f9.OU2ecV;12)+"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id=")-U!Xd9eboa8_huga7l/" x="-312" y="588"> <field name="NAME">heizung_pv_aus</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="debug" id="?K;Z$Lx[|09jr:5t%aiV"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="ZK#O@Z~ewJ^lN:WStzR2"> <field name="TEXT">heizung ist aus durch durchschnitt aus</field> </shadow> </value> <next> <block type="control" id="{4eL4twB:-$E3).oV=eZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">hs100.0.192_168_178_29.state</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="2o}6%F,.6D^Xuz)#9mYD"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </xml>
-
@babl sagte: Wolkentimer Script
Woraus resultiert der Faktor 12? Wird der PV-Ertrag alle 5 s aktualisiert? Dann sollte für eine richtige gleitende Mittelwertbildung auf "wurde aktualisiert" getriggert werden. Außerdem lässt sich einiges vereinfachen:
Den oberen Teil verstehe ich nicht ohne weitere Erläuterung (Temperatur inkremental, Is open, Temperatur-Trigger?).
-
genau hier wird alle 5 sekunden getriggert, ich habe das nur als variable angegeben damit man mit der länge der dauer des wolkentimers ein wenig spielen kann.
is open = ein Sensor fürs fenster
Temperatur inkremental = ich habe bei der Heizung eine Temperatur angegeben von zum Beispie 20 Grad, ist dann genug sonne da dann macht der inkremental nur daß bis 21 grad geheizt wird also das inkremental + 1
-
@babl
Sind die Abfragen alles Bedingungen für das Einschalten der PV-Heizung mit einer Leistung von 2100 W? Dann versuche es mal so: -