Hallo Zusammen,
ich habe seit einiger Zeit das Problem daß die Protokollierung meines Stromzählers nicht mehr funktioniert.
Ich versuche das mti dem bekannten Script zu protokollieren:
var cronH = "0 * * * *";
var cronD = "59 23 * * *";
var cronW = "0 0 * * 1";
var cronM = "0 0 1 * *";
var idHAGTotH = "0_userdata.0.Stromzähler.tmp.Total-h";
var idHAGTotD = "0_userdata.0.Stromzähler.tmp.Total-d";
var idHAGTotW = "0_userdata.0.Stromzähler.tmp.Total-w";
var idHAGTotM = "0_userdata.0.Stromzähler.tmp.Total-m";
var idHAGTotal = "StromZaehler SML Total_in.value"; /*Stromverbrauch insgesammt*/
var idHAGZielH = "0_userdata.0.Stromzähler.Hour";
var idHAGZielD = "0_userdata.0.Stromzähler.Day";
var idHAGZielW = "0_userdata.0.Stromzähler.Week";
var idHAGZielM = "0_userdata.0.Stromzähler.Month";
var debug = true;
var DPArray = [idHAGTotH, idHAGTotD , idHAGTotW, idHAGTotM, idHAGZielH, idHAGZielD, idHAGZielW, idHAGZielM];
var DPUnit = "kWh";
DPArray.forEach(function(wert, index, array) {
var DPType = wert.split(".");
var DPDescr = "Power consumption of " + (DPType[DPType.length - 1]);
if(index > 3) DPUnit = "Wh";
createState(wert, 0, {
name: DPDescr,
desc: DPDescr,
type: 'number',
unit: DPUnit,
role: 'value'
});
});
function haupt (VorId, ZielId) {
var nVorwert = getState(VorId).val;
var nAktuell = getState(idHAGTotal).val;
var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100;
setState(ZielId, nDiff, true);
if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
var shandler = on ({id: ZielId, change: 'any'}, function(data) {
setState(VorId, (nAktuell*10)/10, true);
unsubscribe(shandler);
});
}
// regelmässige Wiederholungen
// -----------------------------------------------------------------------------
schedule(cronH, function () {
haupt(idHAGTotH, idHAGZielH);
});
schedule(cronD, function () {
haupt(idHAGTotD, idHAGZielD);
});
schedule(cronW, function () {
haupt(idHAGTotW, idHAGZielW);
});
schedule(cronM, function () {
haupt(idHAGTotM, idHAGZielM);
});
aber es kommt immer wieder diese Fehlermeldung im Log:
getState "StromZaehler SML Total_in.value" not found (3)
Ich habe schon verschiedene Sachen getestet aber ich komme nicht weiter.
Die Bezeichnung habe ich aus den Objekten kopiert und .value hinten dran gesetzt.