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. Skripten / Logik
  4. [gelöst] History Daten auslesen über Tageswechsel

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

[gelöst] History Daten auslesen über Tageswechsel

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptmonitoring
3 Beiträge 2 Kommentatoren 513 Aufrufe 1 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.
  • K Offline
    K Offline
    klaus88
    schrieb am zuletzt editiert von klaus88
    #1

    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

    paul53P 1 Antwort Letzte Antwort
    0
    • K 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

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @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
          }
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      K 1 Antwort Letzte Antwort
      1
      • paul53P 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 Offline
        K Offline
        klaus88
        schrieb am zuletzt editiert von
        #3

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

        595

        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