NEWS
Skript schreibt nicht in Datenpunkte
-
Hallo
Ich such seit einigere Zeit ein Skript am liebsten Blockly das meinen momentanen Stromzählerstand
auswertet und mir den Verbrauch Stunde Tag Monat Jahr in einen Datenpunkt schreibt.
Am liebsten wäre es mir gewesen wenn ich für jede Stunde oder Tag einen Datenpunkt hätte um meinen Verbrauch auf die Schliche zu kommen.
Im Moment teste ich ein Skript aus dem Netz das aber meine Datenpunkte die es angelegt hat werden mit dem Skript nicht gefüllt. Mein Datenpunkt vom Stromzähler erhöht sich wie er es soll. smartmeter.0.1-0:1_8_0__255.value
Bin dankbar für jede Hilfevar 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 = "smartmeter.0.1-0:1_8_0__255.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 = false; 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); });
-
@fraenki23
Probier mal Adapter "Statistics" -
@fraenki23 sagte in Skript schreibt nicht in Datenpunkte:
var shandler = on ({id: ZielId, change: 'any'}, function(data) { setState(VorId, (nAktuell*10)/10, true); unsubscribe(shandler); });
On ist doch ein trigger.
Wieso setzt du dieses einer Variable gleich ? -
@fraenki23
Probier mal den Adapter "SourceAnalytics".
Der ist genau für diese Aufgabenstellung gemacht. -
@bahnuhr Hallo
Danke für deine Antwort. Ich habe nur das Skript aus dem Netz mit meinem Datenpunkt vom Stromzähler gefüllt. Der Rest sollte funktionieren. Wie Du aber schreibst kann er nicht.
Könntest Du das Skript an dieser Stelle ändern dass es funktionieren sollte.
Danke Fränki -
@codierknecht Hallo
Danke für den Tip. Habe ich auch schon am laufen. Leider mit komischen Werten .
Danke Fränki -
@fraenki23 sagte in Skript schreibt nicht in Datenpunkte:
Skript aus dem Netz
woher ?
Und das war ein Script für iob? -
@fraenki23
Wozu soll der Trigger in der Funktion gut sein? Die Klammern sind auch umsonst, wenn nicht gerundet wird. Vorschlag:function haupt (VorId, ZielId) { var nVorwert = getState(VorId).val; var nAktuell = getState(idHAGTotal).val; var nDiff = (nAktuell - nVorwert) * 1000; setState(ZielId, nDiff, true); if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff); setState(VorId, nAktuell, true); }
-
@bahnuhr Hallo
Hier der Link: https://www.smarthomejetzt.de/script-fuer-die-berechnung-von-stunden-tages-wochen-monats-und-jahresverbraeuchen/MOD-EDIT: externen Link sichtbar gemacht
-
@fraenki23 sagte in Skript schreibt nicht in Datenpunkte:
@bahnuhr Hallo
Hier der Link Skript Stromzähler geht nichtTja, wieder ein Beispiel für ein Script aus dem Netz was offensichtlich nicht läuft.
-
@fraenki23 externe Links immer kennzeichnen!!
-
@homoran wie kenzeichne ich dies. Im Textfeld für den Link exteren Quelle reinschreiben?
-
@fraenki23 sagte in Skript schreibt nicht in Datenpunkte:
@homoran wie kenzeichne ich dies. Im Textfeld für den Link exteren Quelle reinschreiben?
ich hab es mal geändert
-
Das Skript addiert die Verbrauchs-Tageswerte.
Ich habe jedoch nur die Möglichkeit den aktuellen Hausverbrauch abzufragen.Gibt es dazu auch ne Möglichkeit dennoch den täglichen Verbrauch zu erhalten?
Ev. auch ein anderes Skript etc.Danke für Eur eHilfe.
Patrick
-
@valbuz sagte in Skript schreibt nicht in Datenpunkte:
Gibt es dazu auch ne Möglichkeit dennoch den täglichen Verbrauch zu erhalten?
Ev. auch ein anderes Skript etc.Adapter SourceAnalytics
-
@codierknecht Danke, schau ich mir an.
-
@codierknecht
Habe mir den Adapter nun installiert und konfiguriert.
Es sollten nun 3 Werte berechnet werden.In den Objekten finde ich seit gestern keine Einträge
Dachte ich warte sicherlich mal das Ende des Tages ab.
Aber weiterhin keine Einträge vorhanden....Gibt's da noch einen fehlende Eintrag zum aktivieren?
Danke
patUpdate: Alias deaktiviert!