ioBroker – Trigger auf einen Ordner erstellen
In diesem Artikel zeige ich Dir, wie Du in ioBroker einen Trigger auf einen Ordner erstellen kannst.
In diesem Beispiel zeige ich Dir, wie Du mittels einem Trigger alle Datenpunkte in einem Ordner auf Veränderungen überwachen kannst. Als Beispiel habe ich hierzu im UserData Ordner einen Ordner Devices angelegt, welcher 4 Datenpunkte beinhaltet. Wie viele Datenpunkte darunter legen, ist später aber natürlich egal. Hier zunächst ein Screenshot der Datenpunkte:
Im nächsten Schritt erstellen wir uns nun ein Script um auf die Veränderung der Datenpunkte reagieren zu können. Wir werden das Script im ersten Schritt als JavaScript erstellen und im Anschluss zeige ich euch, wie das selbe auch über Blockly umgesetzt werden kann.
Hier zunächst der JavaScript-Code:
on({id: new RegExp("0_userdata.0.Devices\.[a-zA-Z0-9]"), change:"ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
sendTo("telegram", "send", {
text: (['Geänderter Datenpunkt:',obj.id,'\n','Neuer Wert:',(obj.state ? obj.state.val : "")].join(''))
});
});
Im Script wird eine On-Subscription auf eine reguläre Expression gesetzt. Dies geschieht über den Ausdruck „0_userdata.0.Devices\.[a-zA-Z0-9]“. Somit werden alle Datenpunkte unterhalb des Ordners 0_userdata.0 für die Auswertung des Triggers verwendet. Im Falle einer Veränderung wird dann die Id des Datenpunkts sowie der neue Wert (obj.state.val) des Datenpunkts ermittelt und in meinem Beispiel über den Telegram-Adapter verschickt. Somit also wirklich eine sehr triviale Sache über die Funktionsweise mit den regulären Expressions.
Die selbe Vorgehensweise können wir auch direkt in Blockly einsetzen.
In der Blockly-Konfiguration wird hier ein Trigger auf den Block RegExp erstellt. In der Konfiguration der RegExp wird dann die selbe reguläre Expression verwendet, welche wir auch oben im JavaScript einsetzten. Somit kann hier auch in Blockly eine Veränderung der unterhalb liegenden Datenpunkte überwacht werden. Über die Blöcke Wert und Objekt ID können dann die geänderten Werte des Triggers direkt weiterverwendet werden.
Diese Vorgehensweise funktioniert auch, wenn sich unterhalb dem überwachten Ordners Ordners 0_userdata.0 weitere Unterordner befinden. Somit können alle unterliegenden Datenpunkte eines Ordners komfortabel überwacht werden.
Ich hoffe Dir gefällt der Artikel. Über Kommentare, Anregungen oder Ideen freue ich mich wie immer 🙂