Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. subscribeForeignStates() und leerer Patter-String

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.4k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    1.2k

subscribeForeignStates() und leerer Patter-String

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

    In den letzten Tagen habe ich zusammen mit Dirk-Peter ein Problem in einem Adapter behoben. Dabei ist mir aufgefallen, dass ein Aufruf von subscribeForeignStates() mit einem leeren Pattern-String identisch wirkt wie mit einem '*'.

    Konkret war es hier dann so, dass unter bestimmten Umständen der User gar nicht die Möglichkeit haben einen State zum abonnieren einzutragen, daher der String leer geblieben ist und dann mit einem leeren String das subscribe aufgerufen wurde.

    Das führt bei einer größeren ioBroker-Installation zu einer "Event-Flut", die ein System deutlich verlangsamen kann. Ich hatte dann das Problem, dass teilweise auf Events erst nach 3 Sekunden reagiert wurde. Für technische Dinge mag das ja noch gehen, bei einem Lichtschalter hat es den WAF erheblich reduziert ;-).

    Daher mein Vorschlag: Ich empfehle einen Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung. Wenn man mit einem * aufruft hat kann das grundsätzlich Sinn haben, aber ich denke: Mit einem leeren String wird in der Regel ein Folgefehler sein.

    paul53P OliverIOO mcm1957M 3 Antworten Letzte Antwort
    1
    • T tueftler17

      In den letzten Tagen habe ich zusammen mit Dirk-Peter ein Problem in einem Adapter behoben. Dabei ist mir aufgefallen, dass ein Aufruf von subscribeForeignStates() mit einem leeren Pattern-String identisch wirkt wie mit einem '*'.

      Konkret war es hier dann so, dass unter bestimmten Umständen der User gar nicht die Möglichkeit haben einen State zum abonnieren einzutragen, daher der String leer geblieben ist und dann mit einem leeren String das subscribe aufgerufen wurde.

      Das führt bei einer größeren ioBroker-Installation zu einer "Event-Flut", die ein System deutlich verlangsamen kann. Ich hatte dann das Problem, dass teilweise auf Events erst nach 3 Sekunden reagiert wurde. Für technische Dinge mag das ja noch gehen, bei einem Lichtschalter hat es den WAF erheblich reduziert ;-).

      Daher mein Vorschlag: Ich empfehle einen Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung. Wenn man mit einem * aufruft hat kann das grundsätzlich Sinn haben, aber ich denke: Mit einem leeren String wird in der Regel ein Folgefehler sein.

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

      @tueftler17 [sagte]: Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung.

      Erstelle Issue auf Github.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

      1 Antwort Letzte Antwort
      1
      • T Offline
        T Offline
        tueftler17
        schrieb am zuletzt editiert von
        #3

        erledigt

        1 Antwort Letzte Antwort
        0
        • T tueftler17

          In den letzten Tagen habe ich zusammen mit Dirk-Peter ein Problem in einem Adapter behoben. Dabei ist mir aufgefallen, dass ein Aufruf von subscribeForeignStates() mit einem leeren Pattern-String identisch wirkt wie mit einem '*'.

          Konkret war es hier dann so, dass unter bestimmten Umständen der User gar nicht die Möglichkeit haben einen State zum abonnieren einzutragen, daher der String leer geblieben ist und dann mit einem leeren String das subscribe aufgerufen wurde.

          Das führt bei einer größeren ioBroker-Installation zu einer "Event-Flut", die ein System deutlich verlangsamen kann. Ich hatte dann das Problem, dass teilweise auf Events erst nach 3 Sekunden reagiert wurde. Für technische Dinge mag das ja noch gehen, bei einem Lichtschalter hat es den WAF erheblich reduziert ;-).

          Daher mein Vorschlag: Ich empfehle einen Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung. Wenn man mit einem * aufruft hat kann das grundsätzlich Sinn haben, aber ich denke: Mit einem leeren String wird in der Regel ein Folgefehler sein.

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von OliverIO
          #4

          @tueftler17

          Müsstest du als Adapter Entwickler nicht diesen Check einbauen?
          Man lässt Nutzer Eingaben eigentlich nicht ungeprüft auf System Funktionen los.

          Man könnte zb ersteinmal prüfen wie viele object ids die Eingabe ergibt und wenn es eine gewisse Grenze überschreitet einen warnhinweis auszugeben ob man das wirklich will

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            tueftler17
            schrieb am zuletzt editiert von
            #5

            @oliverio
            Für meinen eigenen Adapter hätte ich ja gar keine Schmerzen damit. Und: Nachdem ich gesehen habe was passiert wenn man einen leeren String in den call gibt weiß ich zu 100%, dass ich das zu verhindern wissen werde. Meine Installation war durch den Fehler soweit kompromittiert, dass der WAF im Keller war und ich ernsthaft überlegt habe auf einen Konkurrenten zu ioBroker zu wechseln weil ich ein 3/4 Jahr das Problem nicht gefunden habe.

            Aber: Das Problem trat nicht in meinem Adapter auf und es gibt einen langen Thread dazu wo bei dem betroffenen Adapter schon länger über Performance-Themen gesprochen wurde. Da ist es bisher nicht aufgefallen. Mein Vorschlag ist daher für die gesamte Community gedacht, wenn es einen Eintrag im Log als Error gäbe: Dann wäre das Risiko deutlich geringer, dass dieses an anderen Stellen ebenfalls auffällt.

            Ich selber habe bei meinem System noch einen weiteren Fremd-Adapter im Verdacht das zu tun, aber da muss ich ran und ein paar debug-output-Zeilen "reinmogeln" und würde dann auch den Adapter-Entwickler anschreiben. Das sind aber alles Zufallsbefunde und kein strukturiertes Herangehen.

            Zwei Zeilen im ioBroker-Core könnten vielleicht zu einer echten Verbesserung führen.

            1 Antwort Letzte Antwort
            1
            • T tueftler17

              In den letzten Tagen habe ich zusammen mit Dirk-Peter ein Problem in einem Adapter behoben. Dabei ist mir aufgefallen, dass ein Aufruf von subscribeForeignStates() mit einem leeren Pattern-String identisch wirkt wie mit einem '*'.

              Konkret war es hier dann so, dass unter bestimmten Umständen der User gar nicht die Möglichkeit haben einen State zum abonnieren einzutragen, daher der String leer geblieben ist und dann mit einem leeren String das subscribe aufgerufen wurde.

              Das führt bei einer größeren ioBroker-Installation zu einer "Event-Flut", die ein System deutlich verlangsamen kann. Ich hatte dann das Problem, dass teilweise auf Events erst nach 3 Sekunden reagiert wurde. Für technische Dinge mag das ja noch gehen, bei einem Lichtschalter hat es den WAF erheblich reduziert ;-).

              Daher mein Vorschlag: Ich empfehle einen Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung. Wenn man mit einem * aufruft hat kann das grundsätzlich Sinn haben, aber ich denke: Mit einem leeren String wird in der Regel ein Folgefehler sein.

              mcm1957M Offline
              mcm1957M Offline
              mcm1957
              schrieb am zuletzt editiert von
              #6

              @tueftler17 sagte:

              In den letzten Tagen habe ich zusammen mit Dirk-Peter ein Problem in einem Adapter behoben. Dabei ist mir aufgefallen, dass ein Aufruf von subscribeForeignStates() mit einem leeren Pattern-String identisch wirkt wie mit einem '*'.

              Konkret war es hier dann so, dass unter bestimmten Umständen der User gar nicht die Möglichkeit haben einen State zum abonnieren einzutragen, daher der String leer geblieben ist und dann mit einem leeren String das subscribe aufgerufen wurde.

              Das führt bei einer größeren ioBroker-Installation zu einer "Event-Flut", die ein System deutlich verlangsamen kann. Ich hatte dann das Problem, dass teilweise auf Events erst nach 3 Sekunden reagiert wurde. Für technische Dinge mag das ja noch gehen, bei einem Lichtschalter hat es den WAF erheblich reduziert ;-).

              Daher mein Vorschlag: Ich empfehle einen Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung. Wenn man mit einem * aufruft hat kann das grundsätzlich Sinn haben, aber ich denke: Mit einem leeren String wird in der Regel ein Folgefehler sein.

              Bitte issue im js-controller anlegen.

              Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
              Support Repositoryverwaltung.

              Wer 'nen Kaffee spendieren will: https://paypal.me

              LESEN - gute Forenbeitrage

              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                tueftler17
                schrieb am zuletzt editiert von
                #7

                Hab ich heute Vormittag schon gemacht.
                https://github.com/ioBroker/ioBroker.js-controller/issues/3325

                1 Antwort Letzte Antwort
                2

                Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                Registrieren Anmelden
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                440

                Online

                32.9k

                Benutzer

                83.2k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2026
                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