NEWS
[Gelöst] History & JS & Zeitraum
-
Grüß Euch,
bezogen auf den Beitrag möchte ich ähnliches umsetzen:Was auch immer ich versuche, ich schaffe es nicht, sämtliche Werte eines Kanals der letzten 24 Stunden (es sich einige 1000) anzeigen uu lassen
const end = new Date().getTime(); //const start = end - (60 * 60 * 24 * 1 * 1000); // letzte 7 Tage; const start = end - 8640000Usecase: Um 23:55 soll das auf die Platte geschrieben werden. Das alles klappt wunderbar, bis auf den Zeitraum
Zum Beispiel:
const start = end - 3600000Letzte Stunde, der Wert mal 24 müsste doch einen ganzen Tag herausfiltern, es wird mir aber nur der Abend gestern angezeigt. Ich verstehe es nicht, wo liege ich falsch?
Vielen DANK & LG, Andi
P.S. Hier mein Code
//schedule1 = schedule('{"time":{"exactTime":true,"start":"09:02"},"period":{"days":1}}', async function () { console.log('Start'); const objId = 'javascript.0.Photovoltaik.Leistung'/*Wchselrichter*/; console.log(objId); var today = new Date(); var dd = String(today.getDate()).padStart(2, '0'); var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! var yyyy = today.getFullYear(); const fileName = yyyy + '-' + mm + '-' + dd + '-' + objId + '.txt'; console.log(fileName); //const fileName = `Solax.csv`; const filePath = `/opt/iobroker/iobroker-data/${fileName}`; const csvDateFormat = 'DD.MM.YYYY hh:mm:ss'; var fs = require('fs'); const end = new Date().getTime(); //const start = end - (60 * 60 * 24 * 1 * 1000); // letzte 7 Tage; const start = end - 86400000 console.log('Start: ' + start); console.log('End : ' + end); getHistory('history.0', { id: objId, end: end, start: start, aggregate: 'none', timeout: 5000 }, (err, result) => { if (err) { console.error(`History nicht verfügbar ${objId}: ${err}`); } else if (result) { let csvData = ['timestamp;value']; for (var i = 0; i < result.length; i++) { csvData.push(`${formatDate(new Date(result[i].ts), csvDateFormat)};${result[i].val}`); } fs.writeFileSync(filePath, csvData.join("\n")); } }); console.log('Fertig'); console.log(objId); //}); -
Grüß Euch,
bezogen auf den Beitrag möchte ich ähnliches umsetzen:Was auch immer ich versuche, ich schaffe es nicht, sämtliche Werte eines Kanals der letzten 24 Stunden (es sich einige 1000) anzeigen uu lassen
const end = new Date().getTime(); //const start = end - (60 * 60 * 24 * 1 * 1000); // letzte 7 Tage; const start = end - 8640000Usecase: Um 23:55 soll das auf die Platte geschrieben werden. Das alles klappt wunderbar, bis auf den Zeitraum
Zum Beispiel:
const start = end - 3600000Letzte Stunde, der Wert mal 24 müsste doch einen ganzen Tag herausfiltern, es wird mir aber nur der Abend gestern angezeigt. Ich verstehe es nicht, wo liege ich falsch?
Vielen DANK & LG, Andi
P.S. Hier mein Code
//schedule1 = schedule('{"time":{"exactTime":true,"start":"09:02"},"period":{"days":1}}', async function () { console.log('Start'); const objId = 'javascript.0.Photovoltaik.Leistung'/*Wchselrichter*/; console.log(objId); var today = new Date(); var dd = String(today.getDate()).padStart(2, '0'); var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! var yyyy = today.getFullYear(); const fileName = yyyy + '-' + mm + '-' + dd + '-' + objId + '.txt'; console.log(fileName); //const fileName = `Solax.csv`; const filePath = `/opt/iobroker/iobroker-data/${fileName}`; const csvDateFormat = 'DD.MM.YYYY hh:mm:ss'; var fs = require('fs'); const end = new Date().getTime(); //const start = end - (60 * 60 * 24 * 1 * 1000); // letzte 7 Tage; const start = end - 86400000 console.log('Start: ' + start); console.log('End : ' + end); getHistory('history.0', { id: objId, end: end, start: start, aggregate: 'none', timeout: 5000 }, (err, result) => { if (err) { console.error(`History nicht verfügbar ${objId}: ${err}`); } else if (result) { let csvData = ['timestamp;value']; for (var i = 0; i < result.length; i++) { csvData.push(`${formatDate(new Date(result[i].ts), csvDateFormat)};${result[i].val}`); } fs.writeFileSync(filePath, csvData.join("\n")); } }); console.log('Fertig'); console.log(objId); //}); -
@gukerl
Hi,schau mal hier:
https://forum.iobroker.net/topic/65767/frage-zum-zeitraum-der-history-adapter-verlaufsdaten?_=1689235522306Evtl. trifft das auch bei Dir zu?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden