NEWS
History-Adapter: Wie an Werte kommen?
-
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?
-
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); -
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?!
-
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. -
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?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 freigegebenGruß
Rainer
-

-
Bluefox arbeitet an etwas Größerem.
Ich fürchte diese Version läuft unter der Standardkonfiguration nicht unbedingt problemlos.
Gruß
Rainer
-
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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
