Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Anfängerfrage: setState nur bei Änderung?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Anfängerfrage: setState nur bei Änderung?

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

      Hallo,
      ist vielleicht eine blöde Frage, aber muss man im Adapter immer selbst prüfen, ob der Status eines Gerätesensors von dem aktuellen Status in IO Broker abweicht und darf nur dann den geänderten Status per setState melden? Ich hätte eigentlich gedacht, dass man jederzeit setState auch mit unverändertem Wert aufrufen kann und IO Broker meldet das nur dann an Subscriber weiter, wenn der Wert sich auch geändert hat. Wenn ich mich selbst per adapter.on('stateChange' anmelde, bekomme ich jeden einzelnen Aufruf, auch wenn sich der Wert nicht geändert hat.
      Bedeutet das auch andersrum, dass man damit rechnen muss, dass man z.b. LampeAnschalten=true auch mehrmals nacheinander bekommen kann und man erstmal selbst prüfen muss, ob die Lampe nicht eh schon an ist?

      OliverIO paul53 2 Replies Last reply Reply Quote 0
      • OliverIO
        OliverIO @HausBusDe last edited by

        @HausBusDe
        Ich merke mir im Adapter immer zuerst selbst den letzten Wert und führe setstate erst aus, wenn sich der Wert geändert hat.

        H 1 Reply Last reply Reply Quote 0
        • H
          HausBusDe @OliverIO last edited by

          Aber das ist eigentlich recht unnötig bzw. ineffizient, weil die kompletten Daten dann nochmal gespiegelt im Adapter vorgehalten werden. Kennt jemand einen guten Grund wieso IO Broker das so handhabt? Es wäre doch ein leichtes, die Listener nur dann zu informieren, wenn ein gesetzter State auch anders ist, als der vorherige. Natürlich nur bei den setState mit ack und nicht bei Aufrufen, die Aktionen bewirken.

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

            @HausBusDe sagte:

            IO Broker meldet das nur dann an Subscriber weiter, wenn der Wert sich auch geändert hat.

            ioBroker meldet auch eine Aktualisierung des Zeitstempels (change: "any"). Andernfalls könnte man nicht auf Datenpunkte mit konstantem Wert (z.B. Taster) triggern.

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

              @paul53 danke, das ist ein guter Hinweis. Wie werden Taster denn abgebildet? Die melden quasi nicht zwei Events, dass sie gedrückt und dann losgelassen wurden, sondern nur einen value "ausgelöst", der sich nie ändert und nur nen neuen Timestamp bekommt?

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

                @HausBusDe sagte:

                Wie werden Taster denn abgebildet?

                Ich kenne nur die HomeMatic-Taster (klassisch): Der Wert ist immer true. PRESS_SHORT aktualisiert den Zeitstempel, wenn die Taste innerhalb von 0,4 s nach Drücken losgelassen wird; PRESS_LONG aktualisiert den Zeitstempel, wenn nach 0,4 s die Taste noch gedrückt ist.

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

                  @paul53 danke! Ich glaube, dann mache ich das auch so. Wir haben klicked, double klicked und hold start und hold end

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  760
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  adapterentwicklung
                  3
                  7
                  331
                  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