| Ein ausgeklügeltes Regelwerk und Automation-Scripte bilden die Grundlage einer "mitdenkenden" Umgebung, welche vom DvISE Server gesteuert wird.
Mit Regeln und Scripten lassen sich nahezu alle denkbaren Szenarien im Bereich der Automation in die Realität umsetzen. Ganz egal, ob es sich dabei um Beleuchtung, Jalousien, Heizung, Windmessung oder Sonstiges handelt. Alle relevanten Daten zur Automation laufen zentral im State-Archive des DvISE Servers ein, welches im David InfoCenter über »Archive -> System -> DvISE -> Automation -> State« aufrufbar ist.
Von hier aus können alle denkbaren Abhängigkeiten in Form von Regeln definiert werden. Durch die offen gestaltete Scriptprogrammierung - basierend auf JavaScript und einigen speziellen DvISE Befehlen - ist diese Art der Programmierung nicht nur eingefleischten Programmierern vorenthalten. Nach einer kurzen Einarbeitungszeit sollte es jedem möglich sein, einfache Scripte individuell zu erstellen und anzupassen.
Hinweis:
Einige JavaScript Beispiele befinden sich im David InfoCenter Archive »Archive -> System -> David -> Automation -> Scripte«.
Um ein neues Automation Script zu erstellen, gehen Sie wie folgt vor:
- Wählen Sie im Archive-Baum des David InfoCenter das Verzeichnis »Archive -> System -> DvISE -> Automation -> State« und klicken das Archive mit der rechten Maustaste an und wählen »Regeln...« aus dem Kontextmenü. Es öffnet sich das Dialogfenster »Regeln«.
- Klicken Sie auf die Schaltfläche »Hinzufügen«, um eine neue Regel anzulegen.
- Vergeben Sie einen Namen für die Regel.
- Wählen Sie aus der Liste die Aktion »Ausführen einer Automation«
- Klicken Sie auf »Weiter«. Es öffnet sich das Dialogfenster »Bedingung«, auf dem Sie Kriterien festlegen können.
Egal, welche Aktion Sie durchführen wollen, immer ist die Regel abhängig von einer (oder auch mehreren) Bedingung. Nur wenn diese Bedingung erfüllt ist, kommt die Regel zur Anwendung. Wenn Sie also auf der Registerkarte »Neue Regel« auf »Weiter« klicken, gelangen Sie automatisch auf die Registerkarte »Bedingung«.
- Registerkarte »Bedingung«
Aus dem ersten Listenfeld wählen Sie durch Mausklick auf den Pfeil eine Option aus, nach der verteilt werden soll. Im nächsten Listenfeld wählen Sie einen der Operatoren »gleich«, »ungleich«, »kleiner« oder »größer«. In das letzte Feld tragen Sie das Verteilkriterium ein.
In diesem Feld haben Sie auch die Möglichkeit, so genannte Jokerzeichen (wild cards) zu verwenden. Dadurch können Sie Begriffe einsetzen, die nur zum Teil mit dem Verteilkriterium übereinstimmen.
Um weitere Bedingungen einzugeben, klicken Sie auf die Schaltfläche »Bedingung hinzufügen« und füllen erneut die drei Felder aus. Die Zeilen Ihrer Regel sind standardmäßig durch den Operator »oder« verknüpft, d.h., eine Nachricht wird dann verteilt, wenn entweder die erste oder die zweite Bedingung zutrifft. Durch einen Mausklick auf »oder« am Ende der ersten Zeile wechselt der Operator zu »und«. Jetzt müssen beide Bedingungen gleichzeitig zutreffen, damit die Nachricht verteilt wird. Ein Mausklick auf die Schaltfläche »Letzte Bedingung entfernen« löscht die letzte Zeile.
Beispiel:
- Registerkarte »Aktion«
Auf dieser Registerkarte legen Sie fest, welche Aktion ausgeführt werden soll, wenn ein unter »Bedingung« festgelegtes Kriterium zutrifft.
- Ausführen eines Scripts
Aktivieren Sie diesen Schalter, wenn Sie als Aktion ein Script ausführen wollen. Tragen Sie anschließend in das Eingabefeld Pfad und Namen des auszuführenden Scriptes ein oder wählen Sie eins aus, nachdem Sie das nebenstehende Symbol angeklickt haben.
Wenn das auszuführende Script noch nicht existiert, klicken Sie auf »Neues Script«, um den Editor aufzurufen. Alternativ kann ein neues Script auch durch Klick auf die Schaltfläche »Neu« im Archive »Archive -> System -> David -> Automation -> Scripte« erstellt werden.
Mit der Schaltfläche »Bearbeiten« kann ein bestehendes Script angepasst werden.
Erläuterung des Beispiel-Scripts »Feuermelder«
Hinweis:
Dieses Beispiel-Script befindet sich im Archive »Archive -> System -> David -> Automation -> Scripte« des David InfoCenter.
| Befehl | Erläuterung |
// *************** Beispiel-Script "Feuermelder" *****************
// Das Script überprüft, ob die aktuelle Adresse zu einem Feuer-
// melder gehört und ob deren Wert 1 beträgt.
// Ist das der Fall, wird per SMS ein Warnhinweis versendet,
// der zusätzlich die Gruppenadresse des Feuermelders enthält.
| Hierbei handelt es sich um ein Kommentarfeld. Kommentare müssen mit dem JavaScript Befehl »//« beginnen. |
| if (m_rxsr.from == "6/1/24" && m_rxsr.value == 1) | Wenn (»if«) die Bedingung »(m_rxsr.from == "6/1/24" && m_rxsr.value == 1)« zutrifft, werden die innerhalb der beiden geschweiften Klammern (»{« und »}«) aufgeführten Befehle ausgeführt. Falls diese Bedingung nicht zutrifft, werden alle Befehle innerhalb der geschweiften Klammern übersprungen.
In diesem Beispiel wird überprüft, ob die Bus-Adresse - welche diese Regel aufgerufen hat (»m_rxsr.from«) - mit der Bus-Adresse »6/1/24« übereinstimmt. Des weiteren wird mit »&&« festgelegt, dass eine zweite Bedingung zutreffen muss: Der Wert der Bus-Adresse - welche diese Regel aufgerufen hat (»m_rxsr.value«) - muss »1« sein.
|
| { | Anfang der Befehlskette, wenn die »if«-Bedingung zutrifft. |
| var oNumber = "Bitte Handynummer eintragen"; | Tragen Sie hier innerhalb der Anführungszeichen eine beliebige Handynummer ein, um diese der Variablen »var oNumber« zuzuweisen. |
| var DvApi = new ActiveXObject("DVOBJAPILib.DvISEApi"); |
An dieser Stelle wird über den Aufruf eines ActiveXObjectes ein Zugriff auf ein Archive des DvISE Servers ermöglicht. |
| var oAcc = DvApi.Logon(); |
Über das zuvor erstellte Objekt »var DvApi = new ActiveXObject("DVOBJAPILib.DvISEApi");« erfolgt eine Anmeldung an den DvISE Server.
|
| var oArchiveOut = oAcc.GetSpecialArchive("102"); | Hier handelt es sich um einen speziellen DvAPI Befehl, der das Archive »Ausgang« des aktuell angemeldeten Users bzw. ab David V8+ des übergebenen Benutzers auswählt. |
| var oNewItem = oArchiveOut.NewItem("2"); | DvAPI Befehl, der besagt, dass eine neue Nachricht im Format »eMail« erstellt werden soll. |
| oNewItem.BodyText.PlainText = | DvAPI-Befehl, der festlegt, dass die neue Nachricht im PlainText- und nicht im HTML-Format erstellt wird. |
| oNewItem.Save(oArchiveOut, 2); | DvAPI-Befehl, der das Objekt in dem oben festgelegten Archive »oArchiveOut« ablegt. |
| } | Ende der Befehlskette. |
Alternativ-Script anhand des Beispiels »Feuermelder« (ohne DvAPI Zugriff)
Erläuterung der Alternativ-Befehle
| Befehl | Erläuterung |
| var jobText = | Hierbei handelt es sich um eine JavaScript Variable, welche @@-Befehle enthält. Der Name der
Variablen kann frei definiert werden. |
| createJob(jobText); | Spezieller DvISE Befehl, welcher die in der Variablen (»jobText«) hinterlegten @@-Befehle ausführt. |
Hinweis:
Ausführliche Informationen zum Thema »DvAPI und Dokumentation« erhalten Sie im KnowledgeBase Artikel Q-103.080. Alle nutzbaren @@-Befehle sind in der David InfoCenter Online-Hilfe zu finden.
|