NEWS
Smartmeter protokollierung findet den Datenpunkt nicht
-
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. -
@femi sagte in Smartmeter protokollierung findet den Datenpunkt nicht:
getState "StromZaehler SML Total_in.value" not found (3)
dann zeig mal diesen State in den Objekten
-
@femi sagte: getState "StromZaehler SML Total_in.value" not found (3)
Das ist keine gültige ID!
-
@Homoran
meinst du das? -
@femi sagte in Smartmeter protokollierung findet den Datenpunkt nicht:
meinst du das?
ja!
und der DP heisst aberSML_Total_in
-
@femi
Von diesem DP muss die komplette ID übergeben werden. Oder man ermittelt sie mit getIdByName().var idHAGTotal = getIdByName("StromZaehler SML Total_in");
-
Funktioniert leider beides nicht, hab erst nur den Datenpunkt geändert auf SML_Total_in.value und dann noch mal auf "sonloff.0/admin/SML_Total_in.value"
Wie funktioniert das mit dem getIdByName?
-
@femi sagte: Wie funktioniert das mit dem getIdByName?
So wie gezeigt (Zeile 9 ersetzen).
-
@femi sagte in Smartmeter protokollierung findet den Datenpunkt nicht:
"sonloff.0/admin/SML_Total_in.value"
sonloff ?
-
@ralla66
oh, stimmt, Tippfehler -
@femi sagte: "sonloff.0/admin/SML_Total_in.value"
Gültige ID: "sonoff.0.admin.SML_Total_in"
Wirklich unter "admin"? -
@paul53 said in Smartmeter protokollierung findet den Datenpunkt nicht:
sonoff.0.admin.SML_Total_in
getState "sonoff.0.admin.SML_Total_in.value" not found (3)
-
@femi sagte: "sonoff.0.admin.SML_Total_in.value"
Lasse ".value" weg! Die ID endet mit ".SML_Total_in".
-
Damit funktioniert es jetzt:
sonoff.0.StromZaehler.SML_Total_inVielen Dank an alle!!