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. ioBroker Allgemein
  4. invalid pattern

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    532

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

invalid pattern

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
14 Beiträge 6 Kommentatoren 1.4k Aufrufe 4 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.
  • H Offline
    H Offline
    hacki11
    schrieb am zuletzt editiert von
    #5

    Es werden einige Sonderzeichen ausgefiltert, ß und ° gehört scheinbar nicht dazu. Generell bin ich gerade dabei, die IDs des Adapters auf Nummer-only umzustellen, dann ergibt sich das Problem nicht mehr. Ich melde mich die Tage mit einer Testversion.

    T 1 Antwort Letzte Antwort
    1
    • H hacki11

      Es werden einige Sonderzeichen ausgefiltert, ß und ° gehört scheinbar nicht dazu. Generell bin ich gerade dabei, die IDs des Adapters auf Nummer-only umzustellen, dann ergibt sich das Problem nicht mehr. Ich melde mich die Tage mit einer Testversion.

      T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von
      #6

      @hacki11

      function name2id(pName) {
          return (pName || '').replace(adapter.FORBIDDEN_CHARS, '_');
      }
      

      von Martin kopiert

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      H 1 Antwort Letzte Antwort
      0
      • T ticaki

        @hacki11

        function name2id(pName) {
            return (pName || '').replace(adapter.FORBIDDEN_CHARS, '_');
        }
        

        von Martin kopiert

        H Offline
        H Offline
        hacki11
        schrieb am zuletzt editiert von hacki11
        #7

        @ticaki sagte in invalid pattern:

        @hacki11

        function name2id(pName) {
            return (pName || '').replace(adapter.FORBIDDEN_CHARS, '_');
        }
        

        von Martin kopiert

        Solch eine Funktion ist bereits enthalten nur haben sich die invalid chars erweitert oder waren nicht bekannt. Es ist aber ein grundsätzlicheres Problem, da sich diese Namen auch zwischen BSB_lan Releases ändern. Daher werden diese IDs auf die Herstellernummern umgestellt. Dann gibt es auch keine Invaliden Zeichen mehr.

        T 1 Antwort Letzte Antwort
        0
        • H hacki11

          @ticaki sagte in invalid pattern:

          @hacki11

          function name2id(pName) {
              return (pName || '').replace(adapter.FORBIDDEN_CHARS, '_');
          }
          

          von Martin kopiert

          Solch eine Funktion ist bereits enthalten nur haben sich die invalid chars erweitert oder waren nicht bekannt. Es ist aber ein grundsätzlicheres Problem, da sich diese Namen auch zwischen BSB_lan Releases ändern. Daher werden diese IDs auf die Herstellernummern umgestellt. Dann gibt es auch keine Invaliden Zeichen mehr.

          T Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von ticaki
          #8

          @hacki11
          Ich lese das so, dass du eine eigene Filterfunktion verwendet, falls ich das falsch verstanden habe vergiss den Beitrag:

          FORBIDDEN_CHARS ist eine Regex-Konstante aus dem js-controller (Konstante von class adapter) und diese definiert erlaubte Zeichen und negiert dieses so das alle verbotenen gefunden werden. Darin sind aber auch noch einige Zeichen die aus Kompatibilitätsgründe erlaubt sind. Die tatsächlichen erwünschten Zeichen filter man mit dieser:

          str = str.replace(/[^0-9A-Za-z\._-]/gu, '_');
          

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          H 1 Antwort Letzte Antwort
          0
          • T ticaki

            @hacki11
            Ich lese das so, dass du eine eigene Filterfunktion verwendet, falls ich das falsch verstanden habe vergiss den Beitrag:

            FORBIDDEN_CHARS ist eine Regex-Konstante aus dem js-controller (Konstante von class adapter) und diese definiert erlaubte Zeichen und negiert dieses so das alle verbotenen gefunden werden. Darin sind aber auch noch einige Zeichen die aus Kompatibilitätsgründe erlaubt sind. Die tatsächlichen erwünschten Zeichen filter man mit dieser:

            str = str.replace(/[^0-9A-Za-z\._-]/gu, '_');
            
            H Offline
            H Offline
            hacki11
            schrieb am zuletzt editiert von hacki11
            #9

            @ticaki sagte in invalid pattern:

            @hacki11
            Ich lese das so, dass du eine eigene Filterfunktion verwendet, falls ich das falsch verstanden habe vergiss den Beitrag:

            FORBIDDEN_CHARS ist eine Regex-Konstante aus dem js-controller (Konstante von class adapter) und diese definiert erlaubte Zeichen und negiert dieses so das alle verbotenen gefunden werden. Darin sind aber auch noch einige Zeichen die aus Kompatibilitätsgründe erlaubt sind. Die tatsächlichen erwünschten Zeichen filter man mit dieser:

            str = str.replace(/[^0-9A-Za-z\._-]/gu, '_');
            

            Ah gut zu Wissen, afaik gabs die damals noch nicht. Die Verwendung dieses Regex würde aber auch dazu führen, dass sich bei jedem die bestehenden IDs ändern. Und da ich plane alle auf „echte“ IDS umzustellen werde ich diesen Schritt nicht zusätzlich machen. So einen großen Breaking Change will ich nur einmal machen müssen.

            Beispiel:
            Außentemperatur_(1111) veränderte sich in der neuen BSB_lan Firmware zu Aussentemperatur_(1111) was zu einem Breaking Change für jeden führt, der diesen Parameter abonniert. Künftig wird die ID nur aus der, vom Hersteller definierten Nummer bestehen: 1111

            Dann erübrigen sich auch ungültige Character.

            T mcm1957M 2 Antworten Letzte Antwort
            1
            • H hacki11

              @ticaki sagte in invalid pattern:

              @hacki11
              Ich lese das so, dass du eine eigene Filterfunktion verwendet, falls ich das falsch verstanden habe vergiss den Beitrag:

              FORBIDDEN_CHARS ist eine Regex-Konstante aus dem js-controller (Konstante von class adapter) und diese definiert erlaubte Zeichen und negiert dieses so das alle verbotenen gefunden werden. Darin sind aber auch noch einige Zeichen die aus Kompatibilitätsgründe erlaubt sind. Die tatsächlichen erwünschten Zeichen filter man mit dieser:

              str = str.replace(/[^0-9A-Za-z\._-]/gu, '_');
              

              Ah gut zu Wissen, afaik gabs die damals noch nicht. Die Verwendung dieses Regex würde aber auch dazu führen, dass sich bei jedem die bestehenden IDs ändern. Und da ich plane alle auf „echte“ IDS umzustellen werde ich diesen Schritt nicht zusätzlich machen. So einen großen Breaking Change will ich nur einmal machen müssen.

              Beispiel:
              Außentemperatur_(1111) veränderte sich in der neuen BSB_lan Firmware zu Aussentemperatur_(1111) was zu einem Breaking Change für jeden führt, der diesen Parameter abonniert. Künftig wird die ID nur aus der, vom Hersteller definierten Nummer bestehen: 1111

              Dann erübrigen sich auch ungültige Character.

              T Nicht stören
              T Nicht stören
              ticaki
              schrieb am zuletzt editiert von
              #10

              @hacki11

              Die Definition von forbidden_chars findest du hier, Verwendung wird afaik empfohlen.

              https://github.com/ioBroker/ioBroker.js-controller/blob/a115ba28d936f9c746de49df806df95dd6ca2db4/packages/common/src/lib/common/tools.ts#L123

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              H 1 Antwort Letzte Antwort
              0
              • T ticaki

                @hacki11

                Die Definition von forbidden_chars findest du hier, Verwendung wird afaik empfohlen.

                https://github.com/ioBroker/ioBroker.js-controller/blob/a115ba28d936f9c746de49df806df95dd6ca2db4/packages/common/src/lib/common/tools.ts#L123

                H Offline
                H Offline
                hacki11
                schrieb am zuletzt editiert von
                #11

                Welche BSB Adapter Version wird eigentlich eingesetzt?

                M 1 Antwort Letzte Antwort
                0
                • H hacki11

                  Welche BSB Adapter Version wird eigentlich eingesetzt?

                  M Offline
                  M Offline
                  Malz1902
                  schrieb am zuletzt editiert von
                  #12

                  @hacki11 0.3.1

                  1 Antwort Letzte Antwort
                  0
                  • H hacki11

                    @ticaki sagte in invalid pattern:

                    @hacki11
                    Ich lese das so, dass du eine eigene Filterfunktion verwendet, falls ich das falsch verstanden habe vergiss den Beitrag:

                    FORBIDDEN_CHARS ist eine Regex-Konstante aus dem js-controller (Konstante von class adapter) und diese definiert erlaubte Zeichen und negiert dieses so das alle verbotenen gefunden werden. Darin sind aber auch noch einige Zeichen die aus Kompatibilitätsgründe erlaubt sind. Die tatsächlichen erwünschten Zeichen filter man mit dieser:

                    str = str.replace(/[^0-9A-Za-z\._-]/gu, '_');
                    

                    Ah gut zu Wissen, afaik gabs die damals noch nicht. Die Verwendung dieses Regex würde aber auch dazu führen, dass sich bei jedem die bestehenden IDs ändern. Und da ich plane alle auf „echte“ IDS umzustellen werde ich diesen Schritt nicht zusätzlich machen. So einen großen Breaking Change will ich nur einmal machen müssen.

                    Beispiel:
                    Außentemperatur_(1111) veränderte sich in der neuen BSB_lan Firmware zu Aussentemperatur_(1111) was zu einem Breaking Change für jeden führt, der diesen Parameter abonniert. Künftig wird die ID nur aus der, vom Hersteller definierten Nummer bestehen: 1111

                    Dann erübrigen sich auch ungültige Character.

                    mcm1957M Online
                    mcm1957M Online
                    mcm1957
                    schrieb am zuletzt editiert von mcm1957
                    #13

                    @hacki11 said in invalid pattern:

                    Die tatsächlichen erwünschten Zeichen filter man mit dieser:

                    str = str.replace(/[^0-9A-Za-z\._-]/gu, '_');
                    

                    Bei NEUEN Adaptern sollte man darauf achten nur Zahlen, Groß- und Kleinbuchstaben sowie - und _ in Ids zu verwenden. Damit ist man auf der sicheren Seite.

                    ABER es ist NICHT sinnvoll bei existierenden Adaptern auf einmal alle Zeichen außer den eben genannten zu ersetzen. Das würde einen unnötigen breaking Change auslösen.

                    Was aber auch bei existierneden Adapten notwendig ist, ist die FORBIDDEN chars lt. Kontante zu ersetzen. Wenn das im Einzelfall breaking ist, ist es nicht zu vermeiden. Die Zeichen in FORBIDDEN_CHARS sind definitiv verboten, lösen Probleme aus bzw. werden intern ggF sogar bereits jetzt ersetzt.

                    Und ja - Ids sollen soweit wie möglich KONSTANT bleiben. Einstellbare Texte oder Text der vom Gerät kommt sind eher zu vermeiden. Ids müssen NICHT leicht lesbar / merkbar sein. Dazu ginbts das name attribut.

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

                    Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                    LESEN - gute Forenbeitrage

                    1 Antwort Letzte Antwort
                    0
                    • H Offline
                      H Offline
                      hacki11
                      schrieb am zuletzt editiert von
                      #14

                      @mcm57
                      Absolut, dass ist auch der Grund für die grundlegende Änderung auf Nummern. Wenn ich jetzt nur die Forbidden Chars ersetze (bzw. Nur erlaubte zulasse) wird das für alle Parameter des Adapters bei allen User ein Breaking Change, da in jedem Parameter solch ein Zeichen ist. Deshalb mache ich dafür kein Update sondern gehe direkt den Weg alle Ids einmalig auf Nummern umzustellen. Ein Breaking Change ist unumgänglich aber zwei mache ich nicht.
                      Natürlich kann ich dann auch auf gültige IDs gemäß deinem Vorschlag prüfen.

                      1 Antwort Letzte Antwort
                      2
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      880

                      Online

                      32.6k

                      Benutzer

                      81.9k

                      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