NEWS
Konvertierung von Zeichenkette nach Zahl?
-
und wo kommen die Objektnamen rein? und das neu zu schreibende Objekt?
-
Bei der on Subscription oben ist dann obj.state.val der aktuelle Wert und obj.oldState.val der alte.
Ein Objekt setzen kannst du mit setState()
-
setState(XXXXXX)var wert = XXXXXXX parseFloat(obj.state.val) - XXXXXXX parseFloat(obj.oldState.val);
so oder wie? XXXXXX = das Objekt?
-
Du hast doch schon eine gute Erklärung von paul53 bekommen.
viewtopic.php?p=226209#p224599
Wenn du die Grundlagen von einer Programmiersprache nicht kennst, wie man Variablen setzt, etc, dann wird es einfach schwierig dir zu helfen.
Lies dich ein wenig ein und beschäftigte dich mit JavaScript, fange klein an und dann geht der Lernfortschritt schneller, als du denkst. - Oder bleibe bei Blockly, das ist noch einfacher.
-
habe alles probiert. bin wohl zu blöd.
-
on({id: 'javascript.0.Zählerstand_Haus', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('javascript.0.Zählerstand_Haus_Tag_kwh', (getState("javascript.0.Zählerstand_Haus").obj.state.val - getState("javascript.0.Zählerstand_Haus").obj.oldState.val), false, parseInt(2000, 10), false); });
Fehler im log:
error javascript.0 at Object. <anonymous>(script.js.common.Skript_2:4:106)
das möchte ich gerne aber es funktioniert immernoch nicht. kann mir jemand nochmals helfen?</anonymous>
-
on({id: 'javascript.0.Zählerstand_Haus', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('javascript.0.Zählerstand_Haus_Tag_kwh', (getState("javascript.0.Zählerstand_Haus").value - getState("javascript.0.Zählerstand_Haus").oldValue), false, parseInt(2000, 10), false); });
so ist ist im Moment aber es kommt "null kwh" raus. er nimmt also nicht den letzten alten wert sondern 2 mal den gleichen…
Jemand ne Idee wie ich das lösen kann. Vom Zähler bekomme ich nur alle 300 Sekunden den aktuellen Zählerstand geliefert aber nicht die Watt darum der Aufwand.
-
on({id: 'javascript.0.Zählerstand_Haus', change: "any"}, function (obj) { var value = obj.state.val; //das ist der aktuelle Wert var oldValue = obj.oldState.val; // das ist der alte Wert //setState("OBJEKTINDASGESCHRIEBENWERDENSOLL", "WERT") var wert_ausrechnen = obj.state.val - obj.oldState.val; setState(obj.id, wert_ausrechnen); //obj.id ist das, worauf die Subscription reagiert hat - also 'javascript.0.Zählerstand_Haus'. wert_ausrechnen ist die Variable in der Zeile über dieser hier });
Bitte beschäftige dich mehr mit Javascript. Es scheint, dass du noch keine andere Programmiersprachen kennst, deswegen würde ich dir empfehlen Blockly zu benutzen. Da brauchst du dir das alles nicht merken.
-
das ich den aktuelle Leistung ermitteln könnte.(nicht auslesbar aus meinen Zähler/vom betreiber deaktiviert) `
https://forum.iobroker.net/viewtopic.php?f=20&t=6244#p64454. -
danke das hat mir sehr geholfen. Jetzt läuft alles wie ich es wollte!!!
Habe nur meine Variablen eingetragen!