NEWS
[gelöst] javascript Grundlage Berechnung
-
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
-
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).
-
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?
-
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(); });
-
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; });
-
Super, funktioniert wunderbar
Danke!