NEWS
Zweifache, statt einfache Meldung nach Ausführung
-
Hallo zusammen!
Durch nachfolgendes Skript bekomme ich immer ZWEI mal die Meldung "Waschmaschine fertig ...".
Bestimmt habe ich einen Denkfehler?
Kann mir da jemand helfen?Danke und Grüße,
Marcus
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</variable> <variable type="timeout" id="timeout_fertig">timeout_fertig</variable> <variable id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</variable> <variable id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</variable> <variable id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</variable> </variables> <block type="variables_set" id="vB%/(%QK-.|VB8olH+F+" x="63" y="-87"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="Zt3N#kbH0XjK+}5)pbJ^"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on" id="Qn2CRF`}__(KPXGK6}S)"> <field name="OID">sonoff.0.Waschmaschine.ENERGY_Power</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="*bOx]47]yxIByA#qqt3J"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="Z=d#73]O`zyDGC~L|Jn/" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=".(cUpb9mFzXnI.u`/RGu"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="+L|D9(N^L/_9p**AC4Y#"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="IRXiQ:Tf}.:}u-F;(J?|"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="!+aTX:f8zpg?koPwXqU9"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="~^+uLCVDphEA1T3csQ;4"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> </block> </value> <value name="B"> <block type="logic_boolean" id="m9)+OzK@16j;{0FErZe_"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="=JSbSA8^An9a5GvpnhX$"> <field name="NAME">timeout_fertig</field> <next> <block type="variables_set" id="yj^]v8#=,-=xs,C$1:0m"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="c%J}.8a#0L-%7wEqRPVF"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="9#YrXdwG5}cOx9Y(@8Wv"> <field name="VAR" id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</field> <value name="VALUE"> <block type="get_value" id="a8TRMLX$e~nl*Y09Y9iB"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Waschmaschine.ENERGY_Total</field> </block> </value> <next> <block type="telegram" id="V79]mw|-s_Wa8itsYZZ^"> <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="x#tx~0e1$9f(D`sZ!a=/"> <field name="TEXT">Waschmaschine wurde gestartet</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="wl}:AM5f.V@,,B,k)v4h" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="XIS_.a|x]QvT#@06:K.x"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="kstcgNt=({JJ3d}#L;NF"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="YGv35$!+3rV$F3AFhtoY"> <field name="NUM">3</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="c)R3.p--u3iGUOsrc`O{"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="f~?GA}.0HwGF,M]^8+G|"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> </block> </value> <value name="B"> <block type="logic_boolean" id="o3pV%;2)26x[!WNMkGSO"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="w`%fEqzXS#K[?$/JZDGc"> <field name="NAME">timeout_fertig</field> <field name="DELAY">38</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id="2(pj!sdNC~Ryb=_-`jVi"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="cjp#WKj{jC[I8,BWyNdc"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="yY,)jgdUB2GJR%%irN/r"> <field name="VAR" id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</field> <value name="VALUE"> <block type="get_value" id="GEQguIpsHP,A4/^`nhvw"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Waschmaschine.ENERGY_Total</field> </block> </value> <next> <block type="variables_set" id="itWRJGQ7J.:H;#:0pdT)"> <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field> <value name="VALUE"> <block type="math_rndfixed" id="`CQLoA,hTBeCF^jC$m7o"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="K5?[|]UP!f)gh(WB9YlR"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="-(/lVRk*3=g:[5qmWUDn" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="my)c;67df,_rqPUn*7Zw"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="z1D_-h-T3fHL]w@7I8[J"> <field name="VAR" id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</field> </block> </value> <value name="B"> <shadow type="math_number" id="n]MNz;YDQG/~Z.,SRtR0"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="$?{4ycoT|{bZNx,tb7vH"> <field name="VAR" id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</field> </block> </value> </block> </value> </block> </value> <next> <block type="telegram" id="CQb6Xn]wF:sTrg((4:I/"> <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="/ol[jFtqydF.de(P.5^p"> <field name="TEXT">Waschmaschine ist fertig!</field> </shadow> <block type="text_join" id="H6/ojZvgU{P~Pt6)*5x0"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="`xB48uoDS?5mFuf~H]Dz"> <field name="TEXT">Waschmaschine ist fertig!</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="1{zZXpJ(5O)OaE7:;C+="> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="po4kBhKs^=Afge7P@+}-"> <field name="TEXT">Verbrauch: </field> </block> </value> <value name="ADD3"> <block type="variables_get" id="(KJjJ3PKdl32SrGqUe6,"> <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field> </block> </value> <value name="ADD4"> <block type="text" id="4P;K$4nY$zo-[Pi%I9XP"> <field name="TEXT">kWh</field> </block> </value> <value name="ADD5"> <block type="text_newline" id="3u~EQK:5E13$fc~OVM,D"> <field name="Type">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="h5A}=DuU:Bnkky*=1RC6"> <field name="TEXT">Kosten: </field> </block> </value> <value name="ADD7"> <block type="math_rndfixed" id="6r0lnE16^V98#!gIbVQO"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="#ij|D2Km]s#UhaB`Jdo~"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="~FzTOPB^Rwjf6}91Sh(p"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="$YJtcuO%6gF[y4@uO]L`"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="`=t.T#B21IW5`.w$T!:0"> <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field> </block> </value> <value name="B"> <shadow type="math_number" id=";Q5q@z2EAr]3p=:~jBa%"> <field name="NUM">0.25</field> </shadow> </value> </block> </value> </block> </value> <value name="ADD8"> <block type="text" id="dsx1hx27*8lqAYaqdOuC"> <field name="TEXT">€</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </xml> -
Hallo zusammen!
Durch nachfolgendes Skript bekomme ich immer ZWEI mal die Meldung "Waschmaschine fertig ...".
Bestimmt habe ich einen Denkfehler?
Kann mir da jemand helfen?Danke und Grüße,
Marcus
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</variable> <variable type="timeout" id="timeout_fertig">timeout_fertig</variable> <variable id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</variable> <variable id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</variable> <variable id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</variable> </variables> <block type="variables_set" id="vB%/(%QK-.|VB8olH+F+" x="63" y="-87"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="Zt3N#kbH0XjK+}5)pbJ^"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on" id="Qn2CRF`}__(KPXGK6}S)"> <field name="OID">sonoff.0.Waschmaschine.ENERGY_Power</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="*bOx]47]yxIByA#qqt3J"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="Z=d#73]O`zyDGC~L|Jn/" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=".(cUpb9mFzXnI.u`/RGu"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="+L|D9(N^L/_9p**AC4Y#"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="IRXiQ:Tf}.:}u-F;(J?|"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="!+aTX:f8zpg?koPwXqU9"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="~^+uLCVDphEA1T3csQ;4"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> </block> </value> <value name="B"> <block type="logic_boolean" id="m9)+OzK@16j;{0FErZe_"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="=JSbSA8^An9a5GvpnhX$"> <field name="NAME">timeout_fertig</field> <next> <block type="variables_set" id="yj^]v8#=,-=xs,C$1:0m"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="c%J}.8a#0L-%7wEqRPVF"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="9#YrXdwG5}cOx9Y(@8Wv"> <field name="VAR" id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</field> <value name="VALUE"> <block type="get_value" id="a8TRMLX$e~nl*Y09Y9iB"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Waschmaschine.ENERGY_Total</field> </block> </value> <next> <block type="telegram" id="V79]mw|-s_Wa8itsYZZ^"> <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="x#tx~0e1$9f(D`sZ!a=/"> <field name="TEXT">Waschmaschine wurde gestartet</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="wl}:AM5f.V@,,B,k)v4h" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="XIS_.a|x]QvT#@06:K.x"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="kstcgNt=({JJ3d}#L;NF"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="YGv35$!+3rV$F3AFhtoY"> <field name="NUM">3</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="c)R3.p--u3iGUOsrc`O{"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="f~?GA}.0HwGF,M]^8+G|"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> </block> </value> <value name="B"> <block type="logic_boolean" id="o3pV%;2)26x[!WNMkGSO"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="w`%fEqzXS#K[?$/JZDGc"> <field name="NAME">timeout_fertig</field> <field name="DELAY">38</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id="2(pj!sdNC~Ryb=_-`jVi"> <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="cjp#WKj{jC[I8,BWyNdc"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="yY,)jgdUB2GJR%%irN/r"> <field name="VAR" id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</field> <value name="VALUE"> <block type="get_value" id="GEQguIpsHP,A4/^`nhvw"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Waschmaschine.ENERGY_Total</field> </block> </value> <next> <block type="variables_set" id="itWRJGQ7J.:H;#:0pdT)"> <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field> <value name="VALUE"> <block type="math_rndfixed" id="`CQLoA,hTBeCF^jC$m7o"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="K5?[|]UP!f)gh(WB9YlR"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="-(/lVRk*3=g:[5qmWUDn" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="my)c;67df,_rqPUn*7Zw"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="z1D_-h-T3fHL]w@7I8[J"> <field name="VAR" id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</field> </block> </value> <value name="B"> <shadow type="math_number" id="n]MNz;YDQG/~Z.,SRtR0"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="$?{4ycoT|{bZNx,tb7vH"> <field name="VAR" id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</field> </block> </value> </block> </value> </block> </value> <next> <block type="telegram" id="CQb6Xn]wF:sTrg((4:I/"> <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="/ol[jFtqydF.de(P.5^p"> <field name="TEXT">Waschmaschine ist fertig!</field> </shadow> <block type="text_join" id="H6/ojZvgU{P~Pt6)*5x0"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="`xB48uoDS?5mFuf~H]Dz"> <field name="TEXT">Waschmaschine ist fertig!</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="1{zZXpJ(5O)OaE7:;C+="> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="po4kBhKs^=Afge7P@+}-"> <field name="TEXT">Verbrauch: </field> </block> </value> <value name="ADD3"> <block type="variables_get" id="(KJjJ3PKdl32SrGqUe6,"> <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field> </block> </value> <value name="ADD4"> <block type="text" id="4P;K$4nY$zo-[Pi%I9XP"> <field name="TEXT">kWh</field> </block> </value> <value name="ADD5"> <block type="text_newline" id="3u~EQK:5E13$fc~OVM,D"> <field name="Type">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="h5A}=DuU:Bnkky*=1RC6"> <field name="TEXT">Kosten: </field> </block> </value> <value name="ADD7"> <block type="math_rndfixed" id="6r0lnE16^V98#!gIbVQO"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="#ij|D2Km]s#UhaB`Jdo~"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="~FzTOPB^Rwjf6}91Sh(p"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="$YJtcuO%6gF[y4@uO]L`"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="`=t.T#B21IW5`.w$T!:0"> <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field> </block> </value> <value name="B"> <shadow type="math_number" id=";Q5q@z2EAr]3p=:~jBa%"> <field name="NUM">0.25</field> </shadow> </value> </block> </value> </block> </value> <value name="ADD8"> <block type="text" id="dsx1hx27*8lqAYaqdOuC"> <field name="TEXT">€</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </xml>Da ist ein Denkfehler drin, du hast recht.
Der Fehler entsteht wenn der Wert unter 3 ist und sich innerhalb von 38 sekunden mindestens 1x ändert ohne das er zwischendurch über 5 Steigt.
Was passiert ist das beim ersten Unterschreiten von 3 der timeout_fertig ausgelöst wird. Die Bedingung "wert<3" und "waschmaschine_aktiv" bleiben beide wahr so das bei der oben angesprochenen Anpassung ein 2. Timeout ausgelöst wird ohne den ersten zu beenden.
Die einfachste Lösung dafür ist das umsetzen von "waschmaschine_aktiv = false" vor den Timeout_fertig.
A.
-
Da ist ein Denkfehler drin, du hast recht.
Der Fehler entsteht wenn der Wert unter 3 ist und sich innerhalb von 38 sekunden mindestens 1x ändert ohne das er zwischendurch über 5 Steigt.
Was passiert ist das beim ersten Unterschreiten von 3 der timeout_fertig ausgelöst wird. Die Bedingung "wert<3" und "waschmaschine_aktiv" bleiben beide wahr so das bei der oben angesprochenen Anpassung ein 2. Timeout ausgelöst wird ohne den ersten zu beenden.
Die einfachste Lösung dafür ist das umsetzen von "waschmaschine_aktiv = false" vor den Timeout_fertig.
A.
@asgothian
Cool, danke!
Setzte ich gleich nachher um! -
Da ist ein Denkfehler drin, du hast recht.
Der Fehler entsteht wenn der Wert unter 3 ist und sich innerhalb von 38 sekunden mindestens 1x ändert ohne das er zwischendurch über 5 Steigt.
Was passiert ist das beim ersten Unterschreiten von 3 der timeout_fertig ausgelöst wird. Die Bedingung "wert<3" und "waschmaschine_aktiv" bleiben beide wahr so das bei der oben angesprochenen Anpassung ein 2. Timeout ausgelöst wird ohne den ersten zu beenden.
Die einfachste Lösung dafür ist das umsetzen von "waschmaschine_aktiv = false" vor den Timeout_fertig.
A.
@asgothian
Ich habe es so gemacht, wie Du geschrieben hast.
Das Umsetzen von "Waschmaschine_aktiv?" auf "falsch" nach dem Timeout muß aber schon auch zusätzlich bleiben, oder?
-
@asgothian
Ich habe es so gemacht, wie Du geschrieben hast.
Das Umsetzen von "Waschmaschine_aktiv?" auf "falsch" nach dem Timeout muß aber schon auch zusätzlich bleiben, oder?
@invidianer sagte: Das Umsetzen von "Waschmaschine_aktiv?" auf "falsch" nach dem Timeout muß aber schon auch zusätzlich bleiben, oder?
Nein.
-
@invidianer sagte: Das Umsetzen von "Waschmaschine_aktiv?" auf "falsch" nach dem Timeout muß aber schon auch zusätzlich bleiben, oder?
Nein.
@paul53
Danke!! -
@xenon
Hmm, klingt interessant! Muß ich mir mal anschauen, danke!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden