Mit HTTP/UDP-Befehlen können z.B. Netzwerkgeräte (IP-Kameras, Router, etc.) über das LAN oder das Internet bedient bzw. konfiguriert werden. SHELL-Befehle hingegen erlauben die Ausführung beliebiger Programme, die lokal auf dem EDOMI-Server verfügbar sind.
Hinweis:
UDP- und SHELL-Befehle werden lediglich abgesetzt, d.h. die Antwort eines Servers oder die Ausgaben eines Shell-Kommandos werden nicht ausgewertet. Bei HTTP-Befehlen wird die Antwort des Servers ggf. in ein KO geschrieben (s.u.) und kann bei Bedarf mit entsprechenden Logiken ausgewertet werden.
Eigenschaften
Name: frei wählbarer Name des HTTP/UDP/SHELL-Befehls
URL / Shell-Befehl mit Pfad: je nach Typ (s.u.) wird hier ein URL oder ein Shell-Befehl angegeben
bei Typ "HTTP": vollständige HTTP-URL einschließlich GET-Parameter, ggf. Login-Daten und Portangabe (z.B. http://login:passwort@domain.com:80/test.php?var1=A&var2=B&...)
bei Typ "UDP": URL in der Form <IP-Adresse>:<Port> bzw. <Domain>:<Port> (die UDP-Daten werden im Feld "UDP-Daten" angegeben)
bei Typ "SHELL": vollständiger Shell-Befehl, ggf. mit Pfad (z.B. shutdown -h now)
Hinweis: Die maximale Gesamtlänge beträgt 10.000 Zeichen.
Typ:
HTTP-GET: nach dem Absetzen des HTTP-Requests (GET-Methode) wird die vollständige Antwort abgewartet (jedoch nicht ausgewertet)
UDP: sendet die Daten im Feld "UDP-Daten" an die angegebene URL (s.o.)
SHELL: führt den angegebenen Shell-Befehl aus (s.o.) und wartet bis zum Ende der Ausführung
Optionen: je nach gewähltem Befehls-Typ werden folgende Optionen eingeblendet
HTTP-GET:
KO (Antwort): dieses KO wird nach einem erfolgreichen HTTP-Request mit der Antwort des Servers befüllt (max. 10.000 Zeichen)
KO (Fehler): dieses KO wird im Fehlerfall auf den Wert 1 gesetzt (das KO wird nicht wieder auf 0 gesetzt!)
Timeout: der Verbindungsaufbau wird nach dieser Zeit (1..∞ Sekunden) abgebrochen
Fehler protokollieren: legt fest, ob Verbindungsfehler im Fehler-Log protokolliert werden
UDP:
UDP-Daten: Rohdaten, die per UDP an die o.g. URL übermittelt werden sollen
jede Zeile (Zeilenumbruch: Enter-Taste) repräsentiert ein UDP-Datenpaket, es können also mehrere Datenpakete mit einem UDP-Befehl gesendet werden
Hinweis: Die maximale Gesamtlänge beträgt 10.000 Zeichen.
Datentyp: legt fest, ob die Daten als String oder als Byte-Werte gesendet werden
Byte-Werte sind im Hex-Format (2-stellig und durch ein Komma getrennt) anzugeben (z.B. "0a,0B,ff,FF,01")
SHELL:
keine weiteren Optionen
Verwendung von Variablen
Bei HTTP/UDP-Befehlen können im Feld "URL" und "UDP-Daten" folgende Variablen verwendet werden (für SHELL-Befehle stehen diese Variablen aus Sicherheitsgründen nicht(!) zu Verfügung):
"{id}": Repräsentiert den Wert eines KOs mit dieser ID
z.B. "http://{3}/..." wird zu "http://1.2.3.4/..."
Hinweis: Existiert das KO nicht, wird der Ausdruck unverändert ausgegeben.
"{x/y/z}": Repräsentiert den Wert einer KNX-GA
z.B. "http://domain.com/?temperatur={1/2/3}&..." wird zu "http://domain.com/?temperatur=23.5&..."
Hinweis: Existiert die KNX-GA nicht, wird der Ausdruck unverändert ausgegeben.
Technische Hinweise
HTTP/UDP/SHELL-Befehle werden in einer Warteschlange organisiert, d.h. ein Befehl wird u.U. nicht unmittelbar ausgeführt: Ein HTTP/UDP/SHELL-Befehl wird erst ausgeführt, wenn der vorherige HTTP/UDP/SHELL-Befehl vollständig ausgeführt wurde (ggf. wartet z.B. ein HTTP-Request auf eine Antwort).
Bei einem HTTP-Request wird für eine einstellbare Zeit (Timeout) auf eine Reaktion des Servers gewartet. Nach einem erfolgreichen Verbindungsaufbau wird die Antwort des Servers abgewartet und ggf. in ein KO geschrieben (maximal 10.000 Zeichen, s.o.).
UDP-Befehle werden "verbindungslos" abgesetzt, d.h. EDOMI sendet die UDP-Datenpakte an einen Server und wartet nicht auf eine Reaktion.
Bei SHELL-Befehlen wird die vollständige Ausführung des Befehls abgewartet. Beträgt die Laufzeit eines SHELL-Befehls mehr als 5 Minuten, wird die Warteschlange für einen weiteren HTTP/UDP/SHELL-Befehl freigegeben. Der SHELL-Befehl wird jedoch weiterhin im Hintergrund ausgeführt.
Senden/Ausführen von HTTP/UDP/SHELL-Befehlen
HTTP/UDP/SHELL-Befehle werden über den entsprechenden Befehl***1007 gesendet.