Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. History-Adapter: Wie an Werte kommen?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    History-Adapter: Wie an Werte kommen?

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

      Ich arbeite an einer Heizungsregelung für mehrere RasPis, auf denen jeweils eine ioBroker-Instanz mit der programmierten Regel-Logik läuft. Die Regelung wird über ein eigenes Web-Interface ferngesteuert, in dem ich aus der Ferne die Regelkonfiguration setze, Hosts und Geräte verwalte, sowie Statusinformationen anzeige.

      Die Statusinformationen möchte ich jetzt durch eine Historie ergänzen (Temperaturverlauf, Schaltzeitpunkte, Regelstatus, etc…). Der History-Adapter schien mir da am einfachsten, um die Werte zu speichern. Nur muss ich jetzt irgendwie an diese Werte kommen (in ihrer Rohform, <u>nicht</u> per vis/flot/rickshaw), um sie remote anzuzeigen/auszuwerten. Geht das mit Bordmitteln oder muss ich selbst speichern?

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

        Der History-Adapter speichert die Werte in Tages-Ordnern mit der Datenpunkt-ID im Dateinamen ab. Das Script liefert einen Ansatz wie man an die Werte des aktuellen Tages kommen kann:

        // History Daten einlesen
        
        var fs = require('fs');
        
        var heute = formatDate(new Date(),"YYYY") + formatDate(new Date(),"MM") + formatDate(new Date(),"DD");
        var id = "javascript.0.Aussen.Temperatur";
        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;
        var lastval = buffer[len - 1].val;
        log(len + " " + lastval);
        
        
        1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer last edited by

          Ok danke, das sollte ich hinbekommen. Aktuell ist es ja noch so, dass der Adapter erst auf die Platte schreibt, sobald die Anzahl der RAM-Datenpunkte überschritten wird.

          Das sollte ja in Kürze geändert werden, wenn ich das richtig gelesen habe?!

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

            @AlCalzone:

            Aktuell ist es ja noch so, dass der Adapter erst auf die Platte schreibt, sobald die Anzahl der RAM-Datenpunkte überschritten wird. `
            Als Anzahl RAM-Datenpunkte habe ich 1 eingegeben. Damit fehlen nur die aktuellen Werte in den Dateien.

            1 Reply Last reply Reply Quote 0
            • AlCalzone
              AlCalzone Developer last edited by

              Ok, sieht aus als hätte es vor 2h ein Update (oder eine Anpassung der Dokumentation) gegeben, das genau mein Problem löst ♥.

              Siehe https://github.com/ioBroker/ioBroker.history

              1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators last edited by

                @paul53:

                Als Anzahl RAM-Datenpunkte habe ich 1 eingegeben. Damit fehlen nur die aktuellen Werte in den Dateien. `
                dann meckert history aber du sollst einen Wet >100 eingeben! klappt das wirklich?

                @AlCalzone:

                Ok, sieht aus als hätte es vor 2h ein Update (oder eine Anpassung der Dokumentation) gegeben, das genau mein Problem löst ♥.

                Siehe https://github.com/ioBroker/ioBroker.history `
                Die Version ist aber noch nicht freigegeben

                Gruß

                Rainer

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

                  @Homoran:

                  dann meckert history aber du sollst einen Wet >100 eingeben! klappt das wirklich? `
                  Ja, das klappt. Ich kann mich nicht daran erinnern, dass history gemeckert hat 😮

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators last edited by

                    144_history_datenpunkte.jpg

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

                      Bei mir meckert er nicht:
                      493_history_ram_1dp.jpg
                      Liegt vielleicht daran, dass ich schon in der Adapter-Konfiguration den Wert 1 eingetragen habe ?

                      1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer last edited by

                        @Homoran:

                        Die Version ist aber noch nicht freigegeben `
                        Oh, kann man schon abschätzen, wann ungefähr?

                        1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators last edited by

                          Bluefox arbeitet an etwas Größerem.

                          Ich fürchte diese Version läuft unter der Standardkonfiguration nicht unbedingt problemlos.

                          Gruß

                          Rainer

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

                            @Homoran:

                            Ich fürchte diese Version läuft unter der Standardkonfiguration nicht unbedingt problemlos. `
                            Das kann ich für den Reiter "Zustände" im Admin-Adapter bestätigen, der die Zeitstempel nicht richtig aktualisiert, was sicherlich mit der Umstellung auf Millisekunden zu hat. Ich habe zum Funktionstest der Wertänderung von Datenpunkten vom Typ "Schalter" (boolean with states) im jeweiligen Reiter nur die Dateien "adminStates.js" und "adminObjects.js" ausgetauscht.

                            Ich hoffe, dass die Übergabe aller nach Millisekunden geänderten Adapter (vor allem js-controller) an npmjs.org möglichst bald erfolgt.

                            Die History-Einstellung von nur 1 Datenpunkt im RAM bewirkt, dass History häufige Logs verursacht, was ich insofern gelassen sehe, da ich die ioBroker-Logs (über Symlink) und die History auf einen 32 GB USB-Stick und nicht auf die SD-Card schreibe.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            1.2k
                            Online

                            31.7k
                            Users

                            79.7k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            6753
                            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