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

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    178

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.4k

Funktion um Datenpunkt-Namen "aufzuräumen"?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
datenpunkt erstellen
10 Beiträge 3 Kommentatoren 919 Aufrufe 3 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.
  • haus-automatisierungH Online
    haus-automatisierungH Online
    haus-automatisierung
    Developer Most Active
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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 Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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 Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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 Online
                haus-automatisierungH Online
                haus-automatisierung
                Developer Most Active
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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 Online
                    haus-automatisierungH Online
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 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

                      701

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      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