NEWS
Störungsmeldung der Heizung
-
@tiobb sagte: Wofür muss ich Datenpunkte erzeugen,
Zum Triggern auf "wurde geändert", wenn die jeweilige Bedingung erfüllt ist.
-
@tiobb sagte: Den Datenpunkt vom Shelly (Leistungsanzeige) kann man nicht zum triggern nehmen?
Der triggert nur den ersten Block, denn der Wert ändert sich ständig.
-
@tiobb sagte: Den Datenpunkt vom Shelly (Leistungsanzeige) kann man nicht zum triggern nehmen?
Es geht auch ohne zusätzliche Datenpunkte:

-
@paul53
Danke, das macht es für mich etwas übersichtlicher als mit zusätzlichen Datenpunkten. Was bewirken die bei beiden "stop timeout"?@tiobb sagte: Was bewirken die bei beiden "stop timeout"?
Ohne das untere "stop timeout" würde die Störungsmeldung auch erfolgen, wenn der Brenner innerhalb der 2 Minuten gestartet ist. Das obere "stop timeout" verhindert die Störungsmeldung, wenn innerhalb von 2 Minuten wieder abgeschaltet wird.
-
@tiobb sagte: Was bewirken die bei beiden "stop timeout"?
Ohne das untere "stop timeout" würde die Störungsmeldung auch erfolgen, wenn der Brenner innerhalb der 2 Minuten gestartet ist. Das obere "stop timeout" verhindert die Störungsmeldung, wenn innerhalb von 2 Minuten wieder abgeschaltet wird.
-
@paul53
Guten morgen, ich schon wieder :innocent:
Habe das Script eben mal getestet, habe den Brenner direkt an der Heizung aus geschaltet damit der Brenner nicht anspringen kann. Ich bekomme dann auch nach knapp 2 Minuten eine Störungsmeldung :+1: aber die bekomme ich alle 15 Sekunden. Wo bzw wie kann ich da ein "Stop" einbauen, denn einmal Störung reicht mir. -
@paul53
Guten morgen, ich schon wieder :innocent:
Habe das Script eben mal getestet, habe den Brenner direkt an der Heizung aus geschaltet damit der Brenner nicht anspringen kann. Ich bekomme dann auch nach knapp 2 Minuten eine Störungsmeldung :+1: aber die bekomme ich alle 15 Sekunden. Wo bzw wie kann ich da ein "Stop" einbauen, denn einmal Störung reicht mir. -
@tiobb sagte: die bekomme ich alle 15 Sekunden.
Poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
Wert und vorheriger Wert stammen aus Trigger?
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on_ext" id="^9loASAzRU/?K#sRIU{R" x="238" y="-62"> <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="EEjrqpK_X,GhU}dn;nj0"> <field name="oid">shelly.0.SHSW-25#98CDAC245E5E#1.Relay0.Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="s1xUC416o^)J1o{Pci#B"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="toWrFr0+?PzVkr`+3SKD"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="f4]R$$jIXTcF;c_GA?Gz"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="yL+ipuxO!fW:/m+o{-+j"> <field name="NUM">60</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="f:Vx[n6)1^eS$?Go%`VH"> <field name="NAME">timeout</field> </block> </statement> <value name="IF1"> <block type="logic_compare" id="jSIEToEL3Dwjrh:F{a#c"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="{@X7w?x[BP^;a[*#;)gf"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="/+3eJXWCA#~z8kPZKbI~"> <field name="NUM">70</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="XRuPGUJ.$KCvZEFjgIi8"> <field name="NAME">timeout</field> <field name="DELAY">2</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="telegram" id=";$2Ev#/Ui-b2x]H`DTy+"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="Q,7z+tn/6hr,C%=*[S?d"> <field name="TEXT">Störung Heizung</field> </shadow> </value> <value name="USERNAME"> <block type="text" id="bmM[2js4?Vd@r0N*jG7j"> <field name="TEXT">Michael</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="ob;3vT+~S|9#am`#=@^_"> <value name="IF0"> <block type="logic_compare" id="q=eyZLWD(:j_#qda6f0t"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="`SYd^JSw}j`KNH)mM}eb"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="#j)5Vw04aRbRl}%fyLL]"> <field name="NUM">200</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="6]x?c}gouBY4wqSQjh;1"> <field name="NAME">timeout</field> </block> </statement> </block> </next> </block> </statement> </block> </xml> -
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on_ext" id="^9loASAzRU/?K#sRIU{R" x="238" y="-62"> <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="EEjrqpK_X,GhU}dn;nj0"> <field name="oid">shelly.0.SHSW-25#98CDAC245E5E#1.Relay0.Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="s1xUC416o^)J1o{Pci#B"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="toWrFr0+?PzVkr`+3SKD"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="f4]R$$jIXTcF;c_GA?Gz"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="yL+ipuxO!fW:/m+o{-+j"> <field name="NUM">60</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="f:Vx[n6)1^eS$?Go%`VH"> <field name="NAME">timeout</field> </block> </statement> <value name="IF1"> <block type="logic_compare" id="jSIEToEL3Dwjrh:F{a#c"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="{@X7w?x[BP^;a[*#;)gf"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="/+3eJXWCA#~z8kPZKbI~"> <field name="NUM">70</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="XRuPGUJ.$KCvZEFjgIi8"> <field name="NAME">timeout</field> <field name="DELAY">2</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="telegram" id=";$2Ev#/Ui-b2x]H`DTy+"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="Q,7z+tn/6hr,C%=*[S?d"> <field name="TEXT">Störung Heizung</field> </shadow> </value> <value name="USERNAME"> <block type="text" id="bmM[2js4?Vd@r0N*jG7j"> <field name="TEXT">Michael</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="ob;3vT+~S|9#am`#=@^_"> <value name="IF0"> <block type="logic_compare" id="q=eyZLWD(:j_#qda6f0t"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="`SYd^JSw}j`KNH)mM}eb"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="#j)5Vw04aRbRl}%fyLL]"> <field name="NUM">200</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="6]x?c}gouBY4wqSQjh;1"> <field name="NAME">timeout</field> </block> </statement> </block> </next> </block> </statement> </block> </xml>@tiobb
Wenn Du anstelle von "vorheriger Wert" "Wert" nimmst und dann noch mit einem anderen Vergleichswert, kann es nicht funktionieren.So wird der Timer nur gestartet, wenn
Wert >= 60 UND vorheriger Wert < 60In Deinem Fall wurde alle 15 s ein neuer Timer gestartet, wenn die Leistung zwischen 60 und 70 schwankte.
-
@tiobb
Wenn Du anstelle von "vorheriger Wert" "Wert" nimmst und dann noch mit einem anderen Vergleichswert, kann es nicht funktionieren.So wird der Timer nur gestartet, wenn
Wert >= 60 UND vorheriger Wert < 60In Deinem Fall wurde alle 15 s ein neuer Timer gestartet, wenn die Leistung zwischen 60 und 70 schwankte.