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>
-
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! -
@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.
-
@paul53
Danke!! -
adapter "device-reminder" .... macht es euch doch nicht immer so schwer
-
@xenon
Hmm, klingt interessant! Muß ich mir mal anschauen, danke!