Was können wir verbessern?

Dokumentation

WebHook Control

Benötigt: IP-Symcon >= 4.0

Beschreibung

Das WebHook Control Modul bietet die Möglichkeit Skripte über einen Browser aufzurufen. Über den Symcon Connect Dienst sind auch Aufrufe außerhalb des lokalen Netzwerks möglich.
Es bietet weitergehend die Möglichkeit dem Skript Daten mitzuliefern.

Skripte, die durch den Webhook ausgeführt werden, beinhalten diese Systemvariablen

Konfigurationsseite

Einbindung in IP-Symcon

Das WebHook Control gehört zu den Kern Instanzen und ist somit sofort konfigurierbar. Innerhalb eines Browsers kann das jeweilig verknüpfte Skript mit "IP:PORT/hook/HOOKNAME" aufgerufen werden.

Um einen Hook einzurichten muss in der "WebHook Control" Instanz auf "Hinzufügen" geklickt werden. Folgend muss zuerst der Aufrufname des Hooks eingegeben werden und anschließend das Skript gewählt werden, welches durch den Hook ausgeführt werden soll.

Auch Aufrufe via Connect Control sind möglich.

Beispiel

Skript Aufruf

Das Beispielskript, welches aufgerufen werden soll, ist "WebHook TestSkript" mit der ObjektID "35909".

IPS_LogMessage("WebHook GET", print_r($_GET, true));
IPS_LogMessage("WebHook POST", print_r($_POST, true));
IPS_LogMessage("WebHook IPS", print_r($_IPS, true));
IPS_LogMessage("WebHook RAW", file_get_contents("php://input"));
echo "Meldung: " . $_GET['Meldung'];

Der Aufruf und das Ergebnis wären wiefolgt:

Browser

An IP-Symcon werden die Daten in Arrays dem Skript übergeben.

Meldung

Authentifizierung

Ein Beispiel wie eine automatische Authentifizierung über das Modul Control verwirklicht wurde.
Als Nutzername wurde "Symcon" und als Passwort wurde "passwort" gewählt.

Quellcode

if(!isset($_SERVER['PHP_AUTH_USER']))
    $_SERVER['PHP_AUTH_USER'] = "";
if(!isset($_SERVER['PHP_AUTH_PW']))
    $_SERVER['PHP_AUTH_PW'] = "";
 
if(($_SERVER['PHP_AUTH_USER'] != "Symcon") || ($_SERVER['PHP_AUTH_PW'] != "passwort")) {
    header('WWW-Authenticate: Basic Realm="Geofency WebHook"');
    header('HTTP/1.0 401 Unauthorized');
    echo "Authorization required";
    return;
}
echo "Willkommen im geschützten Bereich";

Wird der Hook aufgerufen, erscheint die Abfrage nach Nutzername und Passwort. Und die Daten werden via $Post-Array an das Skript verschickt.

Authentification