Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] javascript Grundlage Berechnung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] javascript Grundlage Berechnung

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

      Hallo zusammen,

      habe eine Anfängerfrage zum Thema Javascript und Berechnung einzelner Werte.

      Ich würde gerne zwei Werte miteinander multiplizieren und diese in eine neue Variable schreiben.

      Die Werte kommen aus CCU Variablen. Habe hierzu schon das Forum gewälzt und mir dieses zusammen gebastelt:

      createState('Stromkosten_laufende_Woche', 0);
      createState('Stromkosten_letzte_Woche', 0);
      
      var Preis = getState("hm-rega.0.7609").val;
      var SVaW = getState("hm-rega.0.7027").val; //Strom Verbrauch aktuelle Woche
      var SVlW = getState("hm-rega.0.7206").val; //Strom Verbrauch letzte Woche
      
      function laufendeWoche() {
      	var SklaW = Preis * SVaW;
      	setState('javascript.0.Stromkosten_laufende_Woche', SklaW);
      	}
      
      function letzteWoche() {
      	var SkleW = Preis * SVaW;
      	setState('javascript.0.Stromkosten_letzte_Woche', SkleW);
      	}
      
      

      Leider funktioniert dieses nicht so richtig.

      Könnt ihr mir sagen was im Script falsch ist und wie ich es richtig machen muss bzw. es am einfachsten ausführen kann?

      Mfg

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Du berechnest die Wochenpreise innerhalb von Funktionen. Damit Funktionen ausgeführt werden, müssen sie aufgerufen werden, z.B. bei Script start:

        ...
        
        laufendeWoche();
        letzteWoche();
        
        

        Das genügt, wenn man das Script zykllsch startet (Cron).

        1 Reply Last reply Reply Quote 0
        • 0
          0018 last edited by

          Ah ok. Habe es jetzt die funtionen rausgelassen.

          createState('Stromkosten_laufende_Woche', 0);
          createState('Stromkosten_letzte_Woche', 0);
          
          var Preis = getState("hm-rega.0.7609").val;
          var SVaW = getState("hm-rega.0.7027").val; //Strom Verbrauch aktuelle Woche
          var SVlW = getState("hm-rega.0.7206").val; //Strom Verbrauch letzte Woche
          
          	var SklaW = Preis * SVaW;
          	setState('javascript.0.Stromkosten_laufende_Woche', SklaW);
          
          	var SkleW = Preis * SVlW;
          	setState('javascript.0.Stromkosten_letzte_Woche', SkleW);
          
          

          jetzt klappt auch die Berechnung.

          Wie bekomme ich es hin das die Berechnung immer neu angestoßen wird wenn sich die Werte in der CCU Variable ändern?

          1 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            @0018:

            Ah ok. Habe es jetzt die funtionen rausgelassen.

            createState('Stromkosten_laufende_Woche', 0);
            createState('Stromkosten_letzte_Woche', 0);
            
            var Preis = getState("hm-rega.0.7609").val;
            var SVaW = getState("hm-rega.0.7027").val; //Strom Verbrauch aktuelle Woche
            var SVlW = getState("hm-rega.0.7206").val; //Strom Verbrauch letzte Woche
            
            	var SklaW = Preis * SVaW;
            	setState('javascript.0.Stromkosten_laufende_Woche', SklaW);
            
            	var SkleW = Preis * SVlW;
            	setState('javascript.0.Stromkosten_letzte_Woche', SkleW);
            
            

            jetzt klappt auch die Berechnung.

            Wie bekomme ich es hin das die Berechnung immer neu angestoßen wird wenn sich die Werte in der CCU Variable ändern? `

            createState('Stromkosten_laufende_Woche', 0);
            createState('Stromkosten_letzte_Woche', 0);
            
            var PreisID = "hm-rega.0.7609";
            var SVaW_ID = "hm-rega.0.7027"; //Strom Verbrauch aktuelle Woche
            var SVlW_ID = "hm-rega.0.7206";  //Strom Verbrauch letzte Woche
            
            function laufendeWoche() {
               setState('Stromkosten_laufende_Woche', getState(PreisID).val * getState(SVaW_ID).val);
            }
            
            function letzteWoche() {
               setState('Stromkosten_letzte_Woche', getState(PreisID).val * getState(SVlW_ID).val);
            }
            
            on(SVaW_ID, laufendeWoche);
            on(SVlW_ID, letzteWoche);
            on (PreisID, function () {
                laufendeWoche();
                letzteWoche();
            });
            
            
            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @0018:

              Wie bekomme ich es hin das die Berechnung immer neu angestoßen wird wenn sich die Werte in der CCU Variable ändern? `

              ...
              
              on("hm-rega.0.7027", function(dp){  // Änderung des Wertes für aktuelle Woche
                  setState('javascript.0.Stromkosten_laufende_Woche', Preis * dp.state.val);
              });
              
              on("hm-rega.0.7206", function(dp){  // Änderung des Wertes für letzte Woche
                  setState('javascript.0.Stromkosten_letzte_Woche', Preis * dp.state.val);
              });
              
              on("hm-rega.0.7609", function(dp) {  // Preisänderung
                  Preis = dp.state.val;
              });
              
              
              1 Reply Last reply Reply Quote 0
              • 0
                0018 last edited by

                Super, funktioniert wunderbar 😄

                Danke!

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

                Support us

                ioBroker
                Community Adapters
                Donate

                1.0k
                Online

                31.7k
                Users

                79.7k
                Topics

                1.3m
                Posts

                3
                6
                1139
                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