Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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
    16
    1
    1.5k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

invalid pattern

Scheduled Pinned Locked Moved ioBroker Allgemein
14 Posts 6 Posters 1.4k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Malz1902
    wrote on last edited by
    #1

    Seit dem Update vom js-controller auf vn/ 5.0.12 bekomme ich ab und zu folgende Fehlermeldungen

    admin.0
    	2023-10-16 20:04:38.809	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_bei_Außentemperatur_35_°C_(909)" is not a valid ID pattern
    admin.0
    	2023-10-16 20:04:38.807	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_bei_Außentemperatur_25_°C_(908)" is not a valid ID pattern
    admin.0
    	2023-10-16 20:04:38.806	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_Min_bei_Außentemperatur_35_°C_(924)" is not a valid ID pattern
    admin.0
    	2023-10-16 20:04:38.806	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_Min_bei_Außentemperatur_25_°C_(923)" is not a valid ID pattern
    admin.0
    	2023-10-16 20:04:38.795	error	Invalid pattern on subscribe: The pattern "bsblan.0.Sommerkomp_Sollw’anhebung_(920)" is not a valid ID pattern
    admin.0
    	2023-10-16 20:03:57.630	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_Min_bei_Außentemperatur_35_°C_(924)" is not a valid ID pattern
    admin.0
    	2023-10-16 20:03:57.629	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_Min_bei_Außentemperatur_25_°C_(923)" is not a valid ID pattern
    

    Node.js
    18.18.2
    NPM
    9.8.1
    admin
    6.10.1

    Thomas BraunT 1 Reply Last reply
    0
    • M Malz1902

      Seit dem Update vom js-controller auf vn/ 5.0.12 bekomme ich ab und zu folgende Fehlermeldungen

      admin.0
      	2023-10-16 20:04:38.809	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_bei_Außentemperatur_35_°C_(909)" is not a valid ID pattern
      admin.0
      	2023-10-16 20:04:38.807	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_bei_Außentemperatur_25_°C_(908)" is not a valid ID pattern
      admin.0
      	2023-10-16 20:04:38.806	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_Min_bei_Außentemperatur_35_°C_(924)" is not a valid ID pattern
      admin.0
      	2023-10-16 20:04:38.806	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_Min_bei_Außentemperatur_25_°C_(923)" is not a valid ID pattern
      admin.0
      	2023-10-16 20:04:38.795	error	Invalid pattern on subscribe: The pattern "bsblan.0.Sommerkomp_Sollw’anhebung_(920)" is not a valid ID pattern
      admin.0
      	2023-10-16 20:03:57.630	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_Min_bei_Außentemperatur_35_°C_(924)" is not a valid ID pattern
      admin.0
      	2023-10-16 20:03:57.629	error	Invalid pattern on subscribe: The pattern "bsblan.0.Vorlaufsollwert_Min_bei_Außentemperatur_25_°C_(923)" is not a valid ID pattern
      

      Node.js
      18.18.2
      NPM
      9.8.1
      admin
      6.10.1

      Thomas BraunT Online
      Thomas BraunT Online
      Thomas Braun
      Most Active
      wrote on last edited by
      #2

      @malz1902

      Dürfte mit den Sonderzeichen wie ß°() zusammenhängen.
      Ändere das.

      Linux-Werkzeugkasten:
      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
      NodeJS Fixer Skript:
      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

      M 1 Reply Last reply
      0
      • Thomas BraunT Thomas Braun

        @malz1902

        Dürfte mit den Sonderzeichen wie ß°() zusammenhängen.
        Ändere das.

        M Offline
        M Offline
        Malz1902
        wrote on last edited by
        #3

        @thomas-braun kommt aus dem BSB Lan Adapter @hacki11 evtl hast Du eine Idee?

        @ciddi89 das gleiche hatte ich auch mit dem DP device-watcher.0.lastCheck dd.mm.YYYY - hh:ii evtl an dem leerzeichen beim Wert?

        ? 1 Reply Last reply
        0
        • M Malz1902

          @thomas-braun kommt aus dem BSB Lan Adapter @hacki11 evtl hast Du eine Idee?

          @ciddi89 das gleiche hatte ich auch mit dem DP device-watcher.0.lastCheck dd.mm.YYYY - hh:ii evtl an dem leerzeichen beim Wert?

          ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #4

          @malz1902 nö Datenpunkt ist als string hinterlegt, da ist es egal was drin steht. Und ID ist lastCheck wüsste nicht was er da anmeckern könnte.

          1 Reply Last reply
          0
          • H Offline
            H Offline
            hacki11
            wrote on last edited by
            #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 Reply Last reply
            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 Offline
              T Offline
              ticaki
              wrote on last edited by
              #6

              @hacki11

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

              von Martin kopiert

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              H 1 Reply Last reply
              0
              • T ticaki

                @hacki11

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

                von Martin kopiert

                H Offline
                H Offline
                hacki11
                wrote on last edited by 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 Reply Last reply
                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 Offline
                  T Offline
                  ticaki
                  wrote on last edited by 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 Reply Last reply
                  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
                    wrote on last edited by 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 Replies Last reply
                    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 Offline
                      T Offline
                      ticaki
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by
                        #11

                        Welche BSB Adapter Version wird eigentlich eingesetzt?

                        M 1 Reply Last reply
                        0
                        • H hacki11

                          Welche BSB Adapter Version wird eigentlich eingesetzt?

                          M Offline
                          M Offline
                          Malz1902
                          wrote on last edited by
                          #12

                          @hacki11 0.3.1

                          1 Reply Last reply
                          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
                            wrote on last edited by 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 Reply Last reply
                            0
                            • H Offline
                              H Offline
                              hacki11
                              wrote on last edited by
                              #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 Reply Last reply
                              2
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

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

                              678

                              Online

                              32.6k

                              Users

                              82.1k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Home
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe