Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Zähler zählt immer 2 anstatt 1

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Zähler zählt immer 2 anstatt 1

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

      Hallo zusammen,
      ich versuche einen einfachen Zähler zu erstellen. Kann mir jemand sagen, wieso immer 2 Zahlen pro Sekunde addiert werden?
      Vielen Dank!1.jpg

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

        @groundlevel82 sagte:

        wieso immer 2 Zahlen pro Sekunde addiert werden?

        Weil der Zähler nicht gestoppt wird, laufen wohl zwei Zähler parallel.

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

          @paul53 sagte in Zähler zählt immer 2 anstatt 1:

          @groundlevel82 sagte:

          wieso immer 2 Zahlen pro Sekunde addiert werden?

          Weil der Zähler nicht gestoppt wird, laufen wohl zwei Zähler parallel.

          Und es werden prinzipiell 2 Zähler gestartet, da auf "geändert" getriggert wird, sprich wenn der BWM Aktiv schaltet startet ein Zähler, beim inaktiv schalten auch wieder.

          Mal dumm gefragt - wofür brauchst du den Zähler ? Wenn du die Zeit zwischen 2 Events haben willst dann ist (meiner Meinung nach) der Sinnvolle Weg:

          • beim ersten Event: aktuelle Zeit in Sekunden speichern.
          • beim zweiten Event: aktuelle Zeit in Sekunden holen, die vom ersten Event abziehen, anzeigen.

          Kein Zähler, kein Nix.

          Ich bin immer noch überrascht in wie vielen Skripten alle x Sekunden etwas passiert nur um die Zeitkomponente zu erfassen.

          G 1 Reply Last reply Reply Quote 0
          • G
            groundlevel82 @Asgothian last edited by

            @Asgothian
            Hey super danke für die Erklärung. Jetzt verstehe ich es auch, dass der Zähler zweimal startet.
            Ich wollte einen Zähler einbauen, der anfängt zu laufen wenn der Bewegungsmelder aktiv wird und sich bei erneutem aktiv werden wieder auf 0 setzt um erneut zu laufen.
            Hört sich komisch an, eigentlich soll nur ein Internetradio gestartet werden, welches nach 5 Minuten wieder aus geht. Natürlich soll das Radio solange an bleiben, solange noch jemand im Raum ist.

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @groundlevel82 last edited by

              @groundlevel82
              Prinzipiell ist das was du willst schon machbar. Allerdings machst du 2 Fehler:

              1. Trigger auf wurde geändert, ohne Wertprüfung.
              2. Du nutzt einen Zähler, an Statt einen Timeout zu nutzen.

              Versuch es mal so:

              Screen Shot 2020-09-02 at 17.22.26 .png

              Funktionsweise ist einfach: Auf jede Aktualisierung des BWM wird reagiert. Nur wenn der Wert noch auf Wahr ist (BWM aktiv) dann wird das Radio eingeschaltet und nach 5 Minuten wieder abgeschaltet.

              Sollte das Radio bereits an sein wird das erneute einschalten nichts machen. Der Timeout zum abschalten wird dann deaktiviert und neu auf 5 Minuten gesetzt.

              A.

              Code zum Kopieren hinter dem Spoiler.

              <block xmlns="https://developers.google.com/blockly/xml" type="on" id="AR?y2l]7(?s)Q52R~#)X" x="-262" y="590">
                <field name="OID">Object ID</field>
                <field name="CONDITION">any</field>
                <field name="ACK_CONDITION"></field>
                <statement name="STATEMENT">
                  <block type="controls_if" id="wC-HRAr`Qyl1Co];XyGQ">
                    <value name="IF0">
                      <block type="on_source" id="c!N:w}V#vL=~KO-2fpgu">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="comment" id="b`he_@Ma`KU*Qw|n(%)-">
                        <field name="COMMENT">Object ID hier ist der Datenpunkt zum Schalten des Radios</field>
                        <next>
                          <block type="control" id=".w.NTGS:hc5;na#e/8{e">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">Object ID</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="|@55wn?T8G2YdmOMIn(M">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                            <next>
                              <block type="control" id="+`o!7Jqf(FX|.BYGUn(:">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                <field name="OID">Object ID</field>
                                <field name="WITH_DELAY">TRUE</field>
                                <field name="DELAY_MS">5</field>
                                <field name="UNIT">min</field>
                                <field name="CLEAR_RUNNING">TRUE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="pAXU1sEECK-n7Q%?[#~q">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
              

              G 1 Reply Last reply Reply Quote 0
              • G
                groundlevel82 @Asgothian last edited by

                @Asgothian
                Ich werde mich gleich mal ans basteln machen 😄 Vielen Dank für die schnelle Hilfe.

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                739
                Online

                32.0k
                Users

                80.4k
                Topics

                1.3m
                Posts

                3
                6
                245
                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