NEWS
Mit mehreren Werten rechnen
-
Hallo,
ich bin gerade dabei von FHEM auf ioBroker umzuziehen. Ich habe eine Gastherme, welche ich über einen Homematic HM-LC-Sw1-Ba-PCB Aktor Ein bzw. Aus schalte. Um zu wissen wann die Heizung sich einschalten muss, habe ich das in FHEM bisher so gelöst indem ich die Ventilposition aller Heizkörper- Thermostate zusammengerechnet und dann durch die Anzahl der vorhandenen Thermostate dividiert habe. War dieser Wert dann größer oder kleiner als ein bestimmter Schwellenwert, dann hat wurde meine Gastherme entweder Ein- oder Ausgeschaltet.
Diese Logik würde ich jetzt auch gerne in ioBroker mittels Blockly umsetzen. Könnt Ihr mir dazu sagen, wie ich es jetzt am Besten angehe, damit ich die Ventilpositionen meiner fünf Heizkörper- Thermostate zusammenrechnen und danach dividieren kann?
Hier noch ein paar Screenshots aus FHEM. Vielleicht ist es damit auch leichter verständlich.
Übersicht:
Berechnung der Ventilposition:
DOIF welches die Gastherme schaltet:
Liebe Grüße
Manuel -
@mws
Du brauchst einen Trigger, der auf Änderungen deiner Ventile reagiert,
(ich habe irgendwelche Datenpunkte von meinen Steckdosen eingesetzt)<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="EgWDSM+ZI*yeEi}8OloP">schwelle</variable> <variable id="jxevN=!K6od-y2p*BWSE">liste</variable> <variable id="BHfhwca!@GS2RXXq`wHe">mittel</variable> </variables> <block type="variables_set" id="$3_+wrW`1~#oP*_t9r,$" x="-1012" y="-412"> <field name="VAR" id="EgWDSM+ZI*yeEi}8OloP">schwelle</field> <value name="VALUE"> <block type="math_number" id="=u*0(.ycvlW1xTaOa-i+"> <field name="NUM">10</field> </block> </value> <next> <block type="on_ext" id="{T)8J!hVJIE|lz;kup$_"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="5"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="H:.M9X27cmJsfVQl1wO?"> <field name="oid">zigbee.0.842e14fffe186b9c.load_power</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="~*D1NWvnZbv_5]Jth/)("> <field name="oid">zigbee.0.842e14fffe186b9c.voltage</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="n*Dr~=GlFN:$+lOqr-_C"> <field name="oid">zigbee.0.842e14fffe186b9c.state</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="k|UCuN^|TCuw)26ZJS#u"> <field name="oid">zigbee.0.842e14fffe186b9c.energy</field> </shadow> </value> <value name="OID4"> <shadow type="field_oid" id="mp]I!TmQ*UpZZz13u_^*"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="@|Md8]yOj~;nXkT@hI8t"> <field name="VAR" id="jxevN=!K6od-y2p*BWSE">liste</field> <value name="VALUE"> <block type="lists_create_with" id="K?J6p|mM`y,Hv1E;;s`g"> <mutation items="5"></mutation> <value name="ADD0"> <block type="get_value" id="V4z/~Cl=,.`9[:U/J@-F"> <field name="ATTR">val</field> <field name="OID">zigbee.0.842e14fffe186b9c.load_power</field> </block> </value> <value name="ADD1"> <block type="get_value" id="@f!-Un%;p^6.j7~_L|EO"> <field name="ATTR">val</field> <field name="OID">zigbee.0.842e14fffe186b9c.load_power</field> </block> </value> <value name="ADD2"> <block type="get_value" id="5|G|*{[$)==HY]`F]_(^"> <field name="ATTR">val</field> <field name="OID">zigbee.0.842e14fffe186b9c.load_power</field> </block> </value> <value name="ADD3"> <block type="get_value" id="80N@K+h{JY@/Hi9QUUHw"> <field name="ATTR">val</field> <field name="OID">zigbee.0.842e14fffe186b9c.load_power</field> </block> </value> <value name="ADD4"> <block type="get_value" id="1n5]73n41]=cNp?jSBLb"> <field name="ATTR">val</field> <field name="OID">zigbee.0.842e14fffe186b9c.load_power</field> </block> </value> </block> </value> <next> <block type="variables_set" id="qkX7BfR3Ep(1m!e}/Kn0"> <field name="VAR" id="BHfhwca!@GS2RXXq`wHe">mittel</field> <value name="VALUE"> <block type="math_arithmetic" id="#~Pa;*Vdm4{6f%g+bBm%"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="m.^h)Qtr=VbCfp]7KW:W"> <field name="NUM">1</field> </shadow> <block type="math_on_list" id="49VY$6(+=!h=Z+_~+Rsc"> <mutation op="SUM"></mutation> <field name="OP">SUM</field> <value name="LIST"> <block type="variables_get" id="m}kjJJSx+.YHA#K#~7!d"> <field name="VAR" id="jxevN=!K6od-y2p*BWSE">liste</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="hvnjG]UU#`#h4T!/.k1,"> <field name="NUM">1</field> </shadow> <block type="lists_length" id="3%1!cB7aEwFS((O;T2z:"> <value name="VALUE"> <block type="variables_get" id="i;V@Jo@Yzp{TvWmwMQ|W"> <field name="VAR" id="jxevN=!K6od-y2p*BWSE">liste</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_if" id="=[c7k_$?s2+ijPdmdJb0"> <value name="IF0"> <block type="logic_compare" id="o_]qCH7jxMAizlLcEY!n"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="B~d%{[075E=%oJ*L#/v@"> <field name="VAR" id="BHfhwca!@GS2RXXq`wHe">mittel</field> </block> </value> <value name="B"> <block type="variables_get" id="^zn)fp~b6P]2lHU7(91,"> <field name="VAR" id="EgWDSM+ZI*yeEi}8OloP">schwelle</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>