Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Datenpunkt mit Tausender-Trennzeichen formatieren ?

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    [gelöst] Datenpunkt mit Tausender-Trennzeichen formatieren ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      schweiger2 last edited by schweiger2

      Hallo zusammen,

      ich möchte einen selbst erzeugten Datenpunkt, der bereits im Format "number" ohne Dezimalpunkt vorliegt, mit einem Dezimalpunkt in iQontrol anzeigen.

      Weder in iQontrol noch in ioBroker habe ich den Weg gefunden, das zu realisieren.

      Was kann ich tun ?

      Besten Dank für eure Hilfe

      Codierknecht mickym 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @schweiger2 last edited by

        @schweiger2
        Wo kommt denn der Wert für den DP her? Aus einem Script?
        Dann könntest Du den DP auf "string" umstellen und im Script formatieren.
        Solange der nur für die Anzeige verwendet wird, wäre das sogar halbwegs legitim.

        Ansonsten bist Du hier im falschen Unterforum, dann das hat ja nix mit "ioBroker Allgemein" sondern mit "iQontrol" - also "Visualisierung" zu tun.

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

          @schweiger2 Einfach den Wert durch xx teilen. Also 2425/100=24.25?

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

            @mickym
            Ich vermute eher, er möchte "2425" als "2425,0" angezeigt bekommen.
            Kann mich aber auch täuschen.

            S 1 Reply Last reply Reply Quote 0
            • S
              schweiger2 @Codierknecht last edited by

              @codierknecht

              nee, es geht um den Dezimalpunkt, also 2425 anzuzeigen als 2.425.

              Der Datenpunkt kommt aus einem Blockly, was wiederum einen Wert aus Tasmota ausliest.

              Codierknecht mickym 3 Replies Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @schweiger2 last edited by

                @schweiger2
                Du meinst ein Tausender-Trennzeichen?

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

                  @schweiger2 Na wie gesagt dann teil halt den Wert in Deinem Blockly durch 1000 bevor den Datenpunkt schreibst.

                  1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @schweiger2 last edited by Codierknecht

                    @schweiger2
                    Meine Glaskugel sagt, Du willst W in kW umrechnen ... dann so wie @mickym schreibt.
                    Das ist aber dann umrechnen und nicht formatieren.

                    mickym S 2 Replies Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @Codierknecht last edited by

                      @codierknecht Man kann auch JSONATA nehmen. 😉

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

                        @mickym
                        Man könnte auch direkt in einem Alias umrechnen statt da per Script ranzugehen 😉

                        mickym 1 Reply Last reply Reply Quote 0
                        • S
                          schweiger2 @Codierknecht last edited by

                          @codierknecht

                          Ich bin wirklich sparsam mit meinen Auskünften gewesen.

                          Der Verbrauch wird als 6123 bzw. 39523 angezeigt, sowohl im DP als auch in iQontrol, was aber üblicherweise übernimmt, was es bekommt. Deswegen war mein Grundgedanke, den DP passend zu formatieren.

                          Mir geht es nicht um die Umrechnung, sondern wirklich nur um die Darstellung als 6.123 bzw. 39.523 W.

                          Codierknecht mickym 2 Replies Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Codierknecht last edited by

                            @codierknecht sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:

                            @mickym
                            Man könnte auch direkt in einem Alias umrechnen statt da per Script ranzugehen 😉

                            Nun nachdem er aber eh schon den Datenpunkt mit Blockly schreibt, ist das dann aber auch kein Vorteil. 😉

                            Codierknecht 1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @schweiger2 last edited by

                              @schweiger2
                              Dann wie gesagt auf string umstellen und im Script formatieren.

                              Oder im iQontrol formatieren, aber da kann ich Dir nicht helfen.

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

                                @mickym sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:

                                Nun nachdem er aber eh schon den Datenpunkt mit Blockly schreibt, ist das dann aber auch kein Vorteil. 😉

                                Doch - spart Script 😉
                                Und wenn der Alias als string angelegt ist, kann er auch gleich formatieren

                                val.toFixed(1)
                                
                                mickym 2 Replies Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @schweiger2 last edited by

                                  @schweiger2 sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:

                                  @codierknecht

                                  Ich bin wirklich sparsam mit meinen Auskünften gewesen.

                                  Der Verbrauch wird als 6123 bzw. 39523 angezeigt, sowohl im DP als auch in iQontrol, was aber üblicherweise übernimmt, was es bekommt. Deswegen war mein Grundgedanke, den DP passend zu formatieren.

                                  Mir geht es nicht um die Umrechnung, sondern wirklich nur um die Darstellung als 6.123 bzw. 39.523 W.

                                  241c56d3-0948-42f7-ab55-c00efc436c92-image.png

                                  Nur halt mal nutzen. 😉

                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                   <variables>
                                     <variable id=")l%w+)z4+^TvOp_d?X%g">Zahl</variable>
                                   </variables>
                                   <block type="variables_set" id="tD3m%PaFkC6u|UUqu;U1" x="163" y="63">
                                     <field name="VAR" id=")l%w+)z4+^TvOp_d?X%g">Zahl</field>
                                     <value name="VALUE">
                                       <block type="math_number" id="ovF7jy6SjAU~khSJ2jW/">
                                         <field name="NUM">39525</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="debug" id="1s5b63Yw]qIMh7%)FwrS">
                                         <field name="Severity">log</field>
                                         <value name="TEXT">
                                           <shadow type="text" id="[9W-GqN}m%}*/p#M0a(/">
                                             <field name="TEXT">test</field>
                                           </shadow>
                                           <block type="convert_jsonata" id="AZbPn];oE6()eSI3X|Vh">
                                             <value name="EXPRESSION">
                                               <shadow type="text" id="$k$Ip|^E9yr=k7tyLKv$">
                                                 <field name="TEXT">$formatNumber($, "#.##0,0 W",{'decimal-separator':',', 'grouping-separator':'.'})</field>
                                               </shadow>
                                             </value>
                                             <value name="TARGET">
                                               <block type="variables_get" id="~%0^J2_Xu8s!F$jm6i[}">
                                                 <field name="VAR" id=")l%w+)z4+^TvOp_d?X%g">Zahl</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                  </xml>
                                  

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

                                    @codierknecht Na wenn ich obigen Befehl noch in den aktualisiere Block eingebe - machte den Kohl nicht fett.

                                    ce6220d8-541b-45bf-adee-1277e0a3b9bd-image.png

                                    Da ist ja dann der Alias nun wirklich keine Ersparnis. ;)- Zudem der originale Wert wahrscheinlich dann eh im sonoff - Adapter liegt und dieses Blockly vielleicht nur für die Ausgabe gemacht wurde.

                                    Aber ich gebe Dir natürlich Recht, wenn er das Blockly nur wegen der Anzeige gemacht hat, dann kann er auch ein Alias mit Konvertierfunktion nutzen. 😉

                                    Codierknecht S 2 Replies Last reply Reply Quote 0
                                    • Codierknecht
                                      Codierknecht Developer Most Active @mickym last edited by Codierknecht

                                      @mickym
                                      Wenn das Script noch mehr berechnet und eh existiert, hast Du sicher Recht.

                                      Wenn es aber nur den Wert aus Tasmota nimmt und woanders hinschreibt, kann man es auch direkt im Alias machen.
                                      Auch JSON auseinandernehmen (z.B. bei MQTT) ist mit den Konvertierungsfunktionen kein Problem.
                                      Dann stehen die Ergebnispunkte hat in alias.0 und nicht in 0_userdata.0.

                                      d36b687f-8483-47ab-aeb2-2ef340d024c3-image.png

                                      Da haben sich mein POST und Dein EDIT gerade überholt 😁

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

                                        @codierknecht Ja habe ich gerade ergänzt. Das muss der Mensch selbst wissen, sonst ist Alias sicher eine elegante Lösung.

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

                                          @codierknecht Ich hab gerade aber nochmal die Definition nachgeschaut. bei toFixed bekommst Du aber keine 1000der Trennzeichen hin, aber ich hab noch eine andere Funktion für den Alias gefunden: 😉

                                          dbc18abc-a26a-49f4-9eff-1f1a785fb085-image.png

                                          also hiermit:

                                          val.toLocaleString("de-DE") 
                                          

                                          wird eine Zahl in deutsches Format (String) konvertiert mit 1000der Punkt und Dezimalkomma.

                                          4dafe598-6f26-4023-a10b-1602d0b99fe6-image.png

                                          Man kann sogar die Opitionen nutzen - also wenn man bei Ganzzahlen trotzdem eine Dezimalstelle haben will, dann schreibt man:

                                          val.toLocaleString("de-DE",{"minimumFractionDigits":1}) 
                                          

                                          f4132168-99c6-46da-bd66-9994e094908d-image.png

                                          Hier ein Verweis auf die Formatierungsmöglichkeiten: https://www.w3schools.com/jsref/jsref_tolocalestring_number.asp

                                          1 Reply Last reply Reply Quote 1
                                          • S
                                            schweiger2 @mickym last edited by

                                            @mickym

                                            Ich habe mit dem gezeigten JSONata-Ausdruck die gewünschte Formatierung weitgehend realisieren können.

                                            Nur die Ausgabe ohne Nachkommastellen und ohne Einheit "W" habe ich bei der 5-stelligen Zahl nicht hinbekommen trotz einiger Modifikationen im "#.##0,0 W".

                                            Dennoch kann ich mit dem Erreichten leben.

                                            Danke sehr.

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

                                            Support us

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

                                            885
                                            Online

                                            32.1k
                                            Users

                                            80.6k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            26
                                            1722
                                            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