Q-107.930

Automation Befehle über die DvISE WebBox versenden

Frage
Problem Wie können Automation Befehle direkt über die DvISE WebBox versendet werden?
Produkt Automation
Priorität normal
Effekt normal
Datum 1.02.2006

Antwort
Um direkt einen Befehl von einer WebSite senden zu können muss ein Formular erstellt werden, dass ein verstecktes Formularfeld mit dem Namen "AUTO-NameNachWahl_CTRL" enthält.

Beispiel als HTML-Code:
< input type=hidden name="AUTO-CREATE_CTRL" >

Ein Beispiel zu diesem Thema ist im KnowledgeBase Artikel Q-107.932 zu finden.

Damit die Schaltfläche für den Anwender sichtbar wird und vom DvISE Server verarbeitet werden kann, muss noch ein »Submit«-Button dem Formular-Abschnitt hinzugefügt werden.

Um einen bestimmten Ausgang zu schalten ist es erforderlich, noch zwei weitere »Input«-Felder anzulegen. Das erste Feld dient zur Benennung der Moduladresse:

  • EIB: x/x/x
    Beispiel: eib:1/2/3

  • Beckhoff: Ams–Net–ID/Port/Speicherbereich/Ausgang
    Beispiel: beckh:192.168.123.5.1.1/800/4020/123
Das zweite »Input«-Feld beinhaltet den Wert, den die Moduladresse empfangen soll, wie beispielsweise "0" oder "1".

Der Formularabschnitt im HTML-Quelltext würde dann zum Beispiel folgendermaßen aussehen:

< form name=formAusgangSchalten >
< input type=hidden name="Date" value="##Date##" >
< input type=hidden name="Time" value="##TIME##" >
< input type=hidden name="DistantIP" value="##DISTANTIP##" >
< input type=text name="Ausgang" value="Bitte Adresse eingeben" >
< input type=text name="value" value="Bitte Wert eingeben" >
< input type=hidden name="AUTO-CREATE_CTRL" >
< input type=submit name="submit" value="Ausgang schalten" >
< /form >

Weitere Variablen sind im KnowledgeBase Artikel Q-107.931 zu finden. Mit diesen ließe sich auch eine Log-Funktion realisieren.

Das Ganze könnte natürlich auch mit JavaScript über ein »onClick-Event« realisiert werden. Darüber hinaus könnten auch Werte in die Formularfelder geschrieben und das Formular abgesendet werden.

Damit nun von David beim Versenden des Formulars etwas ausgeführt wird, müssen im gleichen Verzeichnis, in dem der Eintrag der "HTML-Seite" abgelegt wurde, noch folgende Einträge angelegt werden:

DefOk-"Name des versteckten Formularfeldes"_CTRL
DefError-"Name des versteckten Formularfeldes"_CTRL
"Name des versteckten Formularfeldes"_CTRL

Diese Einträge müssen dem Namen des versteckten Formularfeldes entsprechen:

Beispiel:
DefOk-CREATE_CTRL
DefError-CREATE_CTRL
CREATE_CTRL

Der Inhalt der DefOK-CREATE_CTRL- und der DefError-CREATE_CTRL-Einträge kann mit allen HTML-, JavaScript- und DvISE-Befehlen frei gestaltet werden. Die DefOK-CREATE_CTRL-Seite wird aufgerufen, wenn ein Befehl erfolgreich vom DvISE Server empfangen wurde. Die DefError-CREATE_CTRL Seite hingegen wird aufgerufen, wenn ein Fehler aufgetreten ist.

Der Inhalt der CREATE_CTRL könnte im einfachsten Fall folgendermaßen aussehen:

@@Datenformat automation
@@an ##module##
@@value ##value##

Hier werden nur die beiden Werte aus dem Formular ausgelesen und als Job vom DvISE Server verarbeitet.

Soll direkt eine Log-Funktion eingebaut werden, könnte der Inhalt des CREATE_CTRL-Eintrages folgendermaßen aussehen:

@@JobAnfang
@@Datenformat email
@@an Name@Domain.de
@@von ##DistantIP##
@@Betreff Statusaenderung an "##Ausgang##", Wert: "##value##"

Dieser Befehl wurde von folgendem PC gesendet: ##DistantIP##
an folgendem Datum: ##Date##
und um folgende Uhrzeit gesendet: ##Time##
Folgendes Modul wurde geschaltet: ##Ausgang##
Folgender Wert wurde gesendet: ##value##
@@JobEnde

@@JobAnfang
@@Datenformat automation
@@an ##module##
@@value ##value##