Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.0k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
40 Beiträge 5 Kommentatoren 2.9k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • I invidianer

    Hallo zusammen!

    In meinem Blockly habe ich offenbar einen Fehler gemacht.
    Die "Waschmaschine fertig"-Meldung kommt mehrmals.

    Kann jemand helfen?

    Ausgabe:
    IMG_0262.jpg

    Blockly:

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable id="=:.rXuJ4F$c]v7ATT-n.">Verbrauchspreis_pro_kWh</variable>
        <variable id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</variable>
        <variable type="timeout" id="timeout_fertig">timeout_fertig</variable>
        <variable id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</variable>
        <variable id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</variable>
        <variable id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</variable>
      </variables>
      <block type="variables_set" id="ubgg`a1#=4[;furS(Zhf" x="87" y="-112">
        <field name="VAR" id="=:.rXuJ4F$c]v7ATT-n.">Verbrauchspreis_pro_kWh</field>
        <value name="VALUE">
          <block type="math_number" id="VT(fO35(]#GN=a`YCWfI">
            <field name="NUM">0.37</field>
          </block>
        </value>
        <next>
          <block type="variables_set" id="vB%/(%QK-.|VB8olH+F+">
            <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field>
            <value name="VALUE">
              <block type="logic_boolean" id="Zt3N#kbH0XjK+}5)pbJ^">
                <field name="BOOL">FALSE</field>
              </block>
            </value>
            <next>
              <block type="on" id="Qn2CRF`}__(KPXGK6}S)">
                <field name="OID">sonoff.0.Waschmaschine.ENERGY_Power</field>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION"></field>
                <statement name="STATEMENT">
                  <block type="controls_if" id="*bOx]47]yxIByA#qqt3J">
                    <mutation elseif="1"></mutation>
                    <value name="IF0">
                      <block type="logic_compare" id=".(cUpb9mFzXnI.u`/RGu">
                        <field name="OP">GT</field>
                        <value name="A">
                          <block type="on_source" id="+L|D9(N^L/_9p**AC4Y#">
                            <field name="ATTR">state.val</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="IRXiQ:Tf}.:}u-F;(J?|">
                            <field name="NUM">3</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="timeouts_cleartimeout" id="=JSbSA8^An9a5GvpnhX$">
                        <field name="NAME">timeout_fertig</field>
                        <next>
                          <block type="controls_if" id="bo$]}bM|Gn]EOfB}zAUl">
                            <value name="IF0">
                              <block type="logic_compare" id="!+aTX:f8zpg?koPwXqU9">
                                <field name="OP">EQ</field>
                                <value name="A">
                                  <block type="variables_get" id="~^+uLCVDphEA1T3csQ;4">
                                    <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_boolean" id="m9)+OzK@16j;{0FErZe_">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="variables_set" id="yj^]v8#=,-=xs,C$1:0m">
                                <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="c%J}.8a#0L-%7wEqRPVF">
                                    <field name="BOOL">TRUE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="9#YrXdwG5}cOx9Y(@8Wv">
                                    <field name="VAR" id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</field>
                                    <value name="VALUE">
                                      <block type="get_value" id="a8TRMLX$e~nl*Y09Y9iB">
                                        <field name="ATTR">val</field>
                                        <field name="OID">sonoff.0.Waschmaschine.ENERGY_Total</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="telegram" id="V79]mw|-s_Wa8itsYZZ^">
                                        <field name="INSTANCE">.1</field>
                                        <field name="LOG"></field>
                                        <field name="SILENT">FALSE</field>
                                        <field name="PARSEMODE">default</field>
                                        <field name="ESCAPING">FALSE</field>
                                        <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                                        <value name="MESSAGE">
                                          <shadow type="text" id="x#tx~0e1$9f(D`sZ!a=/">
                                            <field name="TEXT">Waschmaschine wurde gestartet</field>
                                          </shadow>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </statement>
                    <value name="IF1">
                      <block type="logic_negate" id="^G%R_hQtQM7a9-Iy{Zk;">
                        <value name="BOOL">
                          <block type="timeouts_gettimeout" id="vkIn/V(F$NSX#13S7t35">
                            <field name="NAME">timeout_fertig</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO1">
                      <block type="timeouts_settimeout" id="w`%fEqzXS#K[?$/JZDGc">
                        <field name="NAME">timeout_fertig</field>
                        <field name="DELAY">180</field>
                        <field name="UNIT">sec</field>
                        <statement name="STATEMENT">
                          <block type="variables_set" id="!31!Yg[A`[Xo.]1qKKn(">
                            <field name="VAR" id="]gFjxFcKE12,mJ=C%_xi">Waschmaschine_aktiv?</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="w.hL*w4J:xFJwIfBgdRW">
                                <field name="BOOL">FALSE</field>
                              </block>
                            </value>
                            <next>
                              <block type="variables_set" id="yY,)jgdUB2GJR%%irN/r">
                                <field name="VAR" id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</field>
                                <value name="VALUE">
                                  <block type="get_value" id="GEQguIpsHP,A4/^`nhvw">
                                    <field name="ATTR">val</field>
                                    <field name="OID">sonoff.0.Waschmaschine.ENERGY_Total</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="itWRJGQ7J.:H;#:0pdT)">
                                    <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field>
                                    <value name="VALUE">
                                      <block type="math_rndfixed" id="`CQLoA,hTBeCF^jC$m7o">
                                        <field name="n">2</field>
                                        <value name="x">
                                          <shadow type="math_number" id="K5?[|]UP!f)gh(WB9YlR">
                                            <field name="NUM">3.1234</field>
                                          </shadow>
                                          <block type="math_arithmetic" id="-(/lVRk*3=g:[5qmWUDn" inline="false">
                                            <field name="OP">MINUS</field>
                                            <value name="A">
                                              <shadow type="math_number" id="my)c;67df,_rqPUn*7Zw">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="variables_get" id="z1D_-h-T3fHL]w@7I8[J">
                                                <field name="VAR" id="-u=T;@YP4M%QBTCUX,qV">Stromverbrauch_nachher</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id="n]MNz;YDQG/~Z.,SRtR0">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="variables_get" id="$?{4ycoT|{bZNx,tb7vH">
                                                <field name="VAR" id="d+U-gw:uDzMAO@n%z`!O">Stromverbrauch_vorher</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="telegram" id="CQb6Xn]wF:sTrg((4:I/">
                                        <field name="INSTANCE">.1</field>
                                        <field name="LOG"></field>
                                        <field name="SILENT">FALSE</field>
                                        <field name="PARSEMODE">default</field>
                                        <field name="ESCAPING">FALSE</field>
                                        <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                                        <value name="MESSAGE">
                                          <shadow type="text" id="/ol[jFtqydF.de(P.5^p">
                                            <field name="TEXT">Waschmaschine ist fertig!</field>
                                          </shadow>
                                          <block type="text_join" id="H6/ojZvgU{P~Pt6)*5x0">
                                            <mutation items="9"></mutation>
                                            <value name="ADD0">
                                              <block type="text" id="`xB48uoDS?5mFuf~H]Dz">
                                                <field name="TEXT">Waschmaschine ist fertig!</field>
                                              </block>
                                            </value>
                                            <value name="ADD1">
                                              <block type="text_newline" id="1{zZXpJ(5O)OaE7:;C+=">
                                                <field name="Type">\n</field>
                                              </block>
                                            </value>
                                            <value name="ADD2">
                                              <block type="text" id="po4kBhKs^=Afge7P@+}-">
                                                <field name="TEXT">Stromverbrauch: </field>
                                              </block>
                                            </value>
                                            <value name="ADD3">
                                              <block type="variables_get" id="(KJjJ3PKdl32SrGqUe6,">
                                                <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field>
                                              </block>
                                            </value>
                                            <value name="ADD4">
                                              <block type="text" id="4P;K$4nY$zo-[Pi%I9XP">
                                                <field name="TEXT">kWh</field>
                                              </block>
                                            </value>
                                            <value name="ADD5">
                                              <block type="text_newline" id="3u~EQK:5E13$fc~OVM,D">
                                                <field name="Type">\n</field>
                                              </block>
                                            </value>
                                            <value name="ADD6">
                                              <block type="text" id="h5A}=DuU:Bnkky*=1RC6">
                                                <field name="TEXT">Stromkosten: </field>
                                              </block>
                                            </value>
                                            <value name="ADD7">
                                              <block type="math_rndfixed" id="6r0lnE16^V98#!gIbVQO">
                                                <field name="n">2</field>
                                                <value name="x">
                                                  <shadow type="math_number" id="#ij|D2Km]s#UhaB`Jdo~">
                                                    <field name="NUM">3.1234</field>
                                                  </shadow>
                                                  <block type="math_arithmetic" id="~FzTOPB^Rwjf6}91Sh(p">
                                                    <field name="OP">MULTIPLY</field>
                                                    <value name="A">
                                                      <shadow type="math_number" id="$YJtcuO%6gF[y4@uO]L`">
                                                        <field name="NUM">1</field>
                                                      </shadow>
                                                      <block type="variables_get" id="`=t.T#B21IW5`.w$T!:0">
                                                        <field name="VAR" id="oyQphhzPm1CF}Rie)a9,">Stromverbrauch_Waschgang</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <shadow type="math_number" id=";Q5q@z2EAr]3p=:~jBa%">
                                                        <field name="NUM">0</field>
                                                      </shadow>
                                                      <block type="variables_get" id="R2FGlBV^Vr#d(L5GBq{2">
                                                        <field name="VAR" id="=:.rXuJ4F$c]v7ATT-n.">Verbrauchspreis_pro_kWh</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <value name="ADD8">
                                              <block type="text" id="dsx1hx27*8lqAYaqdOuC">
                                                <field name="TEXT">€</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </next>
      </block>
    </xml>
    

    Bildschirmfoto 2023-11-29 um 16.41.28.jpg

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #6

    @invidianer sagte: Meldung kommt mehrmals.

    Starte mal die Javascript-Instanz neu.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    I 2 Antworten Letzte Antwort
    0
    • paul53P paul53

      @invidianer sagte: Meldung kommt mehrmals.

      Starte mal die Javascript-Instanz neu.

      I Offline
      I Offline
      invidianer
      schrieb am zuletzt editiert von
      #7

      @paul53
      Das mit dem Historiesieren und Anzeigen über Flot hatte ich schon gemacht, daraus kam ja der Wert 3 zustande.
      Da er scheinbar die Fertig-Meldung am Ende alle 180 Minuten bringt, muß es ja wohl mit dem Timeout zu tun haben. Würde ich die Stromzufuhr nicht kappen, würde er vermutlich ewig alle 3 Minuten weitermelden.
      Kann man nicht sagen, daß er nur EINMAL melden und dann aufhören soll?

      HomoranH 1 Antwort Letzte Antwort
      0
      • I invidianer

        @paul53
        Das mit dem Historiesieren und Anzeigen über Flot hatte ich schon gemacht, daraus kam ja der Wert 3 zustande.
        Da er scheinbar die Fertig-Meldung am Ende alle 180 Minuten bringt, muß es ja wohl mit dem Timeout zu tun haben. Würde ich die Stromzufuhr nicht kappen, würde er vermutlich ewig alle 3 Minuten weitermelden.
        Kann man nicht sagen, daß er nur EINMAL melden und dann aufhören soll?

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #8

        @invidianer sagte in Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern:

        hatte ich schon gemacht

        mit welcher Auflösung?

        @invidianer sagte in Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern:

        daraus kam ja der Wert 3 zustande.

        und nie 2.9?

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        I 1 Antwort Letzte Antwort
        1
        • paul53P paul53

          @invidianer sagte: Meldung kommt mehrmals.

          Starte mal die Javascript-Instanz neu.

          I Offline
          I Offline
          invidianer
          schrieb am zuletzt editiert von
          #9

          @paul53
          Hatte ich neulich nach einem Update schon gemacht, also alles komplett neugestartet (den ganz RaspberryPi).
          War vorher und eben auch heute so.

          paul53P 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @invidianer sagte in Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern:

            hatte ich schon gemacht

            mit welcher Auflösung?

            @invidianer sagte in Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern:

            daraus kam ja der Wert 3 zustande.

            und nie 2.9?

            I Offline
            I Offline
            invidianer
            schrieb am zuletzt editiert von
            #10

            @homoran
            Das weiß ich nicht mehr genau, war jedenfalls eine Riesenfummelei und will ich mir nicht nochmal antun ehrlich gesagt.
            Kann man nicht einfach nach der ersten Meldung einen "break" einbauen?

            1 Antwort Letzte Antwort
            0
            • I invidianer

              @paul53
              Hatte ich neulich nach einem Update schon gemacht, also alles komplett neugestartet (den ganz RaspberryPi).
              War vorher und eben auch heute so.

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #11

              @invidianer sagte: War vorher und eben auch heute so.

              Überprüfe mal die Selektion der Timer-Variablen bei "stop timeout" und bei "nicht Verzögerung timeout". Eigentlich ist es nicht möglich, dass die Meldung ein zweites Mal kommt, bevor der Timer gestoppt wurde.
              Schau mal in den erzeugten Javascript-Code, ob sich irgendwo ein Block versteckt hat.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              I 1 Antwort Letzte Antwort
              1
              • paul53P paul53

                @invidianer sagte: War vorher und eben auch heute so.

                Überprüfe mal die Selektion der Timer-Variablen bei "stop timeout" und bei "nicht Verzögerung timeout". Eigentlich ist es nicht möglich, dass die Meldung ein zweites Mal kommt, bevor der Timer gestoppt wurde.
                Schau mal in den erzeugten Javascript-Code, ob sich irgendwo ein Block versteckt hat.

                I Offline
                I Offline
                invidianer
                schrieb am zuletzt editiert von
                #12

                @paul53
                Ah! Ich weiß, was Du meinst!
                Bei "timeout_fertig" ist rechts daneben ein Pfeil nach unten, wo man es sozusagen auswählen kann. Aber an einer Stelle ist es nicht da, nämlich bei "Ausführen"! Da habe ich es wohl "per Hand" eingetippt, nicht ausgewählt.
                Muß ich das korrigieren? Wie erreiche ich, daß da so ein "Auswahlmenü" kommt?

                paul53P 1 Antwort Letzte Antwort
                0
                • I invidianer

                  @paul53
                  Ah! Ich weiß, was Du meinst!
                  Bei "timeout_fertig" ist rechts daneben ein Pfeil nach unten, wo man es sozusagen auswählen kann. Aber an einer Stelle ist es nicht da, nämlich bei "Ausführen"! Da habe ich es wohl "per Hand" eingetippt, nicht ausgewählt.
                  Muß ich das korrigieren? Wie erreiche ich, daß da so ein "Auswahlmenü" kommt?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #13

                  @invidianer sagte: an einer Stelle ist es nicht da, nämlich bei "Ausführen"!

                  Dort definiert man den Variablenbezeichner für den Timer.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  I 1 Antwort Letzte Antwort
                  1
                  • paul53P paul53

                    @invidianer sagte: an einer Stelle ist es nicht da, nämlich bei "Ausführen"!

                    Dort definiert man den Variablenbezeichner für den Timer.

                    I Offline
                    I Offline
                    invidianer
                    schrieb am zuletzt editiert von
                    #14

                    @paul53
                    Achso. Schade, dann ist es so ja wohl richtig :(
                    Wie meintest Du das mit dem eventuell versteckten Block, den man über Java-Skript sehen kann? Wie mache ich das?

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • I invidianer

                      @paul53
                      Achso. Schade, dann ist es so ja wohl richtig :(
                      Wie meintest Du das mit dem eventuell versteckten Block, den man über Java-Skript sehen kann? Wie mache ich das?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #15

                      @invidianer sagte: versteckten Block, den man über Java-Skript sehen kann?

                      Ich habe mal importiert: In Zeile 20 Javascript-Code steht

                            timeout_fertig = null;
                      

                      Der ist falsch und für dieses Verhalten verantwortlich.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      I 1 Antwort Letzte Antwort
                      1
                      • paul53P paul53

                        @invidianer sagte: versteckten Block, den man über Java-Skript sehen kann?

                        Ich habe mal importiert: In Zeile 20 Javascript-Code steht

                              timeout_fertig = null;
                        

                        Der ist falsch und für dieses Verhalten verantwortlich.

                        I Offline
                        I Offline
                        invidianer
                        schrieb am zuletzt editiert von
                        #16

                        @paul53
                        Hm, okay, danke, aber wie bekomme ich den aus dem Blockly raus? Da sehe ich nirgends eine solche Zuweisung :(

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • I invidianer

                          @paul53
                          Hm, okay, danke, aber wie bekomme ich den aus dem Blockly raus? Da sehe ich nirgends eine solche Zuweisung :(

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #17

                          @invidianer sagte: wie bekomme ich den aus dem Blockly raus?

                          Es ist offenbar eine fehlerhafte Implementation des Timeout-Blocks in neueren Javascript-Adapter-Versionen (ab 29.5.2023).
                          Workaraound:

                          Blockly_temp.JPG

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          I 1 Antwort Letzte Antwort
                          1
                          • paul53P paul53

                            @invidianer sagte: wie bekomme ich den aus dem Blockly raus?

                            Es ist offenbar eine fehlerhafte Implementation des Timeout-Blocks in neueren Javascript-Adapter-Versionen (ab 29.5.2023).
                            Workaraound:

                            Blockly_temp.JPG

                            I Offline
                            I Offline
                            invidianer
                            schrieb am zuletzt editiert von
                            #18

                            @paul53
                            Okay, danke, ich habe den "setze timeout_fertig auf wahr" ergänzt.
                            Krass, dann habe ich quasi einen Fehler aufgedeckt? Dann hatte es ja vielleicht was Gutes ;)

                            paul53P haus-automatisierungH 2 Antworten Letzte Antwort
                            0
                            • I invidianer

                              @paul53
                              Okay, danke, ich habe den "setze timeout_fertig auf wahr" ergänzt.
                              Krass, dann habe ich quasi einen Fehler aufgedeckt? Dann hatte es ja vielleicht was Gutes ;)

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #19

                              @invidianer sagte: Fehler aufgedeckt? Dann hatte es ja vielleicht was Gutes

                              Habe Issue auf Github erstellt.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              I 1 Antwort Letzte Antwort
                              2
                              • paul53P paul53

                                @invidianer sagte: Fehler aufgedeckt? Dann hatte es ja vielleicht was Gutes

                                Habe Issue auf Github erstellt.

                                I Offline
                                I Offline
                                invidianer
                                schrieb am zuletzt editiert von
                                #20

                                @paul53
                                Dankeschön!

                                1 Antwort Letzte Antwort
                                0
                                • I invidianer

                                  @paul53
                                  Okay, danke, ich habe den "setze timeout_fertig auf wahr" ergänzt.
                                  Krass, dann habe ich quasi einen Fehler aufgedeckt? Dann hatte es ja vielleicht was Gutes ;)

                                  haus-automatisierungH Online
                                  haus-automatisierungH Online
                                  haus-automatisierung
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #21

                                  @invidianer sagte in Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern:

                                  Krass, dann habe ich quasi einen Fehler aufgedeckt?

                                  Definitionssache. setTimeout liefert eine timeout ID zurück. Also eine Referenz auf einen Timeout, mit welcher dieser abgebrochen werden kann (siehe stop (verwendet clearTimeout()). Wenn der Timeout nun durchgelaufen ist, ist diese Timeout ID ja nicht mehr gültig und der Timeout existiert ja nicht mehr. Daher ist es aus meiner Sicht sinnvoll (mache ich überall in der JavaScript-Programmierung mit Timeouts so - und viele andere auch), diesen Wert wieder zurückzusetzen.

                                  Heiß: In der Timeout-Variablen steht nur etwas, wenn ein aktiver (= noch nicht ausgeführter Timeout) existiert, welcher ggf. abgebrochen werden soll. Damit kann man vermeiden, einen Timeout ein zweites Mal zu starten (= nicht <timeout>).

                                  Aus meiner Sicht also alles korrekt.

                                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                  📚 Meine inoffizielle ioBroker Dokumentation

                                  paul53P 1 Antwort Letzte Antwort
                                  0
                                  • haus-automatisierungH haus-automatisierung

                                    @invidianer sagte in Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern:

                                    Krass, dann habe ich quasi einen Fehler aufgedeckt?

                                    Definitionssache. setTimeout liefert eine timeout ID zurück. Also eine Referenz auf einen Timeout, mit welcher dieser abgebrochen werden kann (siehe stop (verwendet clearTimeout()). Wenn der Timeout nun durchgelaufen ist, ist diese Timeout ID ja nicht mehr gültig und der Timeout existiert ja nicht mehr. Daher ist es aus meiner Sicht sinnvoll (mache ich überall in der JavaScript-Programmierung mit Timeouts so - und viele andere auch), diesen Wert wieder zurückzusetzen.

                                    Heiß: In der Timeout-Variablen steht nur etwas, wenn ein aktiver (= noch nicht ausgeführter Timeout) existiert, welcher ggf. abgebrochen werden soll. Damit kann man vermeiden, einen Timeout ein zweites Mal zu starten (= nicht <timeout>).

                                    Aus meiner Sicht also alles korrekt.

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #22

                                    @haus-automatisierung sagte: Wenn der Timeout nun durchgelaufen ist, ist diese Timeout ID ja nicht mehr gültig

                                    Sie blockiert aber den Neustart des Timers, solange die Leistung unterhalb des Grenzwertes schwankt.

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    haus-automatisierungH 1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @haus-automatisierung sagte: Wenn der Timeout nun durchgelaufen ist, ist diese Timeout ID ja nicht mehr gültig

                                      Sie blockiert aber den Neustart des Timers, solange die Leistung unterhalb des Grenzwertes schwankt.

                                      haus-automatisierungH Online
                                      haus-automatisierungH Online
                                      haus-automatisierung
                                      Developer Most Active
                                      schrieb am zuletzt editiert von haus-automatisierung
                                      #23

                                      @paul53 sagte in Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern:

                                      Sie blockiert aber den Neustart des Timers, solange die Leistung unterhalb des Grenzwertes schwankt.

                                      Dann muss man das in diesem Fall mit einer weiteren Variable sperren. Also z.B. waschvorgangAktiv = true wenn einmal die Leistung über 3 Watt war. Und das dann in dem "sonst falls` mit aufnehmen.

                                      EDIT: Gibts ja schon (Waschmaschine aktiv). Einfach mit UND in den sonst falls aufnehmen

                                      falls nicht <timeout> UND Waschmaschine aktiv

                                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                      📚 Meine inoffizielle ioBroker Dokumentation

                                      paul53P I 2 Antworten Letzte Antwort
                                      1
                                      • haus-automatisierungH haus-automatisierung

                                        @paul53 sagte in Fälschlicherweise mehrfache Ausgabe einer Meldung verhindern:

                                        Sie blockiert aber den Neustart des Timers, solange die Leistung unterhalb des Grenzwertes schwankt.

                                        Dann muss man das in diesem Fall mit einer weiteren Variable sperren. Also z.B. waschvorgangAktiv = true wenn einmal die Leistung über 3 Watt war. Und das dann in dem "sonst falls` mit aufnehmen.

                                        EDIT: Gibts ja schon (Waschmaschine aktiv). Einfach mit UND in den sonst falls aufnehmen

                                        falls nicht <timeout> UND Waschmaschine aktiv

                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        schrieb am zuletzt editiert von
                                        #24

                                        @haus-automatisierung sagte: Dann muss man das in diesem Fall mit einer weiteren Variable sperren.

                                        Aber erst durch die Änderung in Blockly vom 29.05.2023. Damit ist Blockly nicht mehr abwärtskompatibel.

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                        haus-automatisierungH 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @haus-automatisierung sagte: Dann muss man das in diesem Fall mit einer weiteren Variable sperren.

                                          Aber erst durch die Änderung in Blockly vom 29.05.2023. Damit ist Blockly nicht mehr abwärtskompatibel.

                                          haus-automatisierungH Online
                                          haus-automatisierungH Online
                                          haus-automatisierung
                                          Developer Most Active
                                          schrieb am zuletzt editiert von haus-automatisierung
                                          #25

                                          @paul53 Ja, und vorher war es ein Bug, dass die Timeouts nicht zurückgesetzt wurden, wenn sie gelaufen sind. Warum nicht abwärtskompatibel? Es gab vor 7.x gar keinen Block dafür, um überhaupt auf einen existierenden Timeout zu prüfen. Ja, man konnte eine Variable anlegen die genauso wie der Timeout hieß - das war aber nie so vorgesehen und ein unschöner Workaround.

                                          Aktuell gibt es keinen Block, um einen Timeout zurück auf null zu setzen. Nur mit "stop" - und das ist vom Wording ja etwas komisch, weil der ja gar nicht mehr läuft, wenn man das innerhalb der Callback-Funktion nutzt.

                                          Das ist aufgefallen, als ich den "Variablen-Block" für Timeouts implementiert habe. Also bei genau so einem Fall wie oben. Ich wollte damit prüfen, ob es schon einen laufenden Timeout gibt. Falls nicht -> starten. Das gewünschte Verhalten à la "wurde jemals ein Timeout gestartet?" finde ich nur schwer verständlich.

                                          Ich hatte vorher auch geschaut, ob das "Variable mit dem gleichen Namen wie der Name des Timeouts anlegen"-Workaround irgendwo in der Dokumentation auftaucht. War nicht der Fall.

                                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                          📚 Meine inoffizielle ioBroker Dokumentation

                                          paul53P 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          677

                                          Online

                                          32.6k

                                          Benutzer

                                          82.3k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe