@paul53 Zu Testzwecken lasse ich aktuell jede Sekunde einen Wert loggen und bilde dann den Mittelwert je Minute.
Ich habe den Code reduziert um erstmal die grundlegende Funktion zu testen.
Leider kommt immer noch ein Fehler und ich habe keine Idee woran es liegt:
var Liste = Array(16).fill(0), i, end = Date.now();
schedule("* * * * *", async () => {
sendTo('history.0', 'getHistory', {
id: 'modbus.0.inputRegisters.30775_Wirkleistung_Gesamt.value',
options: {
start: end - 60000,
end: end,
aggregate: 'average',
count: 1,
ignoreNull: 0
}
}, function (data) {
Liste.shift();
Liste.push(data.result[1].val);
setState('javascript.0.AWTRIX.BAR_PV', Liste);
});
});
Meldung aus dem Log dazu:
States system pmessage io.messagebox.system.adapter.javascript.0 {"command":"getHistory","message":{"result":[],"step":60000,"error":null},"from":"system.adapter.history.0","callback":{"message":{"id":"modbus.0.inputRegisters.30775_Wirkleistung_Gesamt.value","options":{"start":1688561934479,"end":1688561994479,"aggregate":"average","count":1,"ignoreNull":0}},"id":791,"ack":true,"time":1688562060017},"_id":59371133} Cannot read properties of undefined (reading 'val')
und:
TypeError: Cannot read properties of undefined (reading 'val') at Object.cb (script.js.AWTRIX.bars:18:31) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:10970:45) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:379:37) at processImmediate (node:internal/timers:476:21)