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:
HTTP/UDP/SHELL-Befehle werden lediglich "unidirektional" verarbeitet, d.h. die Antwort eines Servers oder die Ausgaben eines Shell-Kommandos werden nicht(!) ausgewertet.
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/komplett: nach dem Absetzen des HTTP-Requests (GET-Methode) wird die vollständige Antwort abgewartet (jedoch nicht ausgewertet)
HTTP-GET/schnell: nach dem Absetzen des HTTP-Requests (GET-Methode) wird nur das erste Zeichen der 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
UDP-Daten (nur bei Typ "UDP"): 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.
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 HTTP-Befehlen wird maximal 10 Sekunden auf eine erste Reaktion des Servers gewartet (Verbindungs-Timeout). Nach einem erfolgreichen Verbindungsaufbau wird die Antwort des Servers abgewartet (mindestens 1 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.