Ich muss diese Funktion mehrfach aufrufen und die Daten dann weiter verarbeiten. Ich habe es jetzt so gelöst.
Funktionsaufruf
const history = await GetData('javascript.0.Solar.DailyTotal');
Funktion
async function GetData(strID) {
return new Promise(function (resolve, reject) {
sendTo('history.0', 'getHistory', {
id: strID,
options: {
end: new Date().getTime(),
count: 20,
aggregate: 'onchange'
}
}, (result) => {
if (result.error) {
reject('Error: ' + result.error);
} else {
let retData = '';
let tmpDay = '';
let x = 0;
for (var i = result.result.length - 1; i >= 0; i--) {
if (tmpDay != new Date(result.result[i].ts).getDate().toString()) {
tmpDay = new Date(result.result[i].ts).getDate().toString();
retData += "data.setCell(" + x.toString() + ", 0, '" + new Date(result.result[i].ts).getDate() + "." + new Date(result.result[i].ts).getMonth() + "." + "');\n";
if (result.result[i].val == null) {
retData += "data.setCell(" + x.toString() + ", 1, '0');\n";
} else {
retData += "data.setCell(" + x.toString() + ", 1, '" + result.result[i].val + "');\n";
}
x++;
if (x > 6) break;
console.log('Total: ' + x.toString() + ' -> ' + new Date(result.result[i].ts).getDate() + "." + new Date(result.result[i].ts).getMonth() + ' -> ' + result.result[i].val);
}
//console.log('1---->' + retData + '<----');
};
resolve(retData);
}
});
});
}