Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [VORLAGE] Blockly Meldung wenn Waschmaschine fertig

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [VORLAGE] Blockly Meldung wenn Waschmaschine fertig

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dehein2 last edited by

      @rantanplan : spricht denn etwas dagegen den Stop timeout" auf in eine if Abfrage zu packen und nur zu durchlaufen wenn der wert false übergeben wird? Dann hätte ich wahrscheinlich das Problem, dass der Timer x mal gestartet wird, oder?

      rantanplan 1 Reply Last reply Reply Quote 0
      • rantanplan
        rantanplan @dehein2 last edited by

        @dehein2 sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

        @rantanplan : spricht denn etwas dagegen den Stop timeout" auf in eine if Abfrage zu packen und nur zu durchlaufen
        wenn der wert false übergeben wird? Dann hätte ich wahrscheinlich das Problem, dass der Timer x mal gestartet wird, oder?

        Der Timer ist schon wichtig und richtig. Sonst kann man die Waschfunktionen (Richtungswechsel, Änderung Waschprogramm usw.) nicht richtig überwachen.
        Das Script ist schon älter und wird von mir und etlichen anderen Usern fehlerfrei eingesetzt,

        Deine schnellen Änderungen sind nicht normal.
        Diese müsstest Du mal überwachen und feststellen was sich um wieviel ändert. Das kann nicht viel sein.
        Ich sehe nur eine Chance in dem von mir beschriebenen "Puffer".
        Etwa so
        Beispiel.PNG

        Ausprobieren kannst nur Du das.

        1 Reply Last reply Reply Quote 0
        • D
          dehein2 last edited by

          @rantanplan
          Danke. Das werde ich nächste Woche mal testen

          1 Reply Last reply Reply Quote 0
          • D
            dehein2 last edited by

            @rantanplan
            Danke nochmal. Ich habe es nun etwas anders probiert.
            Und zwar habe ich eine 2. Variable eingeführt die den Status des Timers enthält. Also Timer läuft und timer läuft nicht. Passend dazu habe in der CheckFertig dann die if-Abfrage erweitert. Außerdem habe ich einen Grenzwert für Einschalterkennung und einen anderen Grenzwert für die Ausschalterkennung eingebaut.

            Bei den erstem 3 tests hat es gut geklappt. Mal schauen wie es mit unterschiedlichen Wasch-/Trocken-Programmen aussieht.

            VG

            773c4ec6-e322-4610-8eae-d610b898c933-image.png

            3c47afa9-6800-4880-867d-c2fbbc794ee5-image.png

            1 Reply Last reply Reply Quote 0
            • M
              Master-Rudi @dslraser last edited by Negalein

              @dslraser said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

              @Vazi
              dieser "erste Block" erstellt den nötigen Datenpunkt, der hat sich in der Zwischenzeit geändert. Bei Dir fehlen die Werte in Common und event. wie er initialisiert werden soll.

              @Vazi said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

              Hallo Leute

              Habe Script erfolggreich inportiert, beim Test bekomme ich jedoch die FM: "Deiser Block ist mit anderen nicht richig verbunden".

              Ich habe leider genau das Gleiche Problem. An sich scheint alles zu passen, aber irgendwie läuft das Skript nicht los.
              Wie muss ich denn die Werte in common und event anpassen und welche müssen da rein!

              Danke für die Hilfe

              Mod-Edit: Vollzitat gekürzt! Bitte vermeidet Vollzitate! Siehe Forum Regeln, Punkt 2

              dslraser rantanplan 2 Replies Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @Master-Rudi last edited by

                @Master-Rudi
                meinst Du das ?

                https://forum.iobroker.net/post/240223

                M 1 Reply Last reply Reply Quote 0
                • M
                  Master-Rudi @dslraser last edited by

                  @dslraser said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                  @Master-Rudi
                  meinst Du das ?

                  https://forum.iobroker.net/post/240223

                  Ja genau, das hatte ich mir angeschaut, muss aber ehrlich gesagt sagen, dass ich nicht weiß, wie es dann bei dem Waschmaschinen Script aussehen müsste... Ich denke das ausschlaggebende ist die richtige Definiton der role. Aber als was muss ich den das JS definieren? Als command, oder json oder, kA vielleicht seh ich auch grad den wald vor lauter Bäumen nicht...

                  1 Reply Last reply Reply Quote 0
                  • rantanplan
                    rantanplan @Master-Rudi last edited by

                    @Master-Rudi sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                    @dslraser said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                    @Vazi
                    dieser "erste Block" erstellt den nötigen Datenpunkt, der hat sich in der Zwischenzeit geändert. Bei Dir fehlen die Werte in Common und event. wie er initialisiert werden soll.

                    In "Common" muss nichts rein. In "Init-Wert" sollte "falsch" rein.

                    @Vazi said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                    Hallo Leute

                    Habe Script erfolggreich inportiert, beim Test bekomme ich jedoch die FM: "Deiser Block ist mit anderen nicht richig verbunden".

                    Wahrscheinlich nicht komplett importiert.

                    Ich habe leider genau das Gleiche Problem. An sich scheint alles zu passen, aber irgendwie läuft das Skript nicht los.
                    Wie muss ich denn die Werte in common und event anpassen und welche müssen da rein!

                    Siehe oben.

                    1 Reply Last reply Reply Quote 0
                    • M
                      Master-Rudi last edited by Master-Rudi

                      @rantanplan : @dslraser

                      Danke für die Hilfe! Den Init Wert hatte ich bereits auf falsch gesetzt. 😕

                      Irgendws funktioniert aber nicht. Ich habe den Wert auf 1 gesetzt, weil ich die Steckdose zum Test neben mir stecken habe und da immer ein Ambilight ein und aus schalte, dass so 3 W abnimmt. Daran sollte es ja nicht liegen oder? Also der Abnahmewert der ankommt (3 W) ist ja größer als der eingestellte Wert (1).
                      Der Telegram Adapter funktioniert jedenfalls, ich hatte nämlich schon einmal eine Nachricht vom Skript. Aber kann es nicht mehr reproduzieren. Scheint also nur eine Kleinigkeit zu sein?

                      So sieht es aus bei mir

                      Bildschirmfoto vom 2020-02-23 16-18-19.png

                      Bildschirmfoto vom 2020-02-23 16-17-48.png

                      Bildschirmfoto vom 2020-02-23 16-16-25.png

                      Danke für jede Hilfe

                      rantanplan 1 Reply Last reply Reply Quote 0
                      • rantanplan
                        rantanplan @Master-Rudi last edited by

                        Irgendws funktioniert aber nicht. Ich habe den Wert auf 1 gesetzt, weil ich die Steckdose zum Test neben mir stecken habe und da immer ein Ambilight ein und aus schalte, dass so 3 W abnimmt. Daran sollte es ja nicht liegen oder? Also der Abnahmewert der ankommt (3 W) ist ja größer als der eingestellte Wert (1).

                        Eine Lampe zum Test ist sehr schlecht. Das Script triggert auf Änderung! Wenn die Lampe einmal an ist, ändert sich ja nichts mehr. Ein Test mit Waschmaschine wäre aussagekräftiger.

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          Master-Rudi @rantanplan last edited by

                          @rantanplan said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                          Eine Lampe zum Test ist sehr schlecht. Das Script triggert auf Änderung! Wenn die Lampe einmal an ist, ändert sich ja nichts mehr. Ein Test mit Waschmaschine wäre aussagekräftiger.

                          Ok, Wasserkocher? Funktioniert nämlich auch irgendwie nicht. Im Endeffekt sollte es ja egal sein wielange der Vorgang an sich dauert. Wichtig ist doch, dass das Skript merkt, dass von 0 Watt auf > 1 Watt geht und dann wieder von > 1 Watt auf 0 Watt? Oder versteh ich das falsch?

                          Danke! Sorry, mein erstes Skript 🙂

                          rantanplan 1 Reply Last reply Reply Quote 0
                          • rantanplan
                            rantanplan @Master-Rudi last edited by

                            @Master-Rudi sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                            @rantanplan said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                            Eine Lampe zum Test ist sehr schlecht. Das Script triggert auf Änderung! Wenn die Lampe einmal an ist, ändert sich ja nichts mehr. Ein Test mit Waschmaschine wäre aussagekräftiger.

                            Ok, Wasserkocher? Funktioniert nämlich auch irgendwie nicht.

                            Ein Wasserkocher mit Waschprogrammen und Drehrichtungswechsel?
                            Power muss sich HÄUFIG ändern.

                            Schließe doch einfach mal die Waschmashine an den Stecker und beobachte den Datenpunkt "POWER" wärend gewaschen wird. Wo ist das Problem?

                            Danke! Sorry, mein erstes Skript 🙂

                            Kein Problem. Aber dann sollte man ein Script einsetzen wofür es gedacht ist.

                            1 Reply Last reply Reply Quote 0
                            • M
                              Master-Rudi last edited by Master-Rudi

                              @rantanplan

                              Naja aber so wie ich das Script verstehe, macht es doch nichts anderes als in Intervallen zu prüfen, ob Power größer oder kleiner ist als GrenzWertinWatt? Dann sollte es doch egal sein, welcher Verbraucher dran hängt. Wichtig ist doch, dass Power einmal größer wird als GrenzWertinWatt und wenn fertig, dann muss der Wert wieder unterhalb von GrenzWertinWatt fallen und das innerhalb der 40s um z.B. eine falsche Auslösung zu vermeiden.

                              Oder verstehe ich das falsch? Versuche das Skript nur zu verstehen, um den Fehler selbs finden zu können.

                              Damit hast du recht, dass eine Waschmaschine deutlich komplexer läuft als ein Wasserkocher, aber nach meinem Verständnis von dem Skript sollte das egal sein oder?

                              Ich habe es übrigens vorher und auch jetzt mehrfach mit der Waschmaschine laufen lassen, aber es hat nicht funktioniert, darum habe ich mir eben die LED oder den Wasserkocher als Ersatztestgerät gesucht, um es zu simulieren.

                              Weiß nicht, wo der Fehler liegt. Kannst du mir nochmal helfen?

                              Danke!!

                              Edit:
                              Liegts evtl daran, dass mein Energy_Power Wert inkl. "W" angezeigt wird und nicht nur als Zahl? Also, dass der Vergleich immer falsch ist?

                              Bildschirmfoto vom 2020-03-01 12-53-12.png

                              So ich glaube ich habe den Fehler gefunden. Es lag wie vermutet nicht am Skript sondern am iBroker an sich:
                              Bildschirmfoto vom 2020-03-01 15-07-45.png

                              Ich habe "Art" von "Gemischt" auf "Logikwert" geändert. Jetzt läuft es, auch am Wasserkocher 🙂
                              Danke

                              rantanplan 1 Reply Last reply Reply Quote 2
                              • rantanplan
                                rantanplan @Master-Rudi last edited by

                                @Master-Rudi sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                                @rantanplan

                                Weiß nicht, wo der Fehler liegt. Kannst du mir nochmal helfen?
                                Wenn ich kann, immer gerne.

                                Liegts evtl daran, dass mein Energy_Power Wert inkl. "W" angezeigt wird und nicht nur als Zahl? Also, dass der Vergleich immer falsch ist?

                                Bildschirmfoto vom 2020-03-01 12-53-12.png
                                Das kannst Du leicht überprüfen.
                                Dafür gibt es in Blockly den "Debug" Baustein. Damit kannst Du Informationen ins Log schreiben.
                                Für eine Fehlersuche ist der unentbehrlich.
                                Beispiel_001.png

                                Lass Dir doch mal den Wert ausgeben, den Dein Aktor liefert.

                                1 Reply Last reply Reply Quote 0
                                • FoodFighter
                                  FoodFighter last edited by FoodFighter

                                  Hm...es wundert mich ein bisschen, dass mein "Problem" scheinbar seltener Natur ist.
                                  Folgendes:
                                  Ich nutze ein Shelly 1 vor der Waschmaschine und nutze den Script in unveränderter Form.
                                  Nun ist es aber so, dass der Shelly ca. alle 30s seine Leistung per MQTT zum iobroker sendet.

                                  Zieht die Waschmaschine nun weniger als 4W, kommt trotzdem alle 30s eine Leistungs-Wert rein...dieser variiert dann irgendwo zwischen 1,0 und 1,1W im Standby.
                                  Das heißt, dass jedes mal, wenn das Shelly eine minimale Wertänderung sendet der Script neu angestoßen und damit der Timer zurückgesetzt wird (bzw. neu anläuft), solange nicht 2mal hintereinander exakt die gleichen Werte vom Shelly kamen.
                                  So passiert es schon mal, dass die Waschmaschine schon 10...20 Minuten lang fertig ist, bevor die 40s vom Timer überhaupt abgelaufen sind.

                                  Im Shelly kann ich den Sendezyklus nicht einstellen.

                                  Wie umgeht man das Problem und wie ist das bei anderen Geräten gelöst? Senden die generell weniger oft oder nur bei Änderungen einer bestimmten Größte?
                                  alt text

                                  Edit:
                                  Ich würde eine zweite Verzögerungs-Variable vorschlagen:


                                  <xml xmlns="http://www.w3.org/1999/xhtml">
                                  <variables>
                                  <variable type="" id="4pyq21J8EXy-ZwcX4j(">parameter</variable>
                                  <variable type="" id="Ju;CT/%yfJ*=1KYG6wAf">Meldetext</variable>
                                  <variable type="" id="pkPSde5of/,QJwwWF]v{">VerzoegerungStartAktiv</variable>
                                  <variable type="" id="3gMLLWAK
                                  %dLqjiihOs">VerzoegerungFertigAktiv</variable>
                                  <variable type="" id="V40TALMlPiE0WH!wzkG2">GrenzWertInWatt</variable>
                                  <variable type="undefined" id="timeout">timeout</variable>
                                  <variable type="undefined" id="Einschaltverzoegerung">Einschaltverzoegerung</variable>
                                  </variables>
                                  <block type="comment" id="@s,ARMz+*DZ*ns;z2m_" x="62" y="12"> <field name="COMMENT">Initialisierung bei Scriptstart</field> <next> <block type="create" id=":XvakORUFJ^_I1/^;0qD"> <field name="NAME">Eigene_Punkte.WaschmaschineAN</field> <value name="VALUE"> <block type="logic_boolean" id=",^6#s!Fw)Z+F9{g[qVX("> <field name="BOOL">FALSE</field> </block> </value> <value name="COMMON"> <block type="text" id="Hz!gH+0Z*Ny?#exooFPi"> <field name="TEXT">{"name" : "WaschmaschineAN"}</field> </block> </value> <next> <block type="variables_set" id="T+;|Db@bx|T]wkX[e.xT"> <field name="VAR" id="pkPSde5of/,QJwwWF]v{" variabletype="">VerzoegerungStartAktiv</field> <value name="VALUE"> <block type="logic_boolean" id="FimMeG{k6LBu0{7UjBJ4"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="lFPvXWEOh:9caqpAOa-A"> <field name="VAR" id="3gMLLWAK_%d*LqjiihOs" variabletype="">VerzoegerungFertigAktiv</field> <value name="VALUE"> <block type="logic_boolean" id="SRzA)PQaQ@d|WdLyX4]-"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="comment" id="6q4+KcF6/q*eh;RCmGKL"> <field name="COMMENT">Schwellwert festlegen</field> <next> <block type="variables_set" id="pE;t15K()B2=@=,RY5D_"> <field name="VAR" id="V40TALMlPiE0WH!wzkG2" variabletype="">GrenzWertInWatt</field> <value name="VALUE"> <block type="math_number" id="OB=)nO2pXH:1HNwm(JpG"> <field name="NUM">4</field> </block> </value> <next> <block type="comment" id="|2tm%?,yK/o3_AA)J{ah"> <field name="COMMENT">Steckdose überwachen</field> <next> <block type="on_ext" id="n)UklDS{=z!-#^HfL@Ly"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="@Uda~stBc8L/=2DFzrvo"> <field name="oid">mqtt-client.0.shellies.SmartHome.Haus.Keller.Waschküche.Waschmaschine.relay.0.power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="=n/Jfc]x(Ib[NRPJZ%7X"> <value name="IF0"> <block type="logic_compare" id="?m1STicTe5=N-/f:Ji2s"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="QjKQBxPdHENcy)eGM,5">
                                  <field name="ATTR">oldState.val</field>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="math_number" id=":(p2PWPzD2(~R-q9upeS">
                                  <field name="NUM">0</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <statement name="DO0">
                                  <block type="comment" id=";%e=m5A.5_U8[v[Odt7.">
                                  <field name="COMMENT">Dieser Teil wird NUR ausgeführt wenn</field>
                                  <next>
                                  <block type="comment" id="Bv,r2iN_4zSfF_^X35gM">
                                  <field name="COMMENT">Funkstecker oder Waschm. komplett aus war.</field>
                                  <next>
                                  <block type="variables_set" id="xuK#29.xYf)m6FX5LA78">
                                  <field name="VAR" id="pkPSde5of/,QJwwWF]v{" variabletype="">VerzoegerungStartAktiv</field>
                                  <value name="VALUE">
                                  <block type="logic_boolean" id=")}Jh9zUdflaLNnL+;^h=">
                                  <field name="BOOL">TRUE</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="debug" id="Wv
                                  jiP9Bn3#//0KE[4e[">
                                  <field name="Severity">log</field>
                                  <value name="TEXT">
                                  <shadow type="text" id="!hyL_SIc#q!nV1G.NU,/">
                                  <field name="TEXT">*Starte Verzögerung "Start"</field>
                                  </shadow>
                                  </value>
                                  <next>
                                  <block type="timeouts_settimeout" id="v[ws-ZxN:-nNl,kERlT8">
                                  <field name="NAME">Einschaltverzoegerung</field>
                                  <field name="DELAY">20</field>
                                  <field name="UNIT">sec</field>
                                  <statement name="STATEMENT">
                                  <block type="comment" id="UyUTD{W;Ef;u2!)%y5h|">
                                  <field name="COMMENT">Eventuell hohe Einschaltspannung abfangen.</field>
                                  <next>
                                  <block type="comment" id="^wiM;VZ
                                  5RLS-+SMsG7?">
                                  <field name="COMMENT">Diese kann größer als der Grenzwert sein</field>
                                  <next>
                                  <block type="variables_set" id="@d2;tEWydly|fW:ng;eg">
                                  <field name="VAR" id="pkPSde5of/,QJwwWF]v{" variabletype="">VerzoegerungStartAktiv</field>
                                  <value name="VALUE">
                                  <block type="logic_boolean" id="S5R1RMtIKx(=N;}|dM%Z">
                                  <field name="BOOL">FALSE</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="debug" id="1^,/eLLAT{#66hqVIel8">
                                  <field name="Severity">log</field>
                                  <value name="TEXT">
                                  <shadow type="text" id="[koH26;mOP0UeXV~CJRb">
                                  <field name="TEXT">Beende Verzögerung "Start"</field>
                                  </shadow>
                                  </value>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  <next>
                                  <block type="comment" id="EZK4(UY%}HZl{2F)m6p"> <field name="COMMENT">Ab hier wird gewaschen</field> <next> <block type="controls_if" id="S(-Xvr1uja6/vNdH|?j:"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="s(;r=_ekdU*dF=_Tsrbb" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="d_lZY_VlNaa40/Pob=Um"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="c4GU.+o2_G+Vdxq;n/"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="FD[JnQcwajuYLgGmTX.">
                                  <field name="VAR" id="V40TALMlPiE0WH!wzkG2" variabletype="">GrenzWertInWatt</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="logic_operation" id="YH0qa!fsBeI/2Cv+c" inline="false">
                                  <field name="OP">AND</field>
                                  <value name="A">
                                  <block type="logic_compare" id="zC,(}TPXAvX2yd^kW._"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=";a;[[bw/v2oQnG9DHZIn"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Punkte.WaschmaschineAN</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";a5=vVD86hstjR{4y~+">
                                  <field name="BOOL">FALSE</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="logic_compare" id="K.3M9Le+STB!.M_eD7O"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="[!KuvI83Wzp*sDDNM{S!"> <field name="VAR" id="pkPSde5of/,QJwwWF]v{" variabletype="">VerzoegerungStartAktiv</field> </block> </value> <value name="B"> <block type="logic_boolean" id="9_[X?aI?X1w]lj.RYK^">
                                  <field name="BOOL">FALSE</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <statement name="DO0">
                                  <block type="control" id="S6URE:3#}}.v#e!X.A4D">
                                  <mutation delay_input="false"></mutation>
                                  <field name="OID">javascript.0.Eigene_Punkte.WaschmaschineAN</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                  <block type="logic_boolean" id="QqpwRU?xP?P=bvS9HS[1">
                                  <field name="BOOL">TRUE</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="procedures_callnoreturn" id="=!WIp};Ta)XeMMk,iR"> <mutation name="Melden"> <arg name="Meldetext"></arg> </mutation> <value name="ARG0"> <block type="text" id="{QcAY3oi:,FGG.929?TS"> <field name="TEXT">Waschmaschine läuft! 👍</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Yuagp|w@)mC+asceXLLu"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="P(tu4AS{);E?w-p?]{1q"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="ou6,Zi?vbs[;{]@93U!">
                                  <field name="VAR" id="V40TALMlPiE0WH!wzkG2" variabletype="">GrenzWertInWatt</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <statement name="DO1">
                                  <block type="comment" id="H90l#sdGb5I}Wqsbz=9s">
                                  <field name="COMMENT">Timer stoppen</field>
                                  <next>
                                  <block type="procedures_callnoreturn" id="zo=cPu~=j#pus6bWVaJl">
                                  <mutation name="checkFertig">
                                  <arg name="parameter"></arg>
                                  </mutation>
                                  <value name="ARG0">
                                  <block type="logic_boolean" id="1SYbGS^3xkqD/Uj?{bvJ">
                                  <field name="BOOL">FALSE</field>
                                  </block>
                                  </value>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  <value name="IF2">
                                  <block type="logic_operation" id="@|YxZPYI(z3![Q=ZbX4" inline="false">
                                  <field name="OP">AND</field>
                                  <value name="A">
                                  <block type="logic_compare" id="Ge6FX#6b5WYoc;wF%%iH">
                                  <field name="OP">LT</field>
                                  <value name="A">
                                  <block type="on_source" id="0Vw33+AwVD~={g{aHa~d">
                                  <field name="ATTR">state.val</field>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="variables_get" id="NufLwbvZR1.fEmqJNOTZ">
                                  <field name="VAR" id="V40TALMlPiE0WH!wzkG2" variabletype="">GrenzWertInWatt</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="logic_operation" id="YCtGk)z-A.vQ/H[Pl4=" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="X[1t=zl25bQ]aHT[:,8">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                  <block type="get_value" id="4WFkiPOYU?#zQhOL)0u(">
                                  <field name="ATTR">val</field>
                                  <field name="OID">javascript.0.Eigene_Punkte.WaschmaschineAN</field>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="logic_boolean" id="?jrLY7K)k;1?sa!Ef{VO">
                                  <field name="BOOL">TRUE</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="logic_compare" id="cR5z019%z)6^Vad+}Mi=">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                  <block type="variables_get" id="rV/1@xZd%
                                  ;)PX))F2NT">
                                  <field name="VAR" id="3gMLLWAK_%d
                                  LqjiihOs" variabletype="">VerzoegerungFertigAktiv</field>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="logic_boolean" id="w4-|#NfYl8g3Tu8%!zEN">
                                  <field name="BOOL">FALSE</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <statement name="DO2">
                                  <block type="comment" id="}Q59!:8+Dc~b~LwZhq-(">
                                  <field name="COMMENT">Timer starten</field>
                                  <next>
                                  <block type="procedures_callnoreturn" id=";MD%1IF[[H29g_f=vvYH">
                                  <mutation name="checkFertig">
                                  <arg name="parameter"></arg>
                                  </mutation>
                                  <value name="ARG0">
                                  <block type="logic_boolean" id="/yX
                                  ,4aU!HHUO#/2U-NR">
                                  <field name="BOOL">TRUE</field>
                                  </block>
                                  </value>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  <block type="procedures_defnoreturn" id="sDP?w~)oJD}Z95[_?EY0" x="837" y="12">
                                  <mutation>
                                  <arg name="parameter" varid="4pyq21J8EXy-_ZwcX4j("></arg>
                                  </mutation>
                                  <field name="NAME">checkFertig</field>
                                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                  <statement name="STACK">
                                  <block type="controls_if" id="DX-|5t
                                  M5.|5Qw0p76">
                                  <mutation else="1"></mutation>
                                  <value name="IF0">
                                  <block type="logic_compare" id="[-Hs2uzeFf6L7XO4:d6g">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                  <block type="variables_get" id="uT
                                  6f!Y:?Sivq1F-y;7_">
                                  <field name="VAR" id="4pyq21J8EXy-_ZwcX4j(" variabletype="">parameter</field>
                                  </block>
                                  </value>
                                  <value name="B">
                                  <block type="logic_boolean" id="w?1)4.uK{/ey3NJ)NjH:">
                                  <field name="BOOL">TRUE</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <statement name="DO0">
                                  <block type="comment" id="fUTRz:h*y1K[t@GmyY:"> <field name="COMMENT">Timer starten</field> <next> <block type="variables_set" id="PtW~~h4h7n0T}tla
                                  dk">
                                  <field name="VAR" id="3gMLLWAK_%d
                                  LqjiihOs" variabletype="">VerzoegerungFertigAktiv</field>
                                  <value name="VALUE">
                                  <block type="logic_boolean" id="#Tmha!r2pSKaRHXD{wjU">
                                  <field name="BOOL">TRUE</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="debug" id="qCj3QEE2Bp0f#m[Kt}%x">
                                  <field name="Severity">log</field>
                                  <value name="TEXT">
                                  <shadow type="text" id="aupYojMd{$jkF=jV+%2U">
                                  <field name="TEXT">Starte Verzögerung "Fertig"</field>
                                  </shadow>
                                  </value>
                                  <next>
                                  <block type="timeouts_settimeout" id="k%sy5:QdTn+3f@{OZshs">
                                  <field name="NAME">timeout</field>
                                  <field name="DELAY">40</field>
                                  <field name="UNIT">sec</field>
                                  <statement name="STATEMENT">
                                  <block type="control" id="UOquZ.)w|Dv~5_@iC
                                  HO">
                                  <mutation delay_input="false"></mutation>
                                  <field name="OID">javascript.0.Eigene_Punkte.WaschmaschineAN</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                  <block type="logic_boolean" id="ttQizIf!/AB
                                  HLfb9Kw1">
                                  <field name="BOOL">FALSE</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="procedures_callnoreturn" id="HHrpaU=vtt6v1JInTG~l">
                                  <mutation name="Melden">
                                  <arg name="Meldetext"></arg>
                                  </mutation>
                                  <value name="ARG0">
                                  <block type="text" id="leE4:W;JI@,LD;n0Gs6r">
                                  <field name="TEXT">Waschmaschine fertig! 🧺👕🧦</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="variables_set" id="p$dGS$H.dZjTv1+{TWGn">
                                  <field name="VAR" id="3gMLLWAK_%d
                                  LqjiihOs" variabletype="">VerzoegerungFertigAktiv</field>
                                  <value name="VALUE">
                                  <block type="logic_boolean" id="gBVM%X$S5X2j,V}3{MZx">
                                  <field name="BOOL">FALSE</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="debug" id="O%HxW5hqY[6[jQ8wd[Mt">
                                  <field name="Severity">log</field>
                                  <value name="TEXT">
                                  <shadow type="text" id="OJ{(+8d_]W8mOkFf-v$$">
                                  <field name="TEXT">Beende Verzögerung</field>
                                  </shadow>
                                  </value>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  <statement name="ELSE">
                                  <block type="comment" id="V2@7jqv5RTl+}q}xfEsZ">
                                  <field name="COMMENT">Timer stoppen</field>
                                  <next>
                                  <block type="timeouts_cleartimeout" id="y7iPL;/^^,
                                  );q|%Pk6;">
                                  <field name="NAME">timeout</field>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  </block>
                                  </statement>
                                  </block>
                                  <block type="procedures_defnoreturn" id="l1.gmYNTt2#Ww;_Stf+" x="838" y="513"> <mutation> <arg name="Meldetext" varid="Ju;CT/%yfJ*=1KYG6wAf"></arg> </mutation> <field name="NAME">Melden</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="CgkHkrp5c26ew3uU(i"> <field name="COMMENT">Hier wird die Meldung ausgegeben</field> <next> <block type="debug" id="SYQu;@N0JgE!W~[JZcZ_"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="4+J8c.^+FrkDV^]dAda-"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="KuX^Hf4/i6gnp|rmq9WR"> <field name="VAR" id="Ju;CT/%yfJ*=1KYG6wAf" variabletype="">Meldetext</field> </block> </value> <next> <block type="telegram" id=")*%Xb7GPj){DmQ{L?F$">
                                  <field name="INSTANCE">.0</field>
                                  <field name="LOG"></field>
                                  <field name="SILENT">FALSE</field>
                                  <field name="PARSEMODE">default</field>
                                  <value name="MESSAGE">
                                  <shadow type="text" id="o_t}li6s(Bw1ZM9t
                                  $vW">
                                  <field name="TEXT">text</field>
                                  </shadow>
                                  <block type="variables_get" id="Vz{)zEf#:pBr|7iXd`n4">
                                  <field name="VAR" id="Ju;CT/%yfJ
                                  =1KYG6wAf" variabletype="">Meldetext</field>
                                  </block>
                                  </value>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  </block>
                                  </xml>

                                  Diese wird gesetzt, wenn der Timer (Fertig) anläuft und zurückgesetzt, wenn dieser fertig ist.
                                  Solange der Timer läuft, springt die Haupt-Schleife nicht mehr zur checkFertig-Funktion, auch wenn diese erneut angestoßen wird (obwohl sie unter dem Schwellwert liegt).

                                  Was sagen die Profis dazu?

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    ticaki Developer @FoodFighter last edited by ticaki

                                    Diese wird gesetzt, wenn der Timer (Fertig) anläuft und zurückgesetzt, wenn dieser fertig ist.
                                    Solange der Timer läuft, springt die Haupt-Schleife nicht mehr zur checkFertig-Funktion, auch wenn diese erneut angestoßen wird (obwohl sie unter dem Schwellwert liegt).

                                    Was sagen die Profis dazu?

                                    Bin kein Profi, hab es bei meinem Script so wie du gelöst, ist aber Javascript kein Blockly. Ich da 4 Zustände drin.

                                    1.  > 20 Watt schaltet das aktiv
                                    2.  > 10 Watt hält es aktiv stoppt 3 und 4
                                    3. <= 3 Watt startet 60 Sekunden Timeout
                                    4. 3-10 Watt startet 20 Minuten Timeout und stoppt 3
                                    

                                    die Nr. 4. hab ich drin fürs Daunenprogramm und eines der anderen Programme. Da kann ich einfach nicht erkennen, ob es am Ende ist oder mitten drin.
                                    Hab ne Steckdose mit Schalter... das Script nervt bis man die Steckdose am Schalter ausschaltet.

                                    rantanplan 1 Reply Last reply Reply Quote 0
                                    • rantanplan
                                      rantanplan @ticaki last edited by

                                      @ticaki sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                                      Hab ne Steckdose mit Schalter... das Script nervt bis man die Steckdose am Schalter ausschaltet.

                                      Mit welchem Script arbeitest Du? Meins triggert auf Änderung. Was ändert sich bei Deinem Stecker wenn dieser ausgeschaltet ist?
                                      Wir schalten unseren HM Funkstecker immer aus wenn die Waschmaschine nicht mehr gebraucht wird.

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        ticaki Developer @rantanplan last edited by Negalein

                                        @rantanplan sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                                        Mit welchem Script arbeitest Du? Meins triggert auf Änderung. Was ändert sich bei Deinem Stecker wenn dieser ausgeschaltet ist?
                                        Wir schalten unseren HM Funkstecker immer aus wenn die Waschmaschine nicht mehr gebraucht wird.

                                        Selbst geschriebenes Script. Alexa erinnert alle 20 Minuten an die fertige Waschmaschine und hört damit auf, wenn die Steckdose ausgeschaltet wird. Nachteil ist, dass ich die Steckdose aus und an schalten muß um das zurück zu setzen.

                                        1 Reply Last reply Reply Quote 0
                                        • ?
                                          A Former User last edited by

                                          Ich habe Rantanplans script auch als Basis genutzt, läuft seit einem Jahr problemlos, für die Leistungsmessung läuft ein Shelly 1pm. Ich habe außerdem eine Leistungsmessung des Waschvorgangs erstellt, die die Leistungsveränderungen des Shelly zur Laufzeit der Maschine aufsummiert und nach Ende des Waschvorgangs eine pushhover-Meldung mit dem Gesamtverbrauch sendet. Erstaunlicherweise entspricht der Wert mit nur geringer Abweichung dem Realverbrauch:

                                          alt text

                                          Logik ist eigentlich einfach: Solange die Waschmaschine läuft ist die Variable WON wahr, mit jedem Update des Leistungswert im Shelly-Objekt merken wir uns Leistung und den Timestamp der letzten Änderungen. Bei der nächsten Änderung ermitteln wir die Differenz zum letzten Timestamp, multiplizieren mit der Leistung, formatieren und aktualisieren den gespeicherten Gesamtwert. Am Ende der Waschmaschine können wir den Wert aus Waschmaschine.power oder der Variablen ts_temp auslesen und z.B. an die Pushover-Nachricht anhängen:
                                          alt text

                                          Gerne auch mal testen, die gesamte Beschreibung gibt's hier: https://www.smarthomejetzt.de/so-wird-jede-waschmaschine-und-trockner-smart/

                                          1 Reply Last reply Reply Quote 0
                                          • t3ch
                                            t3ch last edited by t3ch

                                            Hi,
                                            ich habe das Problem, dass die Einschaltverzögerung nicht zurückgesetzt wird. Hat evtl. jemand´ne Idee woran das liegen mag? Dadurch bekomme ich kein "Waschmaschine läuft" Benachrichtigung. Mein Grenzwert liegt bei 2.1W. Wenn ich das Skript pausiere und starte wenn die Waschmaschine schon arbeitet, also > 0W zieht, funktioniert es..

                                            09:09:47.991	info	javascript.0 (7888) script.js.WaschmaschineFertig: Power:11.79 Verzögerung aktiv:falseWaschmaschine an:false
                                            09:09:47.992	info	javascript.0 (7888) script.js.WaschmaschineFertig: ***Starte Verzögerung
                                            09:09:52.569	info	javascript.0 (7888) script.js.WaschmaschineFertig: Power:11.55 Verzögerung aktiv:trueWaschmaschine an: false
                                            09:10:23.188	info	javascript.0 (7888) script.js.WaschmaschineFertig: Power:4.01 Verzögerung aktiv:true Waschmaschine an: false
                                            09:10:59.389	info	javascript.0 (7888) script.js.WaschmaschineFertig: Power:3.94 Verzögerung aktiv:true Waschmaschine an: false
                                            09:11:35.189	info	javascript.0 (7888) script.js.WaschmaschineFertig: Power:3.84 Verzögerung aktiv:true Waschmaschine an: false
                                            09:12:05.069	info	javascript.0 (7888) script.js.WaschmaschineFertig: Power:3.85 Verzögerung aktiv:true Waschmaschine an: false
                                            09:12:58.578	info	javascript.0 (7888) script.js.WaschmaschineFertig: Power:2120 Verzögerung aktiv:true Waschmaschine an: false
                                            09:14:36.289	info	javascript.0 (7888) script.js.WaschmaschineFertig: Power:2107 Verzögerung aktiv:true Waschmaschine an: false
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            805
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly template
                                            59
                                            242
                                            58671
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo