Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] History Daten auslesen über Tageswechsel

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] History Daten auslesen über Tageswechsel

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

      Hallo,
      ich kämpfe jetzt schon länger mit einem Problem und komm auf keine - funktionierende - Lösung, daher die Frage an die Menge, vielleicht hatte wer von euch schon mal ein ähnliches Problem:
      Ich möchte gerne eine Trendlinie für den Luftdruck berechnen und ziehe dazu die letzten 40 Datensätze aus dem History Adapter heran. Das ganze mache ich, dass ich die JSON Dateien des Adapters einlese. Hier ein Auszug davon:

      var fs = require('fs');
      var heute = formatDate(new Date(),"YYYY") + formatDate(new Date(),"MM") + formatDate(new Date(),"DD");
      var id = "zigbee.0.XXXXXXXX.pressure";
      var fn = "/opt/iobroker/iobroker-data/history/" + heute + "/history." + id + ".json";
      	 
      var buffer = JSON.parse(fs.readFileSync(fn)); // array of objects
      var len = buffer.length;
      

      Dies funktioniert hervorragend und ich kann auch alles berechnen.

      Nur wenn der Tageswechsel ist (also 0 Uhr) nimmt er das neue File des neuen Tages und ich bekomme nicht mehr die letzten 40 Datensätze sondern nur z.B. die letzten 2, da im neuen File einfach noch nicht so viele Datensätze sind.
      Als Lösung könnte ich natürlich die Berechnung von 0 Uhr bis ca. 3 Uhr aussetzen und erst dann wieder zu rechnen beginnen, aber das wäre nicht ideal.
      Hat wer von euch schon mal so was gehabt oder hat einen Tipp für mich?
      Was habe ich probiert: Ich hätte versucht das HistoryFile von heute mit dem HistoryFile von gestern zu "verknüpfen", bin aber daran kläglich gescheitert.
      Danke
      Klaus

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @klaus88 last edited by paul53

        @klaus88 Hole besser die Daten mit sendTo('history.0', 'getHistory', {...}, callback)

        sendTo('history.0', 'getHistory', {
            id: 'zigbee.0.XXXXXXXX.pressure',
            options: {
                end:       Date.now(),
                count:     40,
                aggregate: 'none'
            }
        }, function (data) {
            for (var i = 0; i < data.result.length; i++) {
                // Daten auswerten
            }
        });
        
        K 1 Reply Last reply Reply Quote 1
        • K
          klaus88 @paul53 last edited by

          @paul53 :
          Hallo Paul53
          DANKE - hab schnell meinen ganzen Code umgebaut und jetzt geht es ! Danke vor allem für den Link! Den hab ich leider vorher nicht gelesen!

          lg und schönen Sonntag noch !
          Klaus

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

          Support us

          ioBroker
          Community Adapters
          Donate

          402
          Online

          31.9k
          Users

          80.2k
          Topics

          1.3m
          Posts

          javascript monitoring
          2
          3
          409
          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