@chemieka:
Ok das hört sich gut an. Auf welche Zeit hast du im Adapter gestellt?
Meinst du, du kannst mir erklären wo ich das Skript einfügen muss und wie ich es in Betrieb bekomme?
Würde dann heute Abend versuchen wollen das Skript in Betrieb zu bekommen.
Wäre dir wirklich sehr dankbar. `
Kein Thema.
1. (Falls noch nicht geschehen) javascript Adapter aktivieren
2. (Falls noch nicht geschehen) In der oberen Leiste auf den Bleistift klicken und über Show Javascript-Tab aktivieren
3. Neues Skript erstellen (oben links neues Blatt-Icon) und auf Typ (oben rechts) Javascript ändern.
4. Per cut & paste mein Skript reinkopieren. Namen Vergeben, Speichern.
5. In dem Tab "Objects" gehen und die Stelle finden wo dein smartmeter den Gesamtwert schreibt sollte in etwa so aussehen: "smartmeter.0.1-0:1_8_0*255.value"
6. Falls der Wert bei dir von meinem abweicht, dann die Zeile:
var idHAGTotal = "smartmeter.0.1-0:1_8_0*255.value";
anpassen.
7. Im Tab "Javascript" auf den "play"-Button klicken - Damit wird das Skript aktiv.
Das wars. Zur nächsten vollen Stunde sollten die Datenpunkte unter "javascript.0.Stromzähler.Hager" angelegt werden. Da ein Sinnvoller Wert erst ab den Zweiten Aufruf erzeugt werden kann, wird der korrekter Wert deines Stundenverbrauchs erst nach der nächsten vollen Stunde geschrieben.
Falls du Fragen hast, dann weißt du, wo du mich erreichen kannst! ;D
! ````
// Datenpunkte für die Auswertung des Stromverbrauchs
var cronH = "0 * * * *";
var cronD = "59 23 * * *";
var cronW = "0 0 * * 1";
var cronM = "0 0 1 * *";
! var idHAGTotH = "javascript.0.Stromzähler.Hager.tmp.Total-h";
var idHAGTotD = "javascript.0.Stromzähler.Hager.tmp.Total-d";
var idHAGTotW = "javascript.0.Stromzähler.Hager.tmp.Total-w";
var idHAGTotM = "javascript.0.Stromzähler.Hager.tmp.Total-m";
var idHAGTotal = "smartmeter.0.1-0:1_8_0*255.value"; /Stromverbrauch insgesammt/
var idHAGZielH = "javascript.0.Stromzähler.Hager.Hour";
var idHAGZielD = "javascript.0.Stromzähler.Hager.Day";
var idHAGZielW = "javascript.0.Stromzähler.Hager.Week";
var idHAGZielM = "javascript.0.Stromzähler.Hager.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;
if(nVorwert > 0) setState(ZielId, nDiff, true); // keinen Wert berechnen, wenn der Vorwert 0 ist.
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);
});
```` `