Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Abruf CSV von sehr vielen History-Daten eines Datenpunktes

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Abruf CSV von sehr vielen History-Daten eines Datenpunktes

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Thias last edited by

      Ich zeichne die Vor- und Nachlauftemp. unserer Heizung auf und benötige jetzt die Daten für das erste Halbjahr. Über die History-Abfrage des Datenpunktes bekomme ich nur wenige Tage angezeigt (über 500 Datenpunkte). Jetzt habe ich ein Java-Script gesehen, mit dem Datenpunkte eine gewisse Zeit (eher Stunden als Tage) abgerufen werden können. Das hilft mir hier auch nicht weiter. Andere Beiträge dazu habe ich nicht gefunden.

      Mein Frage also:
      Wie würdet ihr die Daten vom 01.01. bis zum 30.06. eines (genauer gesagt von zwei Datenpunkten) auslesen, damit ihr eine CSV-Datei Datei erhaltet. Ich rechne mit ca 30.000 bis 50.000 Werten pro Datenpunkt.

      Danke für eure Hilfe!

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @Thias last edited by

        @thias

        Der history Adapter hat einen Befehl mit dem man die Daten abrufen kann

        https://github.com/ioBroker/ioBroker.history/blob/master/docs/de/README.md#zugriff-auf-history-werte-mit-javascript

        Da bekommst du dann ein JavaScript Array zurück.
        Entweder schreibst du die Datei selber. Csv ist ja nicht so schwer
        Oder du nimmst eine extra Bibliothek, die dir das sehr einfach erledigt.

        https://www.npmjs.com/package/csv-stringify

        T 1 Reply Last reply Reply Quote 0
        • T
          Thias @OliverIO last edited by

          @oliverio said in Abruf CSV von sehr vielen History-Daten eines Datenpunktes:

          https://www.npmjs.com/package/csv-stringify

          Vielen Dank, den Eintrag zum Javascript hast ich schon gesehen, habe aber keine Ahnung, wie ich da meinen Zeitraum (01.01.-30.06.) auswähle und wo das Script das Ergebnis speichert...

          OliverIO 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @Thias last edited by OliverIO

            @thias

            welcher teil?
            der folgende beispielcode ruft die daten der letzen 60 Minuten ab.
            Zeitangabe erfolgt in Millisekunden, daher Date.now()-1000*60*60 == 3.600.000
            start und ende wird per start und end definiert.
            die daten werden dann im callback zurückgegebeen.
            im beispiel die funktion die als funktionsparameter definiert ist, die daten sind dann in result enthalten und kann damit daann weiterverarbeitet werden.
            bisher also nur in einer variable.
            den genauen aufbau der variable/objekt weiß ich nicht, da musst dir das ergebnis dann mal ausgeben lassen (am besten während der entwicklung noch nicht ganz soviele daten ausgeben lassen)
            im beispiel ist ja schon eine ausgabe auf die console enthalten.

            var end = Date.now();
            sendTo('history.0', 'getHistory', {
                id: 'system.adapter.admin.0.memRss',
                options: {
                    start:      end - 3600000,
                    end:        end,
                    aggregate: 'onchange'
                }
            }, function (result) {
                for (var i = 0; i < result.result.length; i++) {
                    console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                }
            });
            

            im nächsten schritt nimmst du die daten und bereitest die für csv auf und schreibst sie mit fs.writeFile in eine datei auf deiner festplatte
            https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options
            hier noch ein beispiel
            https://www.geeksforgeeks.org/node-js-fs-writefilesync-method/

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

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

            600
            Online

            31.7k
            Users

            79.6k
            Topics

            1.3m
            Posts

            2
            4
            172
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo