Hallo zusammen,
warum auch immer funktionieren einige meiner Scripte auf einmal nicht mehr.
Ich habe mit folgendes Script Stück für Stück zusammengebaut. Auf einmal ging dann gar nichts mehr. Auch Teile davon nicht mehr.
function berechnen(){
sendTo('sql.0', 'query', 'SELECT (from_unixtime((ts / 1000))) AS Datum, MAX(val) AS Tageswert FROM iobroker.ts_number WHERE (iobroker.ts_number.id = 8) GROUP BY DAY((from_unixtime((ts / 1000)))) ORDER BY Datum desc LIMIT 7', function (result) {
if (result.error) {
console.error(result.error);
}
else {
console.log(result.result[0].Tageswert);
console.log(result.result[1].Tageswert);
console.log(result.result[2].Tageswert);
console.log(result.result[3].Tageswert);
console.log(result.result[4].Tageswert);
console.log(result.result[5].Tageswert);
console.log(result.result[6].Tageswert);
var Energie_Heute = Math.round[(result.result[0].Tageswert)];
var Energie_Gestern = Math.round[(result.result[1].Tageswert)];
var Energie_Differenz_Heute = Math.round[(result.result[0].Tageswert) - (result.result[1].Tageswert)];
var Energie_Differenz_1 = Math.round[(result.result[1].Tageswert) - (result.result[2].Tageswert)];
setState('javascript.0.Energie_Heute', Energie_Heute);
setState ('javascript.0.Energie_Gestern', Energie_Gestern)
setState("javascript.0.Energie_Differenz_Heute", Energie_Differenz_Heute);
setState("javascript.0.Energie_Differenz_1", Energie_Differenz_1);
}
}
)
};
schedule('* * * * *', berechnen);
Als Log-Ausgabe erhalte ich folgendes:
11:47:00.045 info javascript.0 script.js.Tageserträge: sendTo(adapter=sql.0, cmd=query, msg="SELECT (from_unixtime((ts / 1000))) AS Datum, MAX(val) AS Tageswert FROM iobroker.ts_number WHERE (iobroker.ts_number.id = 8) GROUP BY DAY((from_unixtime((ts / 1000)))) ORDER BY Datum desc LIMIT 7")
11:47:00.932 info javascript.0 script.js.Tageserträge: 153292.02
11:47:00.933 info javascript.0 script.js.Tageserträge: 153199.1
11:47:00.933 info javascript.0 script.js.Tageserträge: 153009.97
11:47:00.933 info javascript.0 script.js.Tageserträge: 152820.83
11:47:00.933 info javascript.0 script.js.Tageserträge: 152631.66
11:47:00.933 info javascript.0 script.js.Tageserträge: 152442.51
11:47:00.933 info javascript.0 script.js.Tageserträge: 152253.36
11:47:00.933 warn javascript.0 at Object.cb (script.js.Tageserträge:21:1)
11:47:00.942 info javascript.0 script.js.Tageserträge: setForeignState(id=javascript.0.Energie_Heute, state=undefined)
11:47:00.942 warn javascript.0 at Object.cb (script.js.Tageserträge:22:1)
11:47:00.945 info javascript.0 script.js.Tageserträge: setForeignState(id=javascript.0.Energie_Gestern, state=undefined)
11:47:00.945 warn javascript.0 at Object.cb (script.js.Tageserträge:23:1)
11:47:00.948 info javascript.0 script.js.Tageserträge: setForeignState(id=javascript.0.Energie_Differenz_Heute, state=undefined)
11:47:00.949 warn javascript.0 at Object.cb (script.js.Tageserträge:24:1)
11:47:00.953 info javascript.0 script.js.Tageserträge: setForeignState(id=javascript.0.Energie_Differenz_1, state=undefined)
Meine Datenpunkte sehen so aus:
Woran liegt es, dass die Datenpunkte nicht mehr mit dem Ergebnis beschrieben werden sondern im Log als state undefined steht?
Bin noch ein ziemlicher Anfänger was Iobroker angeht und Javascript ebenfalls.
Es gibt nur eine Javascript Instanz. Andere Scripte funktionieren noch.