@alen ich benutze Aliasse. Ich hab n Javascript das bei onChange die werte aus dem Fronius in diesen Datenpunkt schreibt, falls sichd ann die sChnittstelle ändert muss ich nur diese stelle ändern statt alle. Stromverbrauch wird inkrementell berechnet:
Hatte da neulich noch n Fehler korrigiert:
createState("javascript.0.Zaehler.StromZaehler_abs", 0.0, {name: "Zaehlerstand Stromzähler", type: 'number', unit: 'kWh'});
//Initialwerte für neustart des Scriptes
var total_oldPlus = getState("fronius.0.meter.0.EnergyReal_WAC_Plus_Absolute").val;
var total_oldMinus = getState("fronius.0.meter.0.EnergyReal_WAC_Minus_Absolute").val;
on({id: 'fronius.0.meter.0.EnergyReal_WAC_Plus_Absolute', change: "any"}, function (obj) {
var total_new = getState("fronius.0.meter.0.EnergyReal_WAC_Plus_Absolute").val; //New Value speichern
var diff = (total_new - total_oldPlus);
var zaehlerstand_alt = getState("javascript.0.Zaehler.StromZaehler_abs").val; //alten zählerstand abfragen
setState("javascript.0.Zaehler.StromZaehler_abs", Math.round (1000*zaehlerstand_alt+diff)/1000); //Auf drei nachkommastellen runden
total_oldPlus = total_new; //Old Value speichern
});
on({id: 'fronius.0.meter.0.EnergyReal_WAC_Minus_Absolute', change: "any"}, function (obj) {
var total_new = getState("fronius.0.meter.0.EnergyReal_WAC_Minus_Absolute").val; //New Value speichern
var diff = (total_new - total_oldMinus);
var zaehlerstand_alt = getState("javascript.0.Zaehler.StromZaehler_abs").val; //alten zählerstand abfragen
setState("javascript.0.Zaehler.StromZaehler_abs", Math.round (1000*zaehlerstand_alt-diff)/1000); //Auf drei nachkommastellen runden
total_oldMinus = total_new; //Old Value speichern
});