NEWS
UNSOLVED obj.ts wird nicht erneuert bei Änderungen
-
Hi Experten,
mir ist aufgefallen dass der Timestamp der Objekt nicht immer aktualisiert.
Meine Erwartung ist, dass sich der ts erneuert sobald das Objekt verändert wird.Ein paar Beispiele wo es nicht klappt sind:
- Enum Objekt bei hinzufügen eines neuen Members über Admin-Oberfläche
- Host Objekt beim anpassen von title, color, icon über Admin-Oberflöche
- Instance Objekt das degublevel anpassen wenn die Instanz disabled ist
- Instance Objekt die Settings anpassen
Ist das so gewollt?
Nach welchem Muster wird der ts erneuert?Ich benötige die Info um möglichst smart die Daten zur ioGo App zu synchronisieren.
Danke für Eure Unterstützung
Nis -
@nis sagte:
Nach welchem Muster wird der ts erneuert?
Der ts der Objekte (obj.ts) zeigt den Zeitpunkt des Erstellens des Objektes an und wird nicht verändert. Aktualisiert werden nur die ts des Zustandes von Datenpunkten (dp.state.ts).
-
@paul53 so ganz stimmt das nicht. Wenn ich den Namen von einem Enum anpasse wird auch der ts erneuert. Auch das starten/stoppen von Instanzen erneuert den ts.
Es muss also irgendeine Logik geben, dass manche Anpassungen den ts erneuern aber eben nicht immer?!?
-
@nis sagte:
Auch das starten/stoppen von Instanzen erneuert den ts.
So genau habe ich das noch nicht beobachtet. Hat der obj.ts für Dich irgendeine Bedeutung ?
-
@paul53 ich würde ihn als Indikator nehmen dafür wann das Objekt angepasst wurde. Dann muss ich nicht immer alle Attribute komplett synchronisieren und spare somit enorm teuren Traffic für die App ein.
-
@nis sagte in:
Dann muss ich nicht immer alle Attribute komplett synchronisieren
getObject(id) liest das komplette Objekt und setObject(id, obj) schreibt das komplette Objekt. Wie willst du Traffic reduziern ?
-
@paul53 ich merke mir in der App den Timestamp von allen Objekten.
Während die App geschlossen ist, findet keine Synchronisation statt.
Wenn die App geöffnet wird synchronisiere ich alle Objekte, dabei macht es dann Sinn nur Objekte zur App zu senden die sich seit der letzten gemerkten Timestamp sich geändert haben.
Ich lese dazu im iobroker.iogo Adapter das gesamte Objekt, schicke es aber nicht zur App falls es nicht neu ist.Diese Filterung muss sein um teuren Traffic zu sparen und die App sehr schnell mit aktuellen Werten nach dem Start zu versorgen.
-
@nis sagte:
schicke es aber nicht zur App falls es nicht neu ist.
Diese Information hat mir gefehlt.