@einencool
Hi,
ich kenne AhoiDTU nicht.
Der "Yield.Day" hört sich aber schon mal gut an und mir scheint, dass du ihn schon in influxdb speicherst.
Mit dem folgenden Blockly kannst du ihn aus influxDB auslesen und und über 7 Tage summieren.
Das Versenden über Telegram funktioniert so, wie du es schon für die Einzelwerte geschafft hast.
blockly_influxdb-anfrage.png
Spoiler
var end, start, result, wertesumme, i, wert, zeit;
// Get history from influxdb adapter
end = (new Date().getTime());
start = parseFloat(end) - parseFloat(7) * 3600000;
sendTo("influxdb.0", "getHistory", {
"id": 'AhoiDTU.0.Yield.Day',
"options": {start: start, end: end, aggregate: "none"}
}, async function (result) {
console.log('Ergebnis der Abfrage:');
// Rückmeldung von influxDB ausgeben:
console.log(result);
console.log('Die Einzelwerte:');
wertesumme = 0;
// Rückmeldung von influxDB auswerten:
var i_end = parseFloat(getAttr(result, 'result').length) - 1;
var i_inc = 1;
if (0 > i_end) {
i_inc = -i_inc;
}
for (i = 0; i_inc >= 0 ? i <= i_end : i >= i_end; i += i_inc) {
wert = getAttr(result, (['result.',i,'.val'].join('')));
wertesumme = (typeof wertesumme == 'number' ? wertesumme : 0) + wert;
zeit = getAttr(result, (['result.',i,'.ts'].join('')));
console.log((['Wert: ',wert,' Zeit: ',formatDate(getDateObject(zeit), "TT.MM.JJJJ SS:mm:ss")].join('')));
}
console.log(('Die Summe aller Werte: ' + String(wertesumme)));
});
Falls du übrigens die influxDB-Abfrage anpassen möchtest, ist hier die Hilfeseite:
https://github.com/ioBroker/ioBroker.influxdb
Grüße,
Philipp