Antwort
Jan 14, 2019 - 03:37
Welche variablen du addieren willst hilft wenig, ohne zu sagen wo die variablen gespeichert sind...mediola gateway, ccu oder neo server.
Wenn gateway oder neo server...geht das nur wenn du auch den automation manager hast. Mit der ccu sollte es gehen, musst dich erstmal hier melden und angeben was du benutzst.
Wenn gateway oder neo server...geht das nur wenn du auch den automation manager hast. Mit der ccu sollte es gehen, musst dich erstmal hier melden und angeben was du benutzst.
Von
Hallo zdenko33, es sind auf der CCU2 gespeicherte Variablen.
Genau sind es zeichenketten die addiert werden sollen
Von
zeig mal das script welches die variablen erstellt
Von
Dieses Script erzeugt die jeweils eine der 5 variablen wo der preis und kwh stehen. Das habe ich aus einem anderen Post von dir:
var zahl = dom.GetObject("BidCos-RF.LEQ0928193:2.ENERGY_COUNTER").Value();
var preis = ((zahl / 1000)*0.28).ToString(2);
var kw = (zahl / 1000).ToString(3);
dom.GetObject("Router_Strompreis").State(preis);
dom.GetObject("Router_kwh").State(kw);
Und mit diesem Script versuche ich zu addieren:
var a = dom.GetObject("Alexa_kwh").Value().ToString(3);
var b = dom.GetObject("PCJan_kwh").Value().ToString(3);
var c = dom.GetObject("PCWhz_kwh").Value().ToString(3);
var d = dom.GetObject("TV_kwh").Value().ToString(3);
var e = dom.GetObject("Router_kwh").Value().ToString(3);
var f = a+b+c+d+e;
dom.GetObject("Leistung_gesamt_Steckdosen_in_khw").State(f);
das ergebnis ist das die zahl nicht addiert sondern aneinandergereiht wird
Von
die einfachste lösung ist die variablen als zahl zu definieren und nicht als zeichenkette
und in dem script bei:
var preis = ((zahl / 1000)*0.28).ToString(2);
var kw = (zahl / 1000).ToString(3);
so zu ändern
var preis = ((zahl / 1000)*0.28);
var kw = (zahl / 1000);
Von
Danke, ich werde es mal versuchen
Von
kannst auch so versuchen
string a = dom.GetObject("Alexa_kwh");
var stringa = a.Value().StrValueByIndex("x", 0);
zahla = 0.0 + stringa;
string b = dom.GetObject("PCJan_kwh");
var stringb = a.Value().StrValueByIndex("x", 0);
zahlb = 0.0 + stringb;
var summe = zahla + zahlb;
WriteLine (summe);
das ist für die ersten 2
var a = dom.GetObject("Alexa_kwh").Value()
var b = dom.GetObject("PCJan_kwh").Value()
einfach erweitern für alle
Von
also mit der ersten korrektur funktioniert es:-)
Vielen Dank.
Gibt es vllt noch eine möglichkeit nachkomma zu ändern? also zwei stellen?
Von
Hat sich erledigt..hatte vergessen die ergebnis variable auf zahl umzustellen :-D
Von
dom.GetObject("Leistung_gesamt_Steckdosen_in_khw").State(summe).ToString(3);
Von
man kann auch einfach im neo die dezimalstellen anpassen über formatierung
Von
Vielen Dank zdenko33..du hast mir sehr geholfen :-)
Von
super :)
Von
Hallo zusammen. ich habe eigentlich das identische Problem. Meine Variablen (Euro-Werte, kWh oder Temperaturen) werden nicht addiert. Die Daten der Variablen stammen sowohl aus der CCU als auch aus dem Gateway.
Hier zum Beispiel hole ich mir die Temperatur aus der CCU:
getDeviceStatus(
"0. Keller",
"0. HK Partykeller",
{"value":"themoActualTemp","extMeta":"-10.0-56.0","scale":"0.1"},
function(err, status_keller) {
err && console.error(err.message);
console.log('Temperatur Partykeller = '+ status_keller + ' °C');
Genauso wie mehrer weitere.
Diese wollte ich dann addieren. Wie definiere ich denn eine Variable als Zahl und an welcher Stelle am besten?
Sorry für die vielleicht doofe Frage...
Stefan
Von
Vielleicht noch als Ergänzung. So schaut es dann später aus:
var Summe = status_keller+status_couch+status_treppenhaus+
Neuen Kommentar hinzufügen