NEWS
Trigger wenn Datenpunkt erstellt oder gelöscht wird
-
Hallo
Gibt es eine Möglichkeit einen Script zu Triggern, wenn ein neuer Datenpunkt angelegt oder ein Datenpunkt gelöscht (oder auch seine Daten, nicht der Wert geändert) wird?
Wäre für meiner Scripterei schon ein oder zwei mal nützlich gewesen. Aktuell möchte ich, wenn mit dem Scenes Adapter eine Scene angelegt oder gelöscht wird, automatisch einen Alias dafür generieren/löschen und auch gleich die Scene in der Visualisierung nachführen.
Stehe da irgendwie auf dem Schlauch.
-
@swisslizard sagte: Gibt es eine Möglichkeit einen Script zu Triggern, wenn ein neuer Datenpunkt angelegt
Mit RegExp-Trigger können neue Datenpunkte erfasst werden.
@swisslizard sagte in Trigger wenn Datenpunkt erstellt oder gelöscht wird:
oder ein Datenpunkt gelöscht
Gelöschte Datenpunkte triggern nicht mehr, auch nicht während des Löschens.
-
@paul53
Danke!Dann bleibt für die gelöschten Datenpunkte wohl nur ein Intervaltimer, der von Zeit zu Zeit prüft ob etwas zu tun ist und falls nötig die notwendigen Aufräumarbeiten erledigt.
Die Regex Lösung für neue Datenpunkt klappt dafür bestens.
Falls jemand mal nach dem Thema sucht hier ein kleines Beispiel zum Loggen der IDs neuer Datenpunkte unter scene.0.:on(/^scene\.0\./, async function (obj) { const id = obj.id; log("scene: "+id); });
-
@swisslizard
Hiermit kann man die States speichern in der Variable / oder auch als DP (muss man dann erweitern) und prüfen ob ein DP gelöscht wurde.let previousState = {}; let preDPId = '0_userdata.0' function updateState() { let ids = $(preDPId+'*') console.log(ids.length) let currentState = {}; for(let i=0; i<ids.length;i++){ currentState[ids[i]] = true } for (let id in previousState) { if (currentState[id] == undefined) { console.log("Deleted ID: "+ id); } } previousState = currentState } updateState(); setInterval(updateState, 60000);