NEWS
Aktualisierung von Datenpunkten bei externer Änderung
-
Hallo zusammen,
da ich im Bereich "Entwicklung" (noch) nichts posten darf, hoffe ich, dass ich hier die richtigen Leute erreiche. Ich habe vor kurzem begonnen mich in ioBroker einzuarbeiten. Ich möchte ihn vor allem dazu verwenden, Standard Heimautomatisierungsanbieter wie z.B. Homematic mit meiner selbst entwickelten Anlage zu verbinden. Dazu habe ich bereits einen Adapter entwickelt, welcher an sich auch gut funktioniert. Ich kann meine selbst entwickelten Geräte ansteuern und von Sensoren auch Werte empfangen.
Genau zu dem letzten Punkt habe ich eine Frage. Die Werte der Sensoren werden durch meine Anlage in einer Datei abgelegt. Diese wird von dem ioBroker Adapter ausgelesen und die entsprechenden Datenpunkte gesetzt. Allerdings passiert das nur einmal beim erstellen einer neuen Instanz. Ich möchte aber, dass jedes Mal wenn sich die Austauschdatei ändert, der Adapter getriggert wird und die Datenpunkte aktualisiert werden. Ich hatte schon versucht den Adapter als "Schedule" zu erstellen, aber das ist nicht das was ich erreichen möchte. Die Werte sollen nicht zyklisch abgefragt werden, sondern dann, wenn sich etwas an der Austauschdatei geändert hat.
Wie könnte man das realisieren? -
@jens-kathe solange du uns nicht zigst was du gemacht hast.. wie sollen wir dir da weiterhelfen..
zlade doch mal das was du hast als adapter auf GIT.. dann könnte man dir besser helfen
-
const fs = require('fs');
const file2watch= './values.json';
fs.watchFile(file2watch, (curr, prev) => {
// update data points
});oder bin hier zu naiv bzw. das Problem nicht verstanden?
-
@jens-kathe
Übrigens statt die Werte zuerst in eine Datei zu schreiben, könnte man direkt die Datenpunkte via Simple API setzen:
GET http://<iobroker_ip>:<simple_api_port>/set/<state_id>?value=<value> -
@iwg
Vielen Dank für die schnelle Rückmeldung. Das 'watchFile' war genau das was ich gesucht habe. Die Datei mit den Werten muss sowieso erstellt werden, da sie noch anderweitig verwendet wird. Ich bin noch recht neu im Bereich Javascript Node.js, daher hatte ich die Funktion nicht auf dem Schirm. Wie gesagt, vielen Dank! -
@jens-kathe
freut mich Dir geholfen zu haben. Viel Spaß bei Deinem Projekt