Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [Gelöst] History & JS & Zeitraum

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

[Gelöst] History & JS & Zeitraum

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
3 Beiträge 2 Kommentatoren 331 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • G Offline
    G Offline
    Gukerl
    schrieb am zuletzt editiert von Gukerl
    #1

    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 - 8640000
    

    Usecase: Um 23:55 soll das auf die Platte geschrieben werden. Das alles klappt wunderbar, bis auf den Zeitraum

    Zum Beispiel:

    const start = end - 3600000
    

    Letzte 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);
    //});
    
    joergeliJ 1 Antwort Letzte Antwort
    0
    • G Gukerl

      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 - 8640000
      

      Usecase: Um 23:55 soll das auf die Platte geschrieben werden. Das alles klappt wunderbar, bis auf den Zeitraum

      Zum Beispiel:

      const start = end - 3600000
      

      Letzte 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);
      //});
      
      joergeliJ Online
      joergeliJ Online
      joergeli
      schrieb am zuletzt editiert von
      #2

      @gukerl
      Hi,

      schau mal hier:
      https://forum.iobroker.net/topic/65767/frage-zum-zeitraum-der-history-adapter-verlaufsdaten?_=1689235522306

      Evtl. trifft das auch bei Dir zu?

      G 1 Antwort Letzte Antwort
      0
      • joergeliJ joergeli

        @gukerl
        Hi,

        schau mal hier:
        https://forum.iobroker.net/topic/65767/frage-zum-zeitraum-der-history-adapter-verlaufsdaten?_=1689235522306

        Evtl. trifft das auch bei Dir zu?

        G Offline
        G Offline
        Gukerl
        schrieb am zuletzt editiert von
        #3

        @joergeli Das ist es!

        VIELEN VIELEN DANK!!!

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate
        FAQ Cloud / IOT
        HowTo: Node.js-Update
        HowTo: Backup/Restore
        Downloads
        BLOG

        477

        Online

        32.7k

        Benutzer

        82.4k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe