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. Entwicklung
  4. Funktion um Datenpunkt-Namen "aufzuräumen"?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    376

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

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

Funktion um Datenpunkt-Namen "aufzuräumen"?

Scheduled Pinned Locked Moved Entwicklung
datenpunkt erstellen
10 Posts 3 Posters 988 Views 3 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.
  • haus-automatisierungH Offline
    haus-automatisierungH Offline
    haus-automatisierung
    Developer Most Active
    wrote on last edited by
    #1

    Hallo zusammen,

    ich habe beim Trashschedule Adapter aktuell das Problem, dass ich als Datenpunkt den Text nehme, welchen der Nutzer selbst eingibt.

    Jetzt wünsche ich mir eine Funktion vom Adapter, mit welcher ich Strings so bereinigen kann, dass diese für Datenpunkte geeignet sind. Gibt es soetwas?

    Also

    • Leerzeichen / Whitespaces raus
    • Sonderzeichen raus
    • Punkte raus
    • Umlaute umwandeln
    • ...

    Damit ich praktisch genau weiß, dass es am Ende keine Probleme mit diesem Datenpunkt gibt. Theoretisch könnte das ja auch direkt in setObjectNotExists und co eingebaut werden, aber der Break wäre wahrscheinlich zu hart :smile:

    Gibt es da was? Oder eine Vorlage, welche man nutzen könnte? Wahrscheinlich machen das viele Adapter-Entwickler schon selbst auf die unterschiedlichsten Arten.

    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
    📚 Meine inoffizielle ioBroker Dokumentation

    UncleSamU 1 Reply Last reply
    0
    • haus-automatisierungH haus-automatisierung

      Hallo zusammen,

      ich habe beim Trashschedule Adapter aktuell das Problem, dass ich als Datenpunkt den Text nehme, welchen der Nutzer selbst eingibt.

      Jetzt wünsche ich mir eine Funktion vom Adapter, mit welcher ich Strings so bereinigen kann, dass diese für Datenpunkte geeignet sind. Gibt es soetwas?

      Also

      • Leerzeichen / Whitespaces raus
      • Sonderzeichen raus
      • Punkte raus
      • Umlaute umwandeln
      • ...

      Damit ich praktisch genau weiß, dass es am Ende keine Probleme mit diesem Datenpunkt gibt. Theoretisch könnte das ja auch direkt in setObjectNotExists und co eingebaut werden, aber der Break wäre wahrscheinlich zu hart :smile:

      Gibt es da was? Oder eine Vorlage, welche man nutzen könnte? Wahrscheinlich machen das viele Adapter-Entwickler schon selbst auf die unterschiedlichsten Arten.

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      wrote on last edited by UncleSam
      #2

      @haus-automatisierung Die Buchstaben finden sich in der Regex FORBIDDEN_CHARS. Du solltest es wie folgt machen können (ich habe es allerdings nicht versucht):

      const cleanName = input.replace(this.FORBIDDEN_CHARS, '_');
      

      this bezieht sich auf die Adapter Instanz.

      Ich weiss allerdings nicht, welche Version von js-controller dies voraussetzt.

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      haus-automatisierungH 1 Reply Last reply
      0
      • UncleSamU UncleSam

        @haus-automatisierung Die Buchstaben finden sich in der Regex FORBIDDEN_CHARS. Du solltest es wie folgt machen können (ich habe es allerdings nicht versucht):

        const cleanName = input.replace(this.FORBIDDEN_CHARS, '_');
        

        this bezieht sich auf die Adapter Instanz.

        Ich weiss allerdings nicht, welche Version von js-controller dies voraussetzt.

        haus-automatisierungH Offline
        haus-automatisierungH Offline
        haus-automatisierung
        Developer Most Active
        wrote on last edited by
        #3

        @unclesam Danke Dir!

        Danach ist aber total viel erlaubt (auch Leerzeichen).

        const FORBIDDEN_CHARS = /[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;

        Aber gut, das ist dann wohl die offizielle Variante :)

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        UncleSamU 1 Reply Last reply
        0
        • haus-automatisierungH haus-automatisierung

          @unclesam Danke Dir!

          Danach ist aber total viel erlaubt (auch Leerzeichen).

          const FORBIDDEN_CHARS = /[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;

          Aber gut, das ist dann wohl die offizielle Variante :)

          UncleSamU Offline
          UncleSamU Offline
          UncleSam
          Developer
          wrote on last edited by
          #4

          @haus-automatisierung sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

          ist aber total viel erlaubt

          Ja, absolut. Ist auch gut so. Das wichtigste ist eigentlich wirklich nur der Punkt.

          Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
          ♡-lichen Dank an meine Sponsoren

          haus-automatisierungH 1 Reply Last reply
          0
          • UncleSamU UncleSam

            @haus-automatisierung sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

            ist aber total viel erlaubt

            Ja, absolut. Ist auch gut so. Das wichtigste ist eigentlich wirklich nur der Punkt.

            haus-automatisierungH Offline
            haus-automatisierungH Offline
            haus-automatisierung
            Developer Most Active
            wrote on last edited by
            #5

            @unclesam sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

            Das wichtigste ist eigentlich wirklich nur der Punkt.

            Selbst der Punkt ist doch aber erlaubt :)
            Am Ende werden da nur komische Unicode-Zeichen wirklich rausgeworfen.

            So richtig happy bin ich mit dem Ergebnis nicht (erlaubt zu viel) - werde wohl doch einen eigenen RegEx bauen für meinen Fall.

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            UncleSamU 1 Reply Last reply
            0
            • haus-automatisierungH haus-automatisierung

              @unclesam sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

              Das wichtigste ist eigentlich wirklich nur der Punkt.

              Selbst der Punkt ist doch aber erlaubt :)
              Am Ende werden da nur komische Unicode-Zeichen wirklich rausgeworfen.

              So richtig happy bin ich mit dem Ergebnis nicht (erlaubt zu viel) - werde wohl doch einen eigenen RegEx bauen für meinen Fall.

              UncleSamU Offline
              UncleSamU Offline
              UncleSam
              Developer
              wrote on last edited by
              #6

              @haus-automatisierung sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

              Selbst der Punkt ist doch aber erlaubt

              Richtig, das ist ja die Regex für ganze Objekt IDs. Für ein einzelnes Unterobjekt wäre natürlich ein Punkt nicht erlaubt.

              Aber ich gebe dir recht, ich schliesse auch mehr aus: https://github.com/UncleSamSwiss/ioBroker.loxone/blob/e1cf009eea6eb661c57b1362c944b8ddd59400b6/src/loxone-handler-base.ts#L227

              Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
              ♡-lichen Dank an meine Sponsoren

              haus-automatisierungH 1 Reply Last reply
              1
              • UncleSamU UncleSam

                @haus-automatisierung sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

                Selbst der Punkt ist doch aber erlaubt

                Richtig, das ist ja die Regex für ganze Objekt IDs. Für ein einzelnes Unterobjekt wäre natürlich ein Punkt nicht erlaubt.

                Aber ich gebe dir recht, ich schliesse auch mehr aus: https://github.com/UncleSamSwiss/ioBroker.loxone/blob/e1cf009eea6eb661c57b1362c944b8ddd59400b6/src/loxone-handler-base.ts#L227

                haus-automatisierungH Offline
                haus-automatisierungH Offline
                haus-automatisierung
                Developer Most Active
                wrote on last edited by
                #7

                @unclesam sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

                Aber ich gebe dir recht, ich schliesse auch mehr aus:

                Genau das meine ich, es baut sich jeder Entwickler eine eigene Funktion um Namen für Datenpunkte aufzubereiten. Ich würde sogar soweit gehen, dass man nur a-zA-Z0-9_- zulässt.

                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                📚 Meine inoffizielle ioBroker Dokumentation

                UncleSamU 1 Reply Last reply
                0
                • haus-automatisierungH haus-automatisierung

                  @unclesam sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

                  Aber ich gebe dir recht, ich schliesse auch mehr aus:

                  Genau das meine ich, es baut sich jeder Entwickler eine eigene Funktion um Namen für Datenpunkte aufzubereiten. Ich würde sogar soweit gehen, dass man nur a-zA-Z0-9_- zulässt.

                  UncleSamU Offline
                  UncleSamU Offline
                  UncleSam
                  Developer
                  wrote on last edited by
                  #8

                  @haus-automatisierung sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

                  Genau das meine ich, es baut sich jeder Entwickler eine eigene Funktion um Namen für Datenpunkte aufzubereiten.

                  Ja, aber jeder hat andere Anforderungen. Man kann nicht einfach eine Einschränkung machen, die nicht für alle passt. Genau das hatten wir mit States mit einem Punkt am Schluss: das ist neu nicht mehr erlaubt und es gab zahlreiche Leute, die sowas noch in ihren JS-States hatten und diese (kurzfristig) nicht einmal mehr in Admin löschen konnten.

                  Niemand hat ein Problem, wenn du die möglichen Werte mehr einschränkst als ioBroker dies tut, aber alle Adapter kann man nicht dazu zwingen - das gäbe ganz viele (unnötige) Anpassungen in den bestehenden Objektbäumen - und damit Anpassungen in zahllosen Skripten.

                  Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                  ♡-lichen Dank an meine Sponsoren

                  haus-automatisierungH 1 Reply Last reply
                  0
                  • UncleSamU UncleSam

                    @haus-automatisierung sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

                    Genau das meine ich, es baut sich jeder Entwickler eine eigene Funktion um Namen für Datenpunkte aufzubereiten.

                    Ja, aber jeder hat andere Anforderungen. Man kann nicht einfach eine Einschränkung machen, die nicht für alle passt. Genau das hatten wir mit States mit einem Punkt am Schluss: das ist neu nicht mehr erlaubt und es gab zahlreiche Leute, die sowas noch in ihren JS-States hatten und diese (kurzfristig) nicht einmal mehr in Admin löschen konnten.

                    Niemand hat ein Problem, wenn du die möglichen Werte mehr einschränkst als ioBroker dies tut, aber alle Adapter kann man nicht dazu zwingen - das gäbe ganz viele (unnötige) Anpassungen in den bestehenden Objektbäumen - und damit Anpassungen in zahllosen Skripten.

                    haus-automatisierungH Offline
                    haus-automatisierungH Offline
                    haus-automatisierung
                    Developer Most Active
                    wrote on last edited by
                    #9

                    @unclesam sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

                    aber alle Adapter kann man nicht dazu zwingen

                    Das war ja auch nicht die Idee. Sondern eher ein allgemeine Funktion mit in die adapter.js aufzunehmen, welche man nutzen kann, aber nicht muss. Problematisch wird natürlich, wenn man diese nachträglich anpasst und sich dann in allen Projekten die Datenpunkte ändern... Man müsste also im ersten Wurf die perfekte Definition hinbekommen.

                    Also nicht so einfach.

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    jpgorganizerJ 1 Reply Last reply
                    0
                    • haus-automatisierungH haus-automatisierung

                      @unclesam sagte in Funktion um Datenpunkt-Namen "aufzuräumen"?:

                      aber alle Adapter kann man nicht dazu zwingen

                      Das war ja auch nicht die Idee. Sondern eher ein allgemeine Funktion mit in die adapter.js aufzunehmen, welche man nutzen kann, aber nicht muss. Problematisch wird natürlich, wenn man diese nachträglich anpasst und sich dann in allen Projekten die Datenpunkte ändern... Man müsste also im ersten Wurf die perfekte Definition hinbekommen.

                      Also nicht so einfach.

                      jpgorganizerJ Offline
                      jpgorganizerJ Offline
                      jpgorganizer
                      wrote on last edited by
                      #10

                      ich nutze encodeURIComponent(str) mit einer daran anschließenden Sonderbehandlung für die dann ggfs. enthaltenen %-Zeichen

                      Bitte keine Fragen per PN, die gehören ins Forum!

                      ioBroker
                      smartgarden Adapter für GARDENA smart system
                      Plattform: Raspberry Pi OS Linux 12 (bookworm), Node.js: v18.18.2, NPM: 9.8.1

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      368

                      Online

                      32.7k

                      Users

                      82.5k

                      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