NEWS
homematic heizungssteuerung via blockly
-
-
-
@dslraser sagte:
Muß man erst über CONTOL_MODE umschalten auf MANU_MODE ?
Nein, CONTROL_MODE ist "read only" und zeigt den aktuellen Modus an.
-
@dslraser
eig. nicht sobal ich einen wert bei manu_mode / level_temp. eingabe
wechsel der modus von auto auf manuel und der wert wird dann auch nach set_temp. übertragen.
so ist das verhalten wenn ich das selber eintrage.
hab auch gesehen das ich beim stift den "wert" Typ der zelle anpassen kann, hab ich von nummer auf mixed geschaltet. -
@rebel85 sagte:
Typ der zelle anpassen kann, hab ich von nummer auf mixed geschaltet.
Das mache wieder rückgängig und verwende in Blockly Zahlen (wie oben gezeigt).
-
@paul53
hab ich doch schon wie oben aber läuft ja trotzdem nicht... -
@rebel85
hast Du mal Dein Blockly gestoppt und jetzt mit Zahlen neu gestartet. In Deinem Blockly laufen 4 Intervalle die aber nie irgendwo gestoppt werden ? -
@dslraser
aber die intervalle laufen doch nur wenn die bedingen oben erfüllt sind, so ist mein verstehen der funktionen.
ja schon mehrfach gestoppt und gestartet.
der code oben ist ja schon mit dem mathematik feld (lila) -
@rebel85
da ich die Geräte nicht habe kann ich es nicht nachstellen. Ich kann also nicht wirklich helfen. Dein Blockly ist auch sehr komplex um sich das rein zu denken.
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. -
@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.