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. Entwicklung
  4. Adapter stateChange Event Verhalten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Adapter stateChange Event Verhalten

Geplant Angeheftet Gesperrt Verschoben Entwicklung
4 Beiträge 3 Kommentatoren 947 Aufrufe
  • Ä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.
  • R Offline
    R Offline
    Rasputin
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    versuche schon seit geraumer Zeit mich mit einer Adapterentwicklung auseinander zu setzen und habe ein Verhalten im Adapter, was ich so nicht verstehe. Folgende Konfiguration:

    Mein Testadapter abonniert einen ForeignState hier eine IP-Adresse vom Ping-Adapter. Diese IP-Adresse wird vom Ping-Adapter fleissig gepingt , und ich bekomme permanent ein Event ‚stateChange‘ true zurück (jedesmal nach einem ping request) obwohl sich der Status/Wert nie ändert.

    Was könnte der Grund sein ?

    1 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von
      #2

      Naja, der Grund ist das bei Adaptern bei jeder Änderung auf subscribed States getriggert wird. Wenn du Wissen willst ob sich der Wert geändert hat Must du dir den Wert vorher merken und vergleichen.

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        Rasputin
        schrieb am zuletzt editiert von
        #3

        @apollon77:

        Naja, der Grund ist das bei Adaptern bei jeder Änderung auf subscribed States getriggert wird. Wenn du Wissen willst ob sich der Wert geändert hat Must du dir den Wert vorher merken und vergleichen. `

        Aha :?: :!:

        Aber das ist für mich ein Widerspruch, es hat sich nichts beim Ping-Adapter geändert, aber mein Adapter bekommt ein stateofChange.

        Dann fehlt wohl dem Admin die Logik eine Wertänderung festzustellen und verteilt alle Werte bei setState ohne Prüfung einfach an alle Abonnenten. Das ist elementar, den das treibt die Systemlast hoch bei vielen abonnierten Werten, denn die Events werden immer generiert auch wenn sich nichts ändert . Da sollte mal in der Doku erwähnt werden.

        Wäre es denn nicht sinnvoller wenn der Ping-Adapter das machen würde, nur dann setState aufrufen wenn der PingStatus sich ändert, dies sollten dann alle Adapter so machen.

        1 Antwort Letzte Antwort
        0
        • AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #4

          @Rasputin:

          Aber das ist für mich ein Widerspruch, es hat sich nichts beim Ping-Adapter geändert, aber mein Adapter bekommt ein stateofChange. `
          Und wenn du im Adapter auf eine Aktualisierung lauschen willst und nicht eine (wirkliche) Änderung? Dann geht das nur, wenn der Controller alle Events sendet und den Adaptern das Filtern überlässt.

          Da sollte natürlich darauf geachtet werden, dass nicht auf sämtliche States gelauscht wird, etwa per

          adapter.subscribeForeignStates("*")
          

          sondern nur die, die tatsächlich benötigt werden.

          > Wäre es denn nicht sinnvoller wenn der Ping-Adapter das machen würde, nur dann setState aufrufen wenn der PingStatus sich ändert, dies sollten dann alle Adapter so machen.
          Da hast du möglicherweise Recht!

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          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

          460

          Online

          32.6k

          Benutzer

          82.1k

          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