Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    5
    1
    66

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    839

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

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

                    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                    Registrieren Anmelden
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    436

                    Online

                    32.8k

                    Benutzer

                    82.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