Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Zahlenformate in Node-RED Dashboard

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Zahlenformate in Node-RED Dashboard

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active last edited by mickym

      Ich betreibe node-red auch als iobroker-Adapter und bin ein wirklicher Fan dieses Programms und würde auch ungern auf einen anderen Logik-Prozessor (blockly etc.) umsteigen.
      Ich habe nur - weder in der node-red Dokumentation - noch hier irgendeine Möglichkeit gefunden oder weiß nicht, wie ich das deutsche Zahlenformat - zumindest im Dashboard - umstellen kann.

      Die Punkte - bei Dezimalzahlen da gewöhnt man sich ja noch dran - aber das Komma als Tausender Trennzeichen finde ich in der Darstellung störend. Kann mir hier jemand eine Beschreibung geben, wie man das umstellen kann?

      Danke für die Hilfe im Voraus!

      1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active last edited by

        Keiner eine Idee?

        F 3 Replies Last reply Reply Quote 0
        • F
          frankyboy73 @mickym last edited by

          @mickym
          Hi, ich weiß wohl wie man nen Punkt durch ein Komma ersetzt. Dazu nimmst du ne Funktion Node und da kommt folgendes rein. Je nach dem wie deine Message heißt natürlich, in diesem Beispiel gehe ich von msg.payload aus.

          msg.payload = msg.payload.replace('.', ',');
          return msg;
          

          Wie man allerdings den Punkt bei den Tausendern entfernt, weiß ich leider nicht. Hat mich auch noch nie gestört, da ich bei Tausenden nicht mehr mit Nachkommastellen arbeite oder sie Runde falls es Nachkommastellen gibt. Aber das müsste eigentlich auch jemand wissen der sich mit Javascript gut auskennt.

          1 Reply Last reply Reply Quote 0
          • F
            frankyboy73 @mickym last edited by

            @mickym
            Hi, habs gerade mal getestet, das hier würde dir den Punkt entfernen, aber wenn du nen Tausender Wert mit Nachkommastelle hast, ist der Punkt für Komma auch weg. Oder wenn du die Nachkommastelle nicht brauchst, kannst du den Wert vorher Runden.

            msg.payload = msg.payload.replace('.', '');
            return msg;
            
            msg.payload = Math.round(msg.payload);
            msg.payload = msg.payload.replace('.', '');
            return msg;
            
            1 Reply Last reply Reply Quote 0
            • F
              frankyboy73 @mickym last edited by

              @mickym
              Hi, habe noch weiter getestet, da wird wohl immer nur der erste Punkt weggenommen, der zweite bleibt. Dann wäre das ja,das wonach du suchst.
              Oder du nimmst das hier, dann wird der erste Punkt weggenommen und der zweite durch ein Komma ersetzt.

              msg.payload = msg.payload.replace('.', '');
              msg.payload = msg.payload.replace('.', ',');
              return msg;
              
              1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active last edited by

                Hi @frankyboy73 vielen Dank - aber das ist leider nicht das was ich suche. Ich will die Zahlenformate nicht durch Wandlung in Strings und anschließender Stringmanipulation erreichen.

                Das Problem ist die Darstellung in dem Dashboard. Da aber zum Beispiel das Gauge oder auch andere Elemente nur Zahlen als Input verarbeiten um korrekt zur funktionieren, ist also die Stringmanipulation keine Lösung. Ich werde mal den Titel ändern wenn das noch geht.

                Ein Möglichkeit wären ja die Angular - Filter wie in den Node-Beschreibungen beschrieben.

                The msg.payload is searched for a numeric value and is formatted in accordance with the defined Value Format, which can then be formatted using Angular filters.
                For example : {{value | number:1}}% will round the value to one decimal place and append a % sign.

                Im Prinzip muss ja nur das Node-Red Dashboard lokalisiert werden.

                Ich kann hier immer nur was der I18n libary zu lesen - das übersteigt aber meinen Horizont, wie alles zusammenhängt.

                F 1 Reply Last reply Reply Quote 0
                • F
                  frankyboy73 @mickym last edited by frankyboy73

                  @mickym
                  Ah, ok. Da kann ich dir leider nicht weiterhelfen.
                  Das könnte man allerdings auch alles in nur einer Funktion Node umarbeiten und wieder zurück in Number konvertieren.
                  Und nur zur Info, ich gebe auf meine Dashboard Elemente eigentlich immer nur Strings, auch auf Gauge, klappt bei mir wunderbar.
                  Gauge1.JPG
                  Gauge2.JPG
                  Edit:
                  Falls benötigt hier die Umwandlung von Number in String, Punkt entfernen, Punkt durch Komma ersetzen und zurück in Number.

                  msg.payload = (String(msg.payload))
                  msg.payload = msg.payload.replace('.', '');
                  msg.payload = msg.payload.replace('.', ',');
                  msg.payload = (Number(msg.payload))
                  return msg;
                  

                  Umwandlung1.JPG

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @frankyboy73 last edited by mickym

                    @frankyboy73
                    Oh Du hast mir ganz unbewusst weitergeholfen - ich habe zwar nicht mehr genau in Erinnerung wie der Gauge funktioniert, aber dass er auch Zeichenfolgen frisst - liegt wohl daran, dass mit {{value}} impliziert, eine Zahlenkonvertierung stattfindet. Ich habe nämlich festgestellt, dass ich diesen auch oft Strings als Futter gebe. 😉 Und ich hab dann mal bei mir geschaut, woher dieses blöde 1000er Komma kommt und das liegt wohl an diesem blöden Angular Filter - der bei mir so eingestellt war: {{value | number:0}}

                    Der erzeugt dann das 1000er Komma.

                    Aber genau, dass wurde irgendwo beschrieben, dass dieser Angular Filter auch irgendwie auf Ländereinstellungen zugreifen kann.

                    Aber Du hast mir insofern geholfen, dass diese 1000er Trennung nur durch den Filter kommt, mit dem Punkt als Dezimalzeichen kann ich leben. 🙂

                    Danke!

                    Aber vielleicht gibts ja trotzdem jemand, der es weiß, wie man diesen Angular Filtern - deutsches Verhalten beibringt. 😉
                    irgendwie scheint das zu gehen - aber ich werde nicht schlau draus: I18n / localization of UI / change locale for angular filters (currency, number, …)

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      rewenode @mickym last edited by

                      @mickym Ganz generell kannst du hier mal lesen
                      https://discourse.nodered.org/t/number-in-german-format-in-dashboard-100-235-25-how-to/23236/14

                      Leider etwas umständlich, geht aber.

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @rewenode last edited by

                        @rewenode Danke 🙂 - Aber ich werde das erst mal hinten anstellen. Insbesondere da ich node-red ja als Adapter laufen habe, müsste ich ja dann wieder die andere settings.js modifizieren usw. und dem gegenüber ist der Nutzen dann minimal.

                        Aber nochmals vielen Dank für Deine Recherche.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        830
                        Online

                        31.6k
                        Users

                        79.6k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        11746
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo