NEWS
homematic heizungssteuerung via blockly
-
@dslraser
okay...
ja vllt. setz ich mich morghen mal hin un versuchs einfacher zu gestalten mit den abfragen (geo und walan und schaltsteckdosen) -
Du kannst Bein Blockly ja mal stoppen und ein neues leeres Blockly ohne Trigger, einfach nur mit dem Baustein wie von @paul53 in diesem Post hier vorgeschlagen testen und das Blockly starten. Dann kannst Du schauen ob auch wieder eine Fehlermeldung kommt, oder ob es ohne Fehler ausgeführt wird.
getestet, funktioniert.
gut dann ist es ein fehler in dem zusammenbau was wann geschaltet werden soll wenn so oder so ist... -
@rebel85
Die Fehlermeldung von oben war aber tatsächlich das Text anstatt Zahl benutzt wurde. -
@rebel85
Hi, Thema Intervalle, die laufen wenn sie einmal gestartet sind so lange bis man sie wieder stopt, also würden die bei dir evig laufen.
Du müsstest bei dir oben bei mache, Stoppe Intervall3 und unten bei mache Stoppe Intervall 2 mit reinpacken, dann wird wenn die obere Bindung erfüllt ist das Intervall von der unteren Bedingung gestoppt und umgekehrt.
Edit: Auf dem Bild ist ja nur ein Teil deines Blocky zu sehen, du hast da ja noch mehr bedingungen und noch ein Intervall. Bei jeder mache Funktion wo es nicht erwünscht ist das die anderen Intervalle weiterlaufen, müsstest du die Intervalle stoppen.
So in etwa: Wird jetzt wahrscheinlich nicht ganz zu deiner gewünschten Funktion passen, das muss du für dich noch anpassen. Warum benutzt du eigentlich die Intervalle? Hast du Angst das sich die Zustände selbständig ändern und steuerst sie deshalb alle 30 Minuten neu an? Das könntest du damit abfangen das du diese Werte auch als trigger mit einbaust, würde sich einer der Werte ändern würde das Skrip wieder durchlaufen und den Wert zurückstellen.<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="Intervall">Intervall</variable> <variable type="undefined" id="Intervall1">Intervall1</variable> <variable type="undefined" id="Intervall2">Intervall2</variable> <variable type="undefined" id="Intervall3">Intervall3</variable> </variables> <block type="on_ext" id="PdV-.deBb#=jULj8$bwI" x="-313" y="-313"> <mutation items="7"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="PHVqNw2e3okl69N.Cbo)"> <field name="oid">radar2.0.Marco._here</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="25B+|Z|41r%?pYr9y?]x"> <field name="oid">owntracks.0.locations.home2.presence</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="$c^zbs!;DlT`c71jFRZM"> <field name="oid">owntracks.0.locations.home2.presence</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="I-d}~sgQRwjjwYiSC4Hl"> <field name="oid">owntracks.0.locations.eltern.presence</field> </shadow> </value> <value name="OID4"> <shadow type="field_oid" id="~kWSQQubRm}pTFm8,98N"> <field name="oid">tuya.0.05052560dc4f22d6b0af.1</field> </shadow> </value> <value name="OID5"> <shadow type="field_oid" id="!r9e[q!3da2^%@6UaeiC"> <field name="oid">tuya.0.05052560dc4f22d440aa.1</field> </shadow> </value> <value name="OID6"> <shadow type="field_oid" id="fb[P%J]fs]3k(_s}[+)V"> <field name="oid">radar2.0.Osiris._here</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="Y=yF{2B%A4wm[P0vAoq0"> <field name="COMMENT">Auto Modus, alle</field> <next> <block type="controls_if" id="g@x;`e57p3n0enic.U(p"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="3X)2jZjpKlNr%O~JYtz^" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="~RBFM[n=solk05/UJCmN" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="_1ls)%=[5I?HA,sm0C`@"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="wgSX+4#*|`t~?$?v,L|7"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.home.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="bi|hi(ag]E5n@pFMxd]B"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="5nvU0[VMB8N(6]~We_(X" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="}u%HTw[1i4zXg.+/pauP"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="b0_O2Zx/C.rMhv8UbmS`"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.home2.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="VTXcKfvU87tCN8;9^rO1"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="c.HHD;QGK3K$E[cGo71@"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=")sV1~4Bbuq}8psCeyo-."> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.heizung.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="!0:GIB^eN}I*hJCC_fkT"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="ukSiit5[nI;yjy!p[i@;" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="N/1g*b~n%M;%KSDK}^p8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="*AhEP52%sNSTbS$Zz{x6"> <field name="ATTR">val</field> <field name="OID">radar2.0.Marco._here</field> </block> </value> <value name="B"> <block type="logic_boolean" id="H.+3)[DO:5e0Z^_o}XS@"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="eIXo4!Jm/205W%Ct5ecZ" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="p?zL0m?w.]A3_8cgHf#["> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="MrIVd:$N4+.@zln^Wu3k"> <field name="ATTR">val</field> <field name="OID">radar2.0.Osiris._here</field> </block> </value> <value name="B"> <block type="logic_boolean" id="7j)R[RV,$`P8jz}Fn~i*"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="[6{$bV_(tQyzoUSf0C#A"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="nuI2G0tN,TL8vjyIU:Q|"> <field name="ATTR">val</field> <field name="OID">tuya.0.05052560dc4f22d440aa.1</field> </block> </value> <value name="B"> <block type="logic_boolean" id="[q}A-t-G`|pfS_WVrZ+y"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="toggle" id="7%5/nTmMss7?P!*LhDJr"> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.LEQ0998295.2.CONTROL_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">10</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <next> <block type="toggle" id="3]HHh*_Rwg@X?MH^Dhs9"> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.PEQ1258290.2.AUTO_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">20</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <next> <block type="toggle" id="`d3U!u-L$r7MZc#hDkl}"> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.PEQ1258321.2.AUTO_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">30</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <next> <block type="toggle" id="Qu(`$0$,QA:wkL}.Hr88"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ1258323.2.AUTO_MODE</field> <field name="WITH_DELAY">FALSE</field> <next> <block type="timeouts_clearinterval" id="}8vJ)Rp^.1uLi`x=!fb*"> <field name="NAME">Intervall</field> <next> <block type="timeouts_clearinterval" id="U[9[{?P[#}f!03KM/m8Q"> <field name="NAME">Intervall1</field> <next> <block type="timeouts_clearinterval" id="^Z^1B_DRjDien!XJY)QJ"> <field name="NAME">Intervall2</field> <next> <block type="timeouts_clearinterval" id="u[N/{(^Z,@=JhdoYO%Ew"> <field name="NAME">Intervall3</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="comment" id="4MVRQu!rIQe9@ihYS/.8"> <field name="COMMENT">Umschalten auf Nacht modus</field> <next> <block type="timeouts_setinterval" id="Q[6G3ac%$L5U9HcNSBHc"> <field name="NAME">Intervall</field> <field name="INTERVAL">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="QrvBI9.*BepZ|*mG0;HV"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ0998295.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="-[]|!0#3i%[wEC{{iDL_"> <field name="NUM">17</field> </block> </value> <next> <block type="control" id="=9SAPL!o:eF~9d#*HB]t"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ1258290.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="*V(a!Y:UvV-rNd;Jm#-h"> <field name="NUM">17</field> </block> </value> <next> <block type="control" id="`wSfUj}%/?|+g?|6yb~M"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ1258321.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="c]:|qlnIh-KN+K[.L4-5"> <field name="NUM">18</field> </block> </value> <next> <block type="control" id="CT_aP7t?)jf]*AnL!HX4"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ1258323.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="12M=2SulrE^eYbfYJ)8y"> <field name="NUM">17</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="timeouts_clearinterval" id="Hx0$q)|BIf)s/xk17W8/"> <field name="NAME">Intervall1</field> <next> <block type="timeouts_clearinterval" id="ZfME0C#;Hx]NUf7VRvh~"> <field name="NAME">Intervall2</field> <next> <block type="timeouts_clearinterval" id="y)V@3r,xz%5J=/zFNTy9"> <field name="NAME">Intervall3</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="c_2/z-l:{{T!6Z@8aj~)"> <field name="COMMENT">Auto & Nacht Modus wenn bei Eltern</field> <next> <block type="controls_if" id="+pxK.zqdsldXnG,%vz%0"> <value name="IF0"> <block type="logic_operation" id="+Xd~Rqn}(?^lCtVKLCb4" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="%TBZ1f*k.[]C^lN^:~HX" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="hl?c[8i3-{gRnG7s]8XM"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id=";6BG.2*q8,4R?^+V3qD:"> <field name="ATTR">val</field> <field name="OID">radar2.0.Marco._here</field> </block> </value> <value name="B"> <block type="logic_boolean" id="}1~Jd:llEUahP[BvM$k%"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="N,W*}YgxvJRF0s^lD7O0"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="-q%wsB6lUyM:6}|,$v-%"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.eltern.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="EvKgqD3{3;un9xoTn4fI"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="tJ,,]D}()8o+jIf*H*XN" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=",dwM{y8}S0k..#,hu3HI"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="l%~OeT1JiE`fvS{F)f0d"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.heizung.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="4)X?z+J~GDmPQVjB5WVM"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="|q6+OT|#-vGnk3ui!gAH"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=":C,GGCjYl:hN,:=!/0g("> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.home2.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="6DTuje661mUSgA%9ywY{"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_setinterval" id="Xue8=VnFFjZ+LI)t#P~8"> <field name="NAME">Intervall1</field> <field name="INTERVAL">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="B)(Ps7(EdZJK+fUO#esO"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ0998295.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="B]*77FSYWC@LxbT5)|Ck"> <field name="NUM">18</field> </block> </value> <next> <block type="control" id="5m@+J*R-9!^_pGXt(ApG"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ1258290.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="%tskFG3uFF2;(`yA^)5O"> <field name="NUM">17</field> </block> </value> </block> </next> </block> </statement> <next> <block type="timeouts_clearinterval" id="X![%zQ{g*@eqL=w;~b/~"> <field name="NAME">Intervall</field> <next> <block type="timeouts_clearinterval" id="xm~f(|q_7ILHLl,!cjLt"> <field name="NAME">Intervall2</field> <next> <block type="timeouts_clearinterval" id="*AXSkT:deU.5F,-sTg(t"> <field name="NAME">Intervall3</field> <next> <block type="toggle" id="Yf/XSh`c6[?k=$tm|Ocz"> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.PEQ1313594.4.AUTO_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">20</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <next> <block type="toggle" id="wd,v!4-eH{L(S7@Yk4UA"> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.PEQ1311880.4.AUTO_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">30</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="@3yr@e#;7XQJZxW0;o|1"> <field name="COMMENT">Auto Modus und Büro</field> <next> <block type="controls_if" id="%Fx3o*m~k*O]JM-=C^wx"> <value name="IF0"> <block type="logic_operation" id="`6tO}-$j%=-^.6rLTk+G" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="UCNpU62CwwbPFvYv}bp|" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="L1EXT{}Z)77y=4p[lIEJ" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Z#U$mwXxH!VpX|0tzyEH"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="`-UFvEQ`pf=le#aUvo+["> <field name="ATTR">val</field> <field name="OID">radar2.0.Marco._here</field> </block> </value> <value name="B"> <block type="logic_boolean" id="^]Ta%IR`C;X!8ofM==ek"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Po*[t0:+tXmAWmK@vMka"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Y.xWZ)LOUafUJ,~DR7@R"> <field name="ATTR">val</field> <field name="OID">radar2.0.Osiris._here</field> </block> </value> <value name="B"> <block type="logic_boolean" id="$6SqNxImsE4|A!ag`.N_"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Vw)xSLHM5F]o7MiB$!iO"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="![-;j@PHVWY$iD]=`Q3*"> <field name="ATTR">val</field> <field name="OID">tuya.0.05052560dc4f22d440aa.1</field> </block> </value> <value name="B"> <block type="logic_boolean" id=")%7AH@nhU@CQMH7l.y#!"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="JG#]]z6,Jno?3e)Q7Xmf" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Y$~?Ar){tuKZ!lQWHMWf"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="M,/]v}lxK**K}+NQWrW?"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.home.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="XWc;2nsHL[2I,zCXhooi"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id=".e)!22dZWWO:vdnG:7*," inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="k$,{AnIKN?=^{F|?,O]b"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="%;Sf!6:#CeK~{?d^K|J@"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.home2.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Bb{Xh[W5P#l2Mtz`)lq#"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=")+}lC(/k4ly{:YDW.4]/"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="BEW(?%lU3?5X6ak[9saF"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.heizung.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="/N|:PA%H{gls/!b1FXO2"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_setinterval" id="`.LU8v{kZ}QkX.4S.+W6"> <field name="NAME">Intervall2</field> <field name="INTERVAL">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="Dm!jc?.X`CgR#4SLaUG/"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ0998295.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="IOx3*bO.l=3P?]MK0X^e"> <field name="NUM">21</field> </block> </value> <next> <block type="control" id="}d]5orhNlJ(beCg8^rI,"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ1258323.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="R8Q9R@|Qh*A~yV{-G(ym"> <field name="NUM">18</field> </block> </value> </block> </next> </block> </statement> <next> <block type="timeouts_clearinterval" id="o0,H/A^~_Siu(ra[gu4F"> <field name="NAME">Intervall</field> <next> <block type="timeouts_clearinterval" id="7aTP(l5h@wy|OeBww#C@"> <field name="NAME">Intervall1</field> <next> <block type="timeouts_clearinterval" id="Xw(#nX(Msz=tp]{)Bwq%"> <field name="NAME">Intervall3</field> <next> <block type="toggle" id="FlC,_xFwR6Wy!Ep-ohv("> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.PEQ1313530.4.AUTO_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">10</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <next> <block type="toggle" id="4d}r=k^*osIBfeE5,##I"> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.PEQ1313594.4.AUTO_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">20</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="fRbuZl}!|`!.JHN3w`Ew"> <field name="COMMENT">Auto Modus und Wohnzimmer</field> <next> <block type="controls_if" id="l`uO5~qLVG5SELbq)PxY"> <value name="IF0"> <block type="logic_operation" id="3;/eo4A[BB@K{u3I4uml" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="TTO$@}#$w3G!A|XZrr8U" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="hK6bAX.dd+?2#*V7!25m"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="uq7|^P84TfO#ov%g-}Hh"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.home.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Ey7R6(-r,9j_Kz,0Zdi8"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="L,T{!{pe#Eb,06U_Vksj"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="zt6X5EP9XOm|VlF5xsU@"> <field name="ATTR">val</field> <field name="OID">radar2.0.Marco._here</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Wf_v}p0z%}`c$*5ic.R1"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="lr9!LhU=uo-6BV{ssRG=" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id=",mUIVHO;aFl?pk|kp!S~" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="p^eLCLEhO3qWSJS`.lf@"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="IZyEt(T:aQ[HcykFeGo*"> <field name="ATTR">val</field> <field name="OID">tuya.0.05052560dc4f22d440aa.1</field> </block> </value> <value name="B"> <block type="logic_boolean" id="B.[AXCPgC!({4lx~uF.b"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="=hoY{[iSNCa$zqkqsNN?"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="%d(vL8ko!`:rm{dQ9b,$"> <field name="ATTR">val</field> <field name="OID">radar2.0.Osiris._here</field> </block> </value> <value name="B"> <block type="logic_boolean" id="JL:t%q^x3)_tk3XfV(zF"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="G8vomn^@CiEaBPs=+,sH" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Fdm{Nx~R0a]0e_js6wHX"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Ay}qaeV_*a.S.jB,qr`]"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.home2.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="KpCtT808J)B5VP1]s0Ar"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="=.TG}amp3Q|7NxzOgsxN"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="S9pRJC~bCJLPjQISz-12"> <field name="ATTR">val</field> <field name="OID">owntracks.0.locations.heizung.presence</field> </block> </value> <value name="B"> <block type="logic_boolean" id="J;9l*{IS2#;Aj(?}r]AF"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_setinterval" id="a)*H#pVqz|NoZ.WE2qz."> <field name="NAME">Intervall3</field> <field name="INTERVAL">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="K8ty;(^8IYrW+G!,watO"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ0998295.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="B$}[yC9pVh2`}n]3]2ag"> <field name="NUM">18</field> </block> </value> <next> <block type="control" id="Gnp24:YnL@-xBaR{Ip}."> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ1258323.2.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="zC5}yForh79+5!7(f:9u"> <field name="NUM">21</field> </block> </value> </block> </next> </block> </statement> <next> <block type="timeouts_clearinterval" id="ypw|]llN;Bbu-Z%vnPOQ"> <field name="NAME">Intervall</field> <next> <block type="timeouts_clearinterval" id="%~7l{D@}rJle(g!U%GHW"> <field name="NAME">Intervall1</field> <next> <block type="timeouts_clearinterval" id="#P~;~^RZ2MDYjDd^^m9I"> <field name="NAME">Intervall2</field> <next> <block type="toggle" id=":!BPW{$3(%+%Dx-Y;^@f"> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.PEQ1313530.4.AUTO_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">10</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <next> <block type="toggle" id="VWb2W]Z54r8A^_0)RfE_"> <mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.PEQ1313594.4.AUTO_MODE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">20</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@frankyboy73
ich hab die intervalle rausgenommen da ich noch festgestellt habe das ja bei manu moduis der auto modus umgeschaltet wird im vergleich wenn ich nur set-temp ausführe, da schaltet der auto modus nämlich im prog. trotzdem weiter.... dafür war eig der intervall. so wird er aber nciht mehr gebraucht. -
@rebel85
jetzt ohne interval schaltet das skript wohl doch immer noch ständig, die ccu läuft richtig voll...
ist der steuerungs aufbau falsch? -
@rebel85
Hi, stell mal oben beim trigger von wurde aktualisiert auf wurde geändert um. Dann läuft das Skript nur bei ner Änderung durch. Bei wurde aktualisiert läuft das Skript dauerschleife, da du ja steuerst, dann ist der Wert ja aktualisiert, dadurch steuerst du wieder usw.
Kann sein das deine CCU deshalb voll läuft und der Iobroker hat wahrscheinlich auch nen hohen Arbeitsspeicherverbrauch. -
@rebel85 Was du mit deinem Blockly machst ist "tötlich" für deine CCU bzw. deren DutyCycle (kein endgültiger Tod ). Es wäre wichtig für dich, dich erst mal mit den Grundlagen von Homematic zu beschäftigen.
Jedes senden der CCU verbraucht Funkzeit die begrenzt ist, du sendet in Intervallen immer wieder auch wenn es unnötig ist. So ein paar Blockly mit ioBroker und deine Homematic Geräte lassen sich nicht mehr per Funkt steuern weil der DutyCycle aufgebraucht ist. Auch wenn die Befehle an die Zentrale extern kommen muß die Zentrale dann doch Funken was den DutyCycle erhöht. -
das ist das jetztige skript, testen werde ich es mal später.
muss ja irgendwie gehen das immer nur eine abfrage ausgelöst wird...@UweRLP sagte in homematic heizungssteuerung via blockly:
@rebel85 Was du mit deinem Blockly machst ist "tötlich" für deine CCU bzw. deren DutyCycle (kein endgültiger Tod ). Es wäre wichtig für dich, dich erst mal mit den Grundlagen von Homematic zu beschäftigen.
Jedes senden der CCU verbraucht Funkzeit die begrenzt ist, du sendet in Intervallen immer wieder auch wenn es unnötig ist. So ein paar Blockly mit ioBroker und deine Homematic Geräte lassen sich nicht mehr per Funkt steuern weil der DutyCycle aufgebraucht ist. Auch wenn die Befehle an die Zentrale extern kommen muß die Zentrale dann doch Funken was den DutyCycle erhöht.was für grundlagen fehlen mir denn? wie kann ich es dann anders lösen das externe steuern ohne dauerhafte routiene? mein tages ablauf ist unterschiedlich, und ich brauch nicht heizen wo ich nicht bin oder wenn ich länger zu hause bin, aber alles manuel machen ist auch keine option für mich. dann sag mir doch mal genauer was du meinst.
duty cycle und funken hab ich schon verstanden und den will ich je reduzieren, ggf. das ich thermostate zusammen pake via simulierte schalter von der ccu .... -
@rebel85 Entschuldige bitte sollte ich dir zu nahe getreten sein, das war nicht meine Absicht. Ich wollte nur daruf hinweisen, dass du durch dein Blockly, so wie es ursprünglich war den DutyCycle deiner CCU in die höhe treibst bis zum Anschlag. Du startest Intervalle die nie wieder gestoppt werden. Wenn das Blockly/iobroker so eine Zeitlang läuft werden Hilferufe von dir kommen das du deine Homematic Geräte nicht mehr bedienen kannst.
Wie du für deine Situation detailliert vorgehen kannst, kann ich für Dich nicht entscheiden. Grundsätzlich sollte man sich aber die Frage stellen ob es sinnvoll ist für eine kurze Abwesenheit die Temperatur absenken zu wollen.
Dann versuchst du alles "händisch" zu machen, also manueller Modus dann entsprechende Temperatur setzten, später alles wieder zurück. Das bedeutet für die CCU ständig Funktelegramme an die Thermostate.
Das sind nun ein paar Beispiele, aber mir ist es hier nicht möglich auf jede Kleinigkeit ein zu gehen daher der Hinweis auf Grundlagen.
Grundsätzlich sollte man darauf achten, bei Homematic wirklich nur das notwendigste zu Senden.PS: Geräte steuert man in blockly und schaltet nicht um und aktuallisiert diese auch nicht.
-
@UweRLP sagte in homematic heizungssteuerung via blockly:
Grundsätzlich sollte man sich aber die Frage stellen ob es sinnvoll ist für eine kurze Abwesenheit die Temperatur absenken zu wollen.
davon habe ich nciht gesprochen, das senken bzw. umschlalten ist so gedacht das es länger gedacht ist, z.b. 1-2 oder 5 Stunden.... das dann zu hause nicht wild rum geheizt wird sondern nur auf normal sparflamme.
daher das blockly skript zur steuerung durch die abfragen. wenn das anscheinend zu viel senden würde... würde ich gerne die andere lösung hören, daher wende ich mich hier ans forum. den DC von der CCU hab ich schon mit bekommen daher ja meine 2. idee die simulierten aktoren zu nutzen um 1 befehl zu senden anstatt 3 oder 4 in manchen aktionen. -
@rebel85 sagte in homematic heizungssteuerung via blockly:
davon habe ich nciht gesprochen, das senken bzw. umschlalten ist so gedacht das es länger gedacht ist, z.b. 1-2 oder 5 Stunden.... das dann zu hause nicht wild rum geheizt wird sondern nur auf normal sparflamme.
Ähm, kurz sind halt unterschiedliche Empfindungen.
Was sparst du wenn du 5 Stunden nicht wild rum geheizt sondern nur normal sparflamme geheizt hast und wieviel mehr Energie wirst du wieder reinstecken müssen um deine Kompfortemperatur zu erreichen? -
wenn ich ein raum am abend komplett nicht benutz brauche ich den auch nciht heizen, denn das ist irrsin.
bin ich nicht zu hause bracuh ich nciht jeden raum heizen wenn ich später ins bett gehe. ja wenn ich ein paar kw oder mehr einspare macht es sinn, -
@rebel85 Sorry, wollte nicht eine Grundsatzdiskusion über die Sinnigkeit einer Temperaturabsenkung auslösen. Mein Anliegen war es eigentlich nur auf das Problem mit dem Duty Cycle hin zu weisen. Das habe ich ja nun zum Ausdruck gebracht und werde mich hier von nun an zurück halten.
-
Warum macht man so eine Steuerung überhaupt über Blockly
Die CCU hat dafür doch eine eigene Steuerung.
Und auch in der CCU Steuerung ist es überhaupt kein Problem eine Anwesenheitsüberprüfung mit einzubauen.
-
@Yetiberg sagte in homematic heizungssteuerung via blockly:
Warum macht man so eine Steuerung überhaupt über Blockly
Mir persönlich fällt es leichter was in Blockly um zu setzen als mit Homematic Programmen. Daher kann ich die Entscheidung von @rebel85 nachvollziehen.
Die CCU hat dafür doch eine eigene Steuerung.
Bevor ich aber was mit Blockly umsetze versuche ich erst, wenn möglich, das mit Direktverknüpfungen zu machen. Wenn dies nicht geht, dann greife ich auf Blockly zurück anstatt Homematic Programme und Scripte.
Aber ich weiche schon wieder vom eigentlichen Thema ab...
-
@UweRLP
ja ist schon verständlich, nur für mein blockly vorhaben suche ich eben eine einfachere lösung zur umsetzung. mit homematic zu beschäftigen udn in meinen augen das komplizierte steuern regeln und überwachen anzufangen, ist mir zu blöd ehrlich gesagt da ich mit blockly schon eriniges gelöst habe und die ccu3 nur ein kommunikationspunkt ist.
bei zeiten bau ich das mal mit dem virtuellem taster und gucke ob das skripot noch mal umbauen kann damit der DC nicht gleich voll läuft, was ja eig nciht sein kann da ja nur immer 4 sachen gesendet werden sollen und keine dauersendung..... hmmm -
Mal als Idee da noch keiner darauf hingewiesen hat:
Bringt dir der HeatingControl - Adapter vielleicht etwas?
Dieser bildet so gut wie alles ab was man so braucht inkl. An/Abwesenheitskontrolle -
@rebel85 Nunja für mich ist das ganze Hobby und bringt die eine oder andere angenehme Möglichkeit mit. Wirklich sparen kann man mit Smarthome nicht, zumindest nicht mit Nachrüstlösungen. Wenn ich mir vorstelle welche Ressourcen ich verbraucht habe alles umzurüsten, und was ich in Zukunft noch rein stecken muß (Batterien und Austausch def. Geräte) da bleibt nix auf der Habenseite übrig.
Wenn es kein Hobby ist sollte man vielleicht auch nicht mit aller Gewalt versuchen eine Heizungsreglung zu optimieren.
Entweder ich beschäftige mich mit meiner Hardware und versuche das Beste raus zu holen oder ich lass es ganz sein und spare damit Ressourcen und Energie.
Ich arbeite Schicht, daher sind die vorgesehenen Absenkungen bei Homematic nicht optimal für mich. Aber der Aufwand den Heizrhythmus 100% auf mein Schichtsystem anzupassen ist mir die Sache nicht wert. -
@TorbenNW
für iobroker oder homematic? gehört habe ich den noch nicht.