NEWS
Änderungen aller Datenpunkte in einem Ordner überwachen
-
Hallo zusammen,
ich habe hier eine Samsung-Waschmaschine, die ich über den Adapter Smartthings in IOBroker habe. Das sind jedoch jede Menge Datenpunkte und ich will heraus finden welche Datenpunkte mir wichtig sind. Nun habe ich mir gedacht einmal auf alle Datenpunkte zu triggern und mir Änderungen in ein Logfile zu schreiben. Bzw. in einen Zeichenketten-DP die ID, alter Wert, neuer Wert zu speichern und mir das für einen Tag in Mariadb zu loggen.
Wie aber kann ich am performantesten einen Trigger für alle Datenpunkte erstellen?
Ich kann natürlich aus der Liste von folgendem Selector in einer Schleife für alle Datenpunkte einen Trigger erzeugen, geht das aber eleganter?
#Pseudocode: $('[id=smartthings.0.d867cabb-a15c-c2d3-d677-c87ee6845705.*]').each(function (id, i) { on({id: id, change: "ne"}, async function (obj) { DoIt(); ; } }); }
-
-
@ralf-2 warum nicht einfach via sql Adapter direkt in die dB schreiben ?
Wenn du jeden Wert mitschreibst hast du in der dB alles - vorherigen Wert, zeitstempel, neuen Wert. Alleine durch das eintragen in der dB.
A.
-
@paul53 sagte in Änderungen aller Datenpunkte in einem Ordner überwachen:
Laut Doku gibt es auch die Selektor.on()-Funktion.
Das hatte ich nicht gefunden, das kann ich mal probieren.
warum nicht einfach via sql Adapter direkt in die dB schreiben ?
Mir ist Samsung hier zu Gesprächig, das sind 2151 Datenpunkte
Wenn ich weiß welche Punkte sich ändern, kann ich mir diese Auswahl in einen Alias packen. Es werden sich vermutlich nur wenige Datenpunkte ändern.Das Skript wird ja auch nur temporär laufen.
-
@ralf-2 sagte in Änderungen aller Datenpunkte in einem Ordner überwachen:
Wenn ich weiß welche Punkte sich ändern, kann ich mir diese Auswahl in einen Alias packen. Es werden sich vermutlich nur wenige Datenpunkte ändern.
das kannst du doch auch im Adapter konfigurieren!
- nur geänderte Daten loggen
- Mindestabweichung vom bisherigen Wert
- Blockzeit
- .....
-
@homoran
MMmmm... muss ich mal drüber nachdenken.
Ich könnte im Skript wo ich alle Werte in eine JSON-Tabelle packe noch die letzte Änderung mit aufnehmen, dann habe ich die Datenpunkte identifiziert.
Aber ja, ich werde mal über den Schraubenschlüssel bei allen SQL aktivieren.