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. Blockly
  5. Zähler zählt immer 2 anstatt 1

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Zähler zählt immer 2 anstatt 1

Geplant Angeheftet Gesperrt Verschoben Blockly
6 Beiträge 3 Kommentatoren 303 Aufrufe 2 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.
  • G Offline
    G Offline
    groundlevel82
    schrieb am zuletzt editiert von
    #1

    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

    paul53P 1 Antwort Letzte Antwort
    0
    • G groundlevel82

      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

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

      @groundlevel82 sagte:

      wieso immer 2 Zahlen pro Sekunde addiert werden?

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

      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

      AsgothianA 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @groundlevel82 sagte:

        wieso immer 2 Zahlen pro Sekunde addiert werden?

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

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb am zuletzt editiert von
        #3

        @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.

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        G 1 Antwort Letzte Antwort
        0
        • AsgothianA Asgothian

          @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 Offline
          G Offline
          groundlevel82
          schrieb am zuletzt editiert von
          #4

          @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.

          AsgothianA 1 Antwort Letzte Antwort
          0
          • G groundlevel82

            @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.

            AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            schrieb am zuletzt editiert von
            #5

            @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>
            

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            G 1 Antwort Letzte Antwort
            0
            • AsgothianA Asgothian

              @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 Offline
              G Offline
              groundlevel82
              schrieb am zuletzt editiert von
              #6

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

              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

              512

              Online

              32.7k

              Benutzer

              82.4k

              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