NEWS
Timeout für Waschmaschine
-
Hallo zusammen,
ich habe als Blockly Laiedas folgendes Script am laufen, was mir hier noch fehlt, ist ein Timeout damit die Waschmaschine nicht jedes mal fertig meldet, wenn sie zwischendurch mal sparsam wird. Das funktioniert schon recht gut mit diesem Script.
Leider kommt es doch immer wieder zu Fehlmeldungen wenn der Wert unterschritten wird. Ich habe schon eine menge hier gelesen und probiert aber irgendwie bekomme ich es nicht hin. Alle Scripte die ich finde beinhalten meist noch viel mehr Funktionen so das nicht genau weiß welchen teil ich nun wo in mein Script einbauen muss. Vielleicht kann mir hier jemand behilflich sein.```
code_text
<variables> <variable id="Hhe!Hg(xh7gHuy(6hLlx">WaMa_EinAus</variable> <variable type="timeout" id="timeout2">timeout2</variable> </variables> <block type="variables_set" id="i@;~wXOo)(5+=$*9v:QF" x="13" y="13"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx">WaMa_EinAus</field> <value name="VALUE"> <block type="logic_boolean" id="stD7DD67D[4(YSQ3dCvR"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on_ext" id="%l??Ns0%ZOhlZQJn)RIY"> <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="8p+iN2CjzC1M$2o|Xq=m"> <field name="oid">sonoff.0.DVES_01C220.ENERGY_Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="-4y,4m5H6`8[U,UjJH(0"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-^U__L=#GGG_LD~6o~hg" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="90" w="276">Falls Maschinengang erkannt (Wattzahl >10) UND Modus ist auf falsch dann starte und schreibe den aktuellen verbrauch in DP</comment> <value name="A"> <block type="logic_compare" id="-%Kg)H+S;{}Yyd@cqe=l"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="QS5)==Ahwtfe.nNTl`R@"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="OT1x**T)z3hCtGxhqDDI"> <field name="NUM">30</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=",LW+*+gUB/lbO[yiNJdv"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="[$/1md}o9xogfLp*!}WA"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx">WaMa_EinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="V}KP*,b;J,.3q802Q0l^"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="HHIFm}6:*U#VVrIRv7e|"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx">WaMa_EinAus</field> <value name="VALUE"> <block type="logic_boolean" id="%.`!o$LmcZOm0##5WWoJ"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="[:7QWv4Op8S6o@lG45(y" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="94" w="164">Falls Verbrauch unter 3 Watt fällt und der Modus ist Wahr dann beende den Waschmodus.</comment> <value name="A"> <block type="logic_compare" id="igy_8vlVI|k$sL-O!_Ya"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="oKi^o%$Qa%i0^MVE?s)Y"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="*bx}yjZ_C7J2#/$NzLoS"> <field name="NUM">6</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="}A,!m2TVXL.^LQWg%!e|"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="r/rnzWL?1!/.2!+pr@5("> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx">WaMa_EinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="S,c^%F*KOd(.(Q(BL!=g"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="vj!Vu=sDr5yt.:ZU#OfU"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx">WaMa_EinAus</field> <value name="VALUE"> <block type="logic_boolean" id="5xCJ(QRB3mIo5.*f1Fsg"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_settimeout" id=",NjGW@Wtt+n7RKNkcxK!"> <field name="NAME">timeout2</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id=":)Sqh|eio_J%+h7Q@6nJ"> <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="zaE.r=+WylppU_4Nmdx~"> <field name="TEXT">Waschmaschine ist fertig</field> </shadow> </value> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml>
so müsst der Teil wohl für den Timeout aussehen, ist aus dem Blockly Meldung wenn Waschmaschine fertig Beitrag.
Danke schon mal vorab an alle die helfen können.
Grüße
Markus -
-
schau mal hier fuer beispiel, gibt btw einige davon im forum
https://forum.iobroker.net/topic/21407/waschmaschinen-fertig-wäsche-aufhängen/6Die logic muss sein das du einen schwellenwert fuer den verbrauch hast den die Waschmaschine hört auf zu drehen (kein ström verbrauch) und laeuft wieder an das muss man entprellen
-
@Dutchman Ich habe ja schon geschrieben, das ich einige Beispiele hier im Forum angeschaut habe, hier aber nicht den richtigen weg für mich gefunden habe. Mit einem Link komme ich nicht weiter. Trotzdem, Danke schön für deine Unterstützung.
-
@ceulem Pauls Hinweis ist wahrscheinlich die Lösung.
Du startest einen Timeout (wobei IMHO 5 Sekunden zu wenig sind), bei der nächsten Änderung der Leistung von z.B. 4 auf 6 Watt startet der selbe Timeout nochmal ohne den bisherigen zu stoppen -
@ceulem sagte in Timeout für Waschmaschine:
@Dutchman Ich habe ja schon geschrieben, das ich einige Beispiele hier im Forum angeschaut habe, hier aber nicht den richtigen weg für mich gefunden habe. Mit einem Link komme ich nicht weiter. Trotzdem, Danke schön für deine Unterstützung.
hmm schwierig dan raus zu finden wo es klemmt, benutzt du discord ?
Dan kom mal hier rein geht schnellerhttps://discord.gg/HwUCwsH (ioBroker Discord)
-
@ceulem sascha erklärt das mit den zeiten recht gut, wie das "gestrickt" werden kann. ist zwar mit shelly und der app, aber fürs blockly könnte dir das eventuell helfen mit den zeiten zu jonglieren...
https://www.youtube.com/watch?v=PAloTrdec7Q
hat vor iobroker perfekt funktioniert bei mir (wama und trockner) -
-
@paul53 Danke für deine Hilfe, irgendwas fehlt hier aber noch, mit deinem Script bekomme ich für mich nicht nachvollziehbar wenn die Waschmaschine kein Strom mehr verbrauch nachrichten.
-
@ceulem sagte:
wenn die Waschmaschine kein Strom mehr verbrauch nachrichten.
Hast Du das Script importiert oder nachgebaut ?
Poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags. -
@paul53 Ich habe das Script importiert.
var timeout; on({id: 'sonoff.0.DVES_01C220.ENERGY_Power', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") > 10) { (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); } else if (!timeout) { timeout = setTimeout(function () { sendTo("telegram", "send", { text: 'Waschmaschine ist fertig' }); }, 120000); } });
-
@ceulem
Der Script-Code ist in Ordnung. Steigt die Leistung bei beendeter Wäsche manchmal noch über 10 ? Dann sollte ein höherer Grenzwert (z.B. 30) gewählt werden. Oder die Verzögerungszeit ist mit 2 Minuten noch zu kurz ? -
@paul53 ich tipp da eher auf die zeit... 5min wären sicher besser...
-
@paul53.
Heute Morgen habe ich bemerkt das mein Wlan Repeater keine Verbindung mehr zur SP111 herstellen wollte. Jetzt mal alles neugestartet, das Script von dir auch noch einmal.
Ich bekomme wenn ich das Script starte und die Maschine nicht läuft nach 2 Minuten die Meldung.
Das ist denke ich auch normal, da das Script ja nicht weiß das die Maschine schon aus war und nicht gerade ausgegangen ist.
Bekommt man das noch irgendwie hin? -
@ceulem sagte:
Bekommt man das noch irgendwie hin?
Bei Scriptstart die Variable timeout abhängig von der Leistung setzen:
-
@paul53 So hat es jetzt funktioniert
Danke für deine Unterstützung