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. Skripten / Logik
  4. GetState.val Nachkommastellen festlegen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

GetState.val Nachkommastellen festlegen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 4 Kommentatoren 2.9k Aufrufe
  • Ä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.
  • 0 Offline
    0 Offline
    0018
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich lasse mir aktuell diverse Werte via Befehl über Telegram ausgeben. Die Werte haben allerdings 4 bis 5 Nachkommastellen.

    Gibt es die Möglichkeit die Nachkommastelle festzulegen?

    Folgenden Code verwende ich:

    var slaid = "hm-rega.0.7029"/*Strom Leistungsaufnahme aktuell*/;
    var sla = getState(slaid).val;
    
    

    sla lasse ich mir dann per Telegram Befehl schicken.

    Welche Möglichkeiten habe ich um den Wert auf 2 Nachkommastellen zu begrenzen bzw. kann ich das auch anders lösen?

    Mfg

    Mfg
    0018

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Man kann den Wert in einen String mit vorgegebener Anzahl an Nachkommastellen (im Beispiel 2) umwandeln:

      var slaid = "hm-rega.0.7029"/*Strom Leistungsaufnahme aktuell*/;
      var sla = getState(slaid).val.toFixed(2) + ' W';
      

      und auch noch eine Maßeinheit mitgeben.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • 0 Offline
        0 Offline
        0018
        schrieb am zuletzt editiert von
        #3

        Super vielen Dank!

        Werde es nachher gleich mal umsetzen [emoji2]

        Mfg
        0018

        1 Antwort Letzte Antwort
        0
        • 0 Offline
          0 Offline
          0018
          schrieb am zuletzt editiert von
          #4

          Funktioniert das ganze auch bei setState? Würde gerne bei einer Funktion auch die Nachkommastelle mit angeben, da ich aktuell im Ergebnis 6 Nachkommastellen habe.

          function ZPDAY() {
             setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', (getState(SVD).val / getState(ZSZD).val) *100);
          }
          
          

          mfg

          Mfg
          0018

          1 Antwort Letzte Antwort
          0
          • P Offline
            P Offline
            pix
            schrieb am zuletzt editiert von
            #5
            function ZPDAY() {
               val wert = (getState(SVD).val / getState(ZSZD).val) *100;
               setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', wert.toFixed(2));
            }
            
            

            Gruß

            Pix

            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

            1 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #6

              @pix:

              function ZPDAY() {
                 val wert = (getState(SVD).val / getState(ZSZD).val) *100;
                 setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', wert.toFixed(2));
              }
              
              

              Gruß

              Pix `
              Ich empfehle toFixed nicht zu benutzen. Da Ergebnis von toFixed ist "string".

              Besser

              setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', Math.round(wert * 100) / 100);
              
              
              1 Antwort Letzte Antwort
              0
              • 0 Offline
                0 Offline
                0018
                schrieb am zuletzt editiert von
                #7

                @Bluefox:

                Ich empfehle toFixed nicht zu benutzen. Da Ergebnis von toFixed ist "string".

                Besser

                setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', Math.round(wert * 100) / 100);
                
                ```` `  
                

                Wie genau muss ich meine Berechnung

                (getState(SVD).val / getState(ZSZD).val) *100
                
                

                hier mit einbauen? Wie wird die Anzahl der Nachkommastelle hier definiert?

                Ist (wert *100) / 100 nicht wieder = wert?

                mfg

                Mfg
                0018

                1 Antwort Letzte Antwort
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  schrieb am zuletzt editiert von
                  #8

                  @0018:

                  @Bluefox:

                  Ich empfehle toFixed nicht zu benutzen. Da Ergebnis von toFixed ist "string".

                  Besser

                  setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', Math.round(wert * 100) / 100);
                  
                  ```` `  
                  

                  Wie genau muss ich meine Berechnung

                  (getState(SVD).val / getState(ZSZD).val) *100
                  
                  

                  hier mit einbauen? Wie wird die Anzahl der Nachkommastelle hier definiert?

                  Ist (wert *100) / 100 nicht wieder = wert?

                  mfg `

                  var val = Math.round((getState(SVD).val / getState(ZSZD).val) *10000) / 100;
                  
                  Z = 6.7899;
                  6.7899 * 100 = 678.99;
                  Math.round(678.99) = 679;
                  679 / 100 = 6.79
                  
                  Math.round(Z * 100) / 100 = 6.79
                  
                  1 Antwort Letzte Antwort
                  0
                  • 0 Offline
                    0 Offline
                    0018
                    schrieb am zuletzt editiert von
                    #9

                    Perfekt, danke :)

                    Mfg
                    0018

                    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

                    327

                    Online

                    32.6k

                    Benutzer

                    82.2k

                    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