Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Verbrauchsschwankung mit Blockly erkennen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Verbrauchsschwankung mit Blockly erkennen

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

      Hallo allerseits,
      ich versuche mich gerade an der Benachrichtigung wenn Geschirrspühler, Trockner und Waschmaschiene fertig ist. Dazu habe ich jeweil mit dem History-Adapter (bei dem ich mir noch nicht klar bin wie man den richtig bedient) die Verbrauchswerte aufgezeichnet. Da ich wie in Klammer schon gesagt mit den Auswertungen in der History Tabelle nicht klar komme, hab ich die JSON Datei einfach direkt ins Excel importiert. Nach der Auswertung der Daten hab ich dann das passende Blockly dazu gebaut. Bei Spühler und Waschmaschiene war das auch recht einfach, nun sitze ich am Trockner. Dieser macht ja nach Ende noch für eine einstellbare Zeit (normal 30min) einen Knitterschutz. Der Verbrauch geht dabei von 4W auf ca. 120W kurz hoch (Trommel wird für 3-5sec gedreht) und geht wieder runter auf ca. 4W. Das ganze wiederholt sich alle 30sec.
      Wie könnte ich jetzt dieses Verhalten im Blockly erkennen um mir z.B. eine Nachricht zu schicken: Trockner ist im Knitterschutz und schaltet in 30min ab. ?
      Hat schon jemand so ein Verhalten umgesetzt und kann mir helfen?
      Herzlichen Dank und viele Grüße
      Michael

      J 1 Reply Last reply Reply Quote 0
      • X
        Xyolyp last edited by

        Du könntest ein Blockly erstellen, welches auf Änderung des Momentanverbrauch reagiert und die Auswertung direkt im Skript ganz ohne History machen. (ich habe noch nicht mit dem History Adapter gearbeitet)

        Möchtest du die Nachricht zu Beginn des Knitterschutzprogramms oder beim Beenden des gesamten Trocknungsvorgangs erhalten?
        Wenn letzteres dein Ziel ist könntest du auf eine Änderung im Momentanverbrauch reagieren und wenn dieser unter x (wahrscheinlich so etwa 5 Watt) ist startest du einen Timer von zwei Minuten. Wenn der Wert über x geht brichst du den Timer ab. Wenn der Timer abgelaufen ist schickst du dir die Nachricht und dadurch, dass der Timer immer wieder anläuft und dann abgebrochen wird und ein neuer gestartet wird bekommst du etwa zwei Minuten nach dem Abschluss des Programms die Nachricht.

        Wenn du den Beginn des Prozesses ermitteln möchtest könntest du eine Variable erstellen, die zu Beginn des Trocknungsprozesses auf unwahr gesetzt wird. Bei einer Änderung des Momentanverbrauchst prüfst du, ob die Variable unwahr ist. Wenn dem so ist prüfst du den vorherigen Wert und wenn der aktuelle Wert 120W und der vorherige Wert 4W beträgt prüfst du wie lange der vorherige Wert anlag (nicht, dass ein anderer Zustand auch irgendwann mal einen Wechsel von 120W auf 4W hat) und wenn der Zeitraum passt setzt du die oben genannte Variable auf wahr und sendest deine Benachrichtigung.

        1 Reply Last reply Reply Quote 1
        • J
          Jan1 @MiB last edited by

          @MiB

          damit sagt mir Alexa, wann der Kaffee fertig ist, anhand der Leistungsaufnahme der Kaffeemaschine. Der Timeout kompensiert hier nur kurze Schwankungen.
          076c565b-b4be-4779-82d0-f5fe52f3ac2b-grafik.png

          1 Reply Last reply Reply Quote 2
          • M
            MiB last edited by

            Hallo Xyolyp,
            danke für die schnelle Antwort. Also die Variable hab ich ja schon damit ich weiß bei Anstieg des Verbrauchs über 10W, der Trockner läuft jetzt. Die Trocknung ist ja zu Beginn des Knitterschutzes eigentlich beendet und der Trockner piept, hört nur keiner. Der Knitterschutz ist nur damit die Wäsche nicht in der Wärme liegt und wieder anfeuchtet. Sie sollte schon innerhalb der 30min rausgenommen werden. Daher hätte ich gerne die NAchricht zu Beginn des Knitterschutz. Wenn die 30min um sind, schaltet der Trockner sich sogar komplett ab. Dies kann ich wiederum am Verbrauch von nur noch 0,1W erkennen und könnte sogar eine Nachricht schicken: Knitterschutz ist jetzt zu Ende, Trockner geht aus.
            Wie das jetzt mit dem Prüfen des vorherigen Wertes funktioniert, da bin ich echt überfragt, aber lernbereit 😉
            Allerdings muss ich noch sagen, der Trockner macht zwischendurch auch mal halt - wartet kurz und dreht dann wieder weiter. Ich glaube er ändert dabei die Drehrichtung. Dieses würde auch dem Verhalten zum Schluß beim Knitterschutz ähnlich sein. Also müsste sicher noch eine Überprüfung auf Wiederholung oder die 30sec mit rein.
            trockner.JPG
            so sieht mein Blockly derzeit aus, da meldet sich Telegram aber erst wenn er ausschaltet.

            Viele Grüße
            Michael

            1 Reply Last reply Reply Quote 0
            • M
              MiB last edited by

              Hey @Jan1 ,

              ah, jetzt hab ich das mit dem Vorher Wert schonmal verstanden. DANKE
              Aber ich denke ich brauche noch eine Prüfung mehr, weil der Zustand kann auch zwischendurch mal auftreten. Oder ist das mit dem 30sec Timer bei Dir schon überprüft? Weil zwischendurch wartet er keine 30sec um wieder anzulaufen, das passiert innerhalb 10sec

              rantanplan 1 Reply Last reply Reply Quote 0
              • M
                MiB last edited by

                Ach Mist, die Sache mit vorheriger Wert funktioniert nicht. Hier mal ein Auszug aus den Daten bei Knitterschutz:
                werte.JPG
                Die Leistung steigt an und dann wieder ab, also vor 4 die 120 angeben bringt nix.

                J 1 Reply Last reply Reply Quote 0
                • J
                  Jan1 @MiB last edited by

                  @MiB
                  Das Blockly war nur ein sehr einfaches Beispiel, wie man das umsetzten kann. Das kann natürlich auch so erweitert werden und der Timeout ist ne praktische Funktion um ungewünschte Schwankungen zu filtern.

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

                    @MiB Schau mal hier. Vielleicht kannst Du das gebrauchen. Oder Teile daraus.
                    Waschmaschine
                    Grüße

                    1 Reply Last reply Reply Quote 0
                    • M
                      MiB last edited by

                      @rantanplan habs mir mal angesehen, cooles Script. Aber du setzt ja drauf das der Wert 40 sec. so bleibt und ich versuche durch eine Logik zu erkennen das alle 30 sec. die Trommel mal kurz dreht. Hab leider noch kein richtigen Plan wie ich das mache. Wahrscheinlich muss ich 2 timer nutzen, wobei der 2. nicht zur gleichen Zeit wie der 1. starten darf um das auf und ab des Verbrauchs zu erkennen. Oder was ich auch noch überlegt habe, für 30 sec. die Werte in eine Liste aufnehmen und dann auswerten ob die Liste ansteigt und abfällt. Aber das wie ist mir noch nicht klar.

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

                        @MiB sagte in Verbrauchsschwankung mit Blockly erkennen:

                        @rantanplan habs mir mal angesehen, cooles Script. Aber du setzt ja drauf das der Wert 40 sec. so bleibt und ich versuche durch eine Logik zu erkennen das alle 30 sec. die Trommel mal kurz dreht. Hab leider noch kein richtigen Plan wie ich das mache. Wahrscheinlich muss ich 2 timer nutzen, wobei der 2. nicht zur gleichen Zeit wie der 1. starten darf um das auf und ab des Verbrauchs zu erkennen. Oder was ich auch noch überlegt habe, für 30 sec. die Werte in eine Liste aufnehmen und dann auswerten ob die Liste ansteigt und abfällt. Aber das wie ist mir noch nicht klar.

                        Mit Timern immer vorsichtig sein und an der richtigen Stelle "stop" Timer einsetzen.
                        Ob ein Timer läuft, kannst Du in Blockly leider nur über eine Hilfsvariable ermitteln.

                        Wir haben "leider" keine Waschmaschine mit Knitterschutz und kann die Problematik nicht nachstellen.

                        Wenn Du irgendwo hängst, stell Dein Blockly ruhig hier rein.
                        Möglichst als Export. Da kann man leichter "mitschrauben".

                        Grüße

                        1 Reply Last reply Reply Quote 0
                        • M
                          MiB last edited by

                          Danke, das ist nett. Daten sind kein Problem. Kann auch die Exceltabelle mit 3 aufgezeichneten Verbrauchswerten mit bereitstellen. Aber das ganze dann zu Testen wenn man selber die Funktion am Trockner nicht hat ist schwierig. Aber ich gebe nicht auf, ich bastel so lange bis es entweder geht, oder mir einer sagt das ist leider nicht machbar.

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

                            Wenn ich mir die Tabelle so anschaue, sollte es so funktionieren:
                            Blockly_Knitter_Ende.JPG

                            1 Reply Last reply Reply Quote 1
                            • M
                              MiB last edited by

                              Hi @paul53
                              cooler Ansatz, was ich nicht verstehe - warum der Timer in 60s z.B. die Meldung bringen soll. Wenn ich das interpretiere kommt für mich dabei raus:
                              Wenn Verbrauch kleiner 150 dann
                              wenn vorher >= 150 dann
                              Meldung in 60s über Zustand (Knitterschutz)
                              sonst
                              wenn Verbrauch < 4 dann
                              wenn vorher >= 4 dann
                              in 60s Meldung (Ende Knitterschutz und ausschalten)
                              Ist das korrekt so? Und ich glaube ich muss die ganze Exceltabelle mal hochladen. Manchmal macht der Trockner zwischendrin eine ganz kurze Paus (so wie mal Luft holen) und macht gleich weiter. Die Tabelle enthält über 10000 Einträge von 3 Trocknungszyklen. Ich hoffe das ist jetzt nicht zu Aufwendig da mal durchzuschauen. Will ja niemanden für mich die Arbeit machen lassen, wäre aber echt toll wenn wir das hinbekommen würden.
                              Trockner Leistung.xlsx

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @MiB last edited by paul53

                                @MiB sagte:

                                Manchmal macht der Trockner zwischendrin eine ganz kurze Paus (so wie mal Luft holen) und macht gleich weiter.

                                Deshalb die 60 s Verzögerung. Falls zu kurz, dann erhöhen.

                                @MiB sagte in Verbrauchsschwankung mit Blockly erkennen:

                                was ich nicht verstehe - warum der Timer in 60s z.B. die Meldung bringen soll.

                                Wenn innerhalb der 60 s die Leistungsschwelle wieder überschritten wird, wird der Timer gestoppt und es erfolgt keine Meldung. Erst nach neuem Timerstart erfolgt die Meldung mit Verzögerung (wenn solange die Leistung unterhalb der Schwelle bleibt).

                                1 Reply Last reply Reply Quote 0
                                • M
                                  MiB last edited by

                                  achso, jetzt hab ich es. Er bekommt die Anweisung wenn über 150 mach folgendes, aber erst in 60s (also Ausführung merken) dann irgendwann ist der Wert mal wieder unter 150 aber der dezeitige Vorher Wert nicht größer 150 dann stoppt der timer und die im Hinterkopf gemerkte Anweisung wird gelöscht. Richtig?
                                  Jetzt muss ich mal schauen wie ich was in den Trockner bekomme. Frau hat gestern extra alles mögliche gewaschen damit ich genug aufzeichnen kann 🙂

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

                                    @MiB sagte:

                                    Er bekommt die Anweisung wenn über 150 mach folgendes, aber erst in 60s (also Ausführung merken) dann irgendwann ist der Wert mal wieder unter 150 aber der dezeitige Vorher Wert nicht größer 150 dann stoppt der timer und die im Hinterkopf gemerkte Anweisung wird gelöscht. Richtig?

                                    Er bekommt die Anweisung: Wenn unter 150 und vorheriger Wert mindestens 150, dann starte Timer für die um 60 s verzögerte Aktion. Falls innerhalb der 60 s der Wert mal wieder über 150, stoppt der Timer und die verzögerte Aktion wird nicht ausgeführt.
                                    Die Abfrage auf vorheriger Wert mindestens 150 verhindert, dass der Timer mehrfach gestartet wird.

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      MiB last edited by

                                      Hallo @paul53
                                      wollte kurz Rückinfo geben. Heute gab es mal wieder was zu trocknen und ich muss sagen, Prima Arbeit. Hat genau wie du es erwartet hast funktioniert. Meine Frau ist begeistert. Jetzt muss ich mal sehen wie der Trockner sich bei anderen Programmen verhält und eventuell etwas anpassen, aber im Moment geht es richtig gut. Hatte anfangs etwas Probleme der Logik zu folgen, aber jetzt ist es mir klar.
                                      Herzlichen Dank
                                      Grüße Michael

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        steff.h. last edited by

                                        Hallo zusammen,

                                        ich habe ein ähnliches Problem und versucht es hiermit zu lösen.

                                        Ich werde jedoch immer mit Nachrichten zugeschüttet.

                                        Der Sonoff POW ist immer angeschaltet und sollte nur bei Wattänderungen eine Nachricht schicken.

                                        1. Wenn er aktiviert wurde
                                        2. Wenn der Knitterschutz aktiviert wurde
                                        3. Wenn der Trockner fertig ist

                                        ich habe nun folgendes probiert:

                                        Aufnahme11.jpg

                                        <xml xmlns="http://www.w3.org/1999/xhtml">
                                          <variables>
                                            <variable type="undefined" id="timeout1">timeout1</variable>
                                            <variable type="undefined" id="timeout2">timeout2</variable>
                                          </variables>
                                          <block type="on_ext" id="+A7wlutQO8gBfqosc.y3" x="-387" y="-12">
                                            <mutation items="1"></mutation>
                                            <field name="CONDITION">any</field>
                                            <field name="ACK_CONDITION"></field>
                                            <value name="OID0">
                                              <shadow type="field_oid" id="L[i=p{|ii-ai*/YAZ@8s">
                                                <field name="oid">sonoff.0.Trockner.ENERGY_Power</field>
                                              </shadow>
                                            </value>
                                            <statement name="STATEMENT">
                                              <block type="controls_if" id="V6]e:v6u:?I_dnQ6L_VO">
                                                <value name="IF0">
                                                  <block type="logic_compare" id="YL]^MiM0C_d90EjXd7qr">
                                                    <field name="OP">GT</field>
                                                    <value name="A">
                                                      <block type="get_value" id="yM=9zWrslsViHeXAVGm6">
                                                        <field name="ATTR">val</field>
                                                        <field name="OID">sonoff.0.Trockner.ENERGY_Power</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="text" id="H=g~S*6(?G/uCr~jDdCp">
                                                        <field name="TEXT">50</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <statement name="DO0">
                                                  <block type="control" id="vs.J|^}}{M%%SJ1bpk;V">
                                                    <mutation delay_input="false"></mutation>
                                                    <field name="OID">Meine_Geräte.0.status_trockner</field>
                                                    <field name="WITH_DELAY">FALSE</field>
                                                    <value name="VALUE">
                                                      <block type="logic_boolean" id="gvfoVV5t!!Us3^C~!w.H">
                                                        <field name="BOOL">FALSE</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </statement>
                                                <next>
                                                  <block type="controls_if" id="Y?veRO*2:#`oT-H/BM5+">
                                                    <mutation else="1"></mutation>
                                                    <value name="IF0">
                                                      <block type="logic_compare" id=":k:zLc}nC%#r^+K^Eo.(">
                                                        <field name="OP">LT</field>
                                                        <value name="A">
                                                          <block type="on_source" id="U7o;jTuGj!Z%x*giBA4~">
                                                            <field name="ATTR">state.val</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="text" id="-Wv/soS#il1z5y*+s%mA">
                                                            <field name="TEXT">50</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <statement name="DO0">
                                                      <block type="controls_if" id="UT~9*H(1tT=L|IjL$v,V">
                                                        <value name="IF0">
                                                          <block type="logic_compare" id="Ijf~JlR]#oy,r)6-[DD*">
                                                            <field name="OP">GTE</field>
                                                            <value name="A">
                                                              <block type="on_source" id="2*y6K4S,#@Lb:ffPeJ`$">
                                                                <field name="ATTR">oldState.val</field>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <block type="text" id="kGM9Mt`m?YPRcKg-FEQm">
                                                                <field name="TEXT">50</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <statement name="DO0">
                                                          <block type="timeouts_settimeout" id="^Q88lhsvgd-!3s?NQe9u">
                                                            <field name="NAME">timeout1</field>
                                                            <field name="DELAY">60</field>
                                                            <field name="UNIT">sec</field>
                                                            <statement name="STATEMENT">
                                                              <block type="telegram" id="~Gak]59)R_ohwhQAG(6D">
                                                                <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="U][E8N^7Bu/+`G(NxN}#">
                                                                    <field name="TEXT">Die Waschmaschine wurde angeschaltet</field>
                                                                  </shadow>
                                                                  <block type="text" id="m1iR~_xBdK;GdKQ)pTk3">
                                                                    <field name="TEXT">Knitterschutz gestartet</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </statement>
                                                          </block>
                                                        </statement>
                                                      </block>
                                                    </statement>
                                                    <statement name="ELSE">
                                                      <block type="timeouts_cleartimeout" id="}wGFsqm^VCq)ca%bTT@O">
                                                        <field name="NAME">timeout1</field>
                                                      </block>
                                                    </statement>
                                                    <next>
                                                      <block type="controls_if" id="Gr}3ElHJKOhnV;OT#(k0">
                                                        <mutation else="1"></mutation>
                                                        <value name="IF0">
                                                          <block type="logic_compare" id="mx}}YJbMCz.DnAhYmc)g">
                                                            <field name="OP">LT</field>
                                                            <value name="A">
                                                              <block type="on_source" id="/gRw/2)$e_gOuY+Pk%ns">
                                                                <field name="ATTR">state.val</field>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <block type="text" id="{zexH{O4=EP0tiO2yp7+">
                                                                <field name="TEXT">15</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <statement name="DO0">
                                                          <block type="controls_if" id="lrJePpuBL0{0us[W%?*i">
                                                            <value name="IF0">
                                                              <block type="logic_compare" id="S~{L:EcJ*Z$FL+xJ_B(!">
                                                                <field name="OP">GTE</field>
                                                                <value name="A">
                                                                  <block type="on_source" id="moC0PBTuWi3zR:GM0Td`">
                                                                    <field name="ATTR">oldState.val</field>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <block type="text" id="AYGH)f=Xj*$m)7p{6z5g">
                                                                    <field name="TEXT">15</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <statement name="DO0">
                                                              <block type="timeouts_settimeout" id="U1raJ]Me_D;w$%JwW(Hv">
                                                                <field name="NAME">timeout2</field>
                                                                <field name="DELAY">60</field>
                                                                <field name="UNIT">sec</field>
                                                                <statement name="STATEMENT">
                                                                  <block type="control" id="b3NWGdz9,IcSytr#=ISq">
                                                                    <mutation delay_input="false"></mutation>
                                                                    <field name="OID">Meine_Geräte.0.status_trockner</field>
                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                    <value name="VALUE">
                                                                      <block type="logic_boolean" id=")|#,|PdmCZ$=4GxqQQ_g">
                                                                        <field name="BOOL">TRUE</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </statement>
                                                              </block>
                                                            </statement>
                                                          </block>
                                                        </statement>
                                                        <statement name="ELSE">
                                                          <block type="timeouts_cleartimeout" id="]pA)cl[picj,_omxa]@{">
                                                            <field name="NAME">timeout2</field>
                                                          </block>
                                                        </statement>
                                                        <next>
                                                          <block type="controls_if" id="0KU30/v2h#W(!`#[gp76">
                                                            <mutation elseif="1"></mutation>
                                                            <value name="IF0">
                                                              <block type="logic_compare" id="]-Zb+?Hn_!lMC-aT9alk">
                                                                <field name="OP">EQ</field>
                                                                <value name="A">
                                                                  <block type="get_value" id="ln#_*!,/omF%2!L4WRp-">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">Meine_Geräte.0.status_trockner</field>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <block type="logic_boolean" id="pSN^b91_Se1kc2o;W4J^">
                                                                    <field name="BOOL">FALSE</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <statement name="DO0">
                                                              <block type="telegram" id="i||{vH9*ebG3rYojyq#~">
                                                                <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="U][E8N^7Bu/+`G(NxN}#">
                                                                    <field name="TEXT">Die Waschmaschine wurde angeschaltet</field>
                                                                  </shadow>
                                                                  <block type="text" id="Vzzqg.~Y}lOC=Vmy,[1X">
                                                                    <field name="TEXT">Der Trockner wurde angeschaltet </field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </statement>
                                                            <value name="IF1">
                                                              <block type="logic_compare" id="21(9~CU|XRCn:EOXk2/@">
                                                                <field name="OP">EQ</field>
                                                                <value name="A">
                                                                  <block type="get_value" id="TSvo:2H{H+}IE{#M1`FO">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">Meine_Geräte.0.status_trockner</field>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <block type="logic_boolean" id="h=.8?l5o{aiN|)W)LXh@">
                                                                    <field name="BOOL">TRUE</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <statement name="DO1">
                                                              <block type="telegram" id="ed05d|bQf^sw*MK?SR-6">
                                                                <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="sKyyX,f?IkAZP`RFQReF">
                                                                    <field name="TEXT">Die Waschmaschine ist fertig :)</field>
                                                                  </shadow>
                                                                  <block type="text" id="Me[sfL:79y?isrCAn~-e">
                                                                    <field name="TEXT">Der Trockner ist fertig :) </field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </statement>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </statement>
                                          </block>
                                        </xml>
                                        

                                        kann man hier einer helfen?

                                        Homoran 1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @steff.h. last edited by

                                          @steff-h sagte in Verbrauchsschwankung mit Blockly erkennen:

                                          Ich werde jedoch immer mit Nachrichten zugeschüttet

                                          Du solltest unbedingt mal die Daten hochauflösend loggen und dir danach die Kurve ansehen.

                                          Die Werte schwanken bei odernen Maschinen kurzfristig gewaltig

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

                                            @steff-h ,

                                            Hallo, schau Dir doch mal mein unten aufgeführtes Waschmaschinen-Blockly an. Dein Problem liegt wahrscheinlich darin, dass der Sonoff-Pow ständig die Werte ändert, da auch der Trockner sekündlich den Wert ändert und das auch gerne unter 50 und in der nächsten Sekunde wieder über 50. Deshalb wird ständig getriggert und telegram schickt was. Das Script von unten schaut nach, ob sich die Werte fünf mal hintereinander unter 2 befinden um dann zu triggern. Versuch es mal.

                                            Grüße

                                            PS: @Homoran war schneller, aber er weist auf das Gleiche hin...

                                            <xml xmlns="http://www.w3.org/1999/xhtml">
                                              <block type="on_ext" id="{@YbEO81jP45_Wv%`G~V" x="-387" y="-12">
                                                <mutation items="1"></mutation>
                                                <field name="CONDITION">any</field>
                                                <field name="ACK_CONDITION"></field>
                                                <value name="OID0">
                                                  <shadow type="field_oid" id="KKMh9]1;JU;y)l~O1?:8">
                                                    <field name="oid">sonoff.0.Sonoff-Pow-Waschmaschine.ENERGY_Power</field>
                                                  </shadow>
                                                </value>
                                                <statement name="STATEMENT">
                                                  <block type="controls_if" id="Tz-/aRLZ%6yfRg?~!ASl">
                                                    <mutation elseif="1"></mutation>
                                                    <value name="IF0">
                                                      <block type="logic_compare" id="RFQ:hZTWTn+0fqk3L{(-">
                                                        <field name="OP">GT</field>
                                                        <value name="A">
                                                          <block type="get_value" id="3%TT^X~(Q5aB}Y4s]Fya">
                                                            <field name="ATTR">val</field>
                                                            <field name="OID">sonoff.0.Sonoff-Pow-Waschmaschine.ENERGY_Power</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="text" id="(,:]5Jvy-G1K(g[v@jo1">
                                                            <field name="TEXT">50</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <statement name="DO0">
                                                      <block type="control" id="QTzY}_ond~G]B|eRA@Lq">
                                                        <mutation delay_input="false"></mutation>
                                                        <field name="OID">Eigene.Objekte.Geräte.Waschmaschine_ist_fertig</field>
                                                        <field name="WITH_DELAY">FALSE</field>
                                                        <value name="VALUE">
                                                          <block type="logic_boolean" id="Gyn`!|3.4qS].:ColIeT">
                                                            <field name="BOOL">FALSE</field>
                                                          </block>
                                                        </value>
                                                        <next>
                                                          <block type="control" id="R_3nkOj][E%u?2Ta37bz">
                                                            <mutation delay_input="false"></mutation>
                                                            <field name="OID">Eigene.Objekte.Geräte.Waschmaschinenzähler</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE">
                                                              <block type="math_number" id="pcO^t|l4y.THVnNo|?oL">
                                                                <field name="NUM">0</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </statement>
                                                    <value name="IF1">
                                                      <block type="logic_compare" id="^9/A}3)3rA2pc/6=/Fto">
                                                        <field name="OP">LT</field>
                                                        <value name="A">
                                                          <block type="get_value" id="?-}lTJ41aADEukuCBat3">
                                                            <field name="ATTR">val</field>
                                                            <field name="OID">sonoff.0.Sonoff-Pow-Waschmaschiene.ENERGY_Power</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="text" id="8DfHDB3lV*UAzbe]eVcU">
                                                            <field name="TEXT">2</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <statement name="DO1">
                                                      <block type="control" id="QHrg0]k0wr3PfuIBsJ!H">
                                                        <mutation delay_input="false"></mutation>
                                                        <field name="OID">Eigene.Objekte.Geräte.Waschmaschinenzähler</field>
                                                        <field name="WITH_DELAY">FALSE</field>
                                                        <value name="VALUE">
                                                          <block type="math_arithmetic" id="y5NO*~^U!3rZvPOP}p99">
                                                            <field name="OP">ADD</field>
                                                            <value name="A">
                                                              <shadow type="math_number" id="t46p(Xt/QEC^LOTi^kh.">
                                                                <field name="NUM">1</field>
                                                              </shadow>
                                                              <block type="get_value" id="2]a3oM=PJFvB4]:F.TIb">
                                                                <field name="ATTR">val</field>
                                                                <field name="OID">Eigene.Objekte.Geräte.Waschmaschinenzähler</field>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <shadow type="math_number" id="/EXgdR6@K[OZ{2@{wFqV">
                                                                <field name="NUM">1</field>
                                                              </shadow>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <next>
                                                          <block type="controls_if" id="%jHtAnbRrA:ES!]M#.]4">
                                                            <value name="IF0">
                                                              <block type="logic_compare" id="eK!*/64GQzj7ul5[1o{U">
                                                                <field name="OP">GT</field>
                                                                <value name="A">
                                                                  <block type="get_value" id="MT]e.aRY7#gDKM^5KLGE">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">Eigene.Objekte.Geräte.Waschmaschinenzähler</field>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <block type="text" id="qFtDNlGvc.Q0Rw`l:-q)">
                                                                    <field name="TEXT">5</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <statement name="DO0">
                                                              <block type="control" id="E;!{Y_v+cv8eJL.:x7`K">
                                                                <mutation delay_input="false"></mutation>
                                                                <field name="OID">Eigene.Objekte.Geräte.Waschmaschine_ist_fertig</field>
                                                                <field name="WITH_DELAY">FALSE</field>
                                                                <value name="VALUE">
                                                                  <block type="logic_boolean" id="7@H~{7M{YLo51xL/@?0P">
                                                                    <field name="BOOL">TRUE</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </statement>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </statement>
                                                  </block>
                                                </statement>
                                                <next>
                                                  <block type="on_ext" id="^bjX`z`(c6|NOE7od8m{">
                                                    <mutation items="1"></mutation>
                                                    <field name="CONDITION">ne</field>
                                                    <field name="ACK_CONDITION"></field>
                                                    <value name="OID0">
                                                      <shadow type="field_oid" id="p(Y8#7ya#8V)V_r=L|AY">
                                                        <field name="oid">Eigene.Objekte.Geräte.Waschmaschine_ist_fertig</field>
                                                      </shadow>
                                                    </value>
                                                    <statement name="STATEMENT">
                                                      <block type="controls_if" id="c}KW,NC~y{R3,GHaCdm~">
                                                        <mutation elseif="1"></mutation>
                                                        <value name="IF0">
                                                          <block type="logic_compare" id="2VfDCLfBt@w0Tz+8/vyY">
                                                            <field name="OP">EQ</field>
                                                            <value name="A">
                                                              <block type="get_value" id="*yVKM0%[r~#@JMQE.-[=">
                                                                <field name="ATTR">val</field>
                                                                <field name="OID">Eigene.Objekte.Geräte.Waschmaschine_ist_fertig</field>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <block type="logic_boolean" id="3-+a.bG=Tt}oj`jYJ1l^">
                                                                <field name="BOOL">FALSE</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <statement name="DO0">
                                                          <block type="telegram" id="2oPfv{ptPp%y[jwp^@?0">
                                                            <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="lLV8E7P8=x,g1j.M[`#-">
                                                                <field name="TEXT">Die Waschmaschine wurde angeschaltet</field>
                                                              </shadow>
                                                            </value>
                                                          </block>
                                                        </statement>
                                                        <value name="IF1">
                                                          <block type="logic_compare" id="BLPv?Av{QCjSZwz2C9o7">
                                                            <field name="OP">EQ</field>
                                                            <value name="A">
                                                              <block type="get_value" id="f-.T9%q:49F7M`dkh*/S">
                                                                <field name="ATTR">val</field>
                                                                <field name="OID">Eigene.Objekte.Geräte.Waschmaschine_ist_fertig</field>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <block type="logic_boolean" id="Bb2WzPjc27[}p;0e{z^U">
                                                                <field name="BOOL">TRUE</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <statement name="DO1">
                                                          <block type="telegram" id="VxKMn*kukZ9.LFX4,|f`">
                                                            <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="sKyyX,f?IkAZP`RFQReF">
                                                                <field name="TEXT">Die Waschmaschine ist fertig :)</field>
                                                              </shadow>
                                                              <block type="text_join" id="2Bypwm1zS{+O,h,dTXo~">
                                                                <mutation items="4"></mutation>
                                                                <value name="ADD0">
                                                                  <block type="text" id="U5)QI0lF+t{v~!!J9xIy">
                                                                    <field name="TEXT">Die Waschmaschine ist fertig :) </field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD1">
                                                                  <block type="text" id="LIrrEjix9%X6_)#kLm1@">
                                                                    <field name="TEXT">Und du hast heute </field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD2">
                                                                  <block type="get_value" id="t5.cTL2%]q_%0uPV/`OE">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">sonoff.0.Sonoff-Pow-Waschmaschiene.ENERGY_Today</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD3">
                                                                  <block type="text" id="5L;wo|S(tD#i{u=}N(ig">
                                                                    <field name="TEXT"> kWh beim Waschen verbraucht.</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </statement>
                                                      </block>
                                                    </statement>
                                                  </block>
                                                </next>
                                              </block>
                                            </xml>
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            868
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            24
                                            2146
                                            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