« Zurück zu Produkt

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.

Warning

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

Konfigurationsseite

WebSocket Support

Ab der IP-Symcon Version 5.2 nutzt das WebHook Control WebSockets und ermöglicht somit Echtzeitübermittlung.

Empfangene Daten können wie folgt erfasst und ausgegeben werden:

// Beim Empfangen landen die Daten im php://input Stream.
    IPS_LogMessage("WebSocket", file_get_contents("php://input"));

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.

Warning

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.

Warning

Eine Authentifizierung wird immer empfohlen, damit ein unerlaubter Zugriff von Außen auf IP-Symcon verhindert wird.

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

Einbindung via PHP-Modul

Neben dem Aufruf via Skript, ist es auch möglich über die Funktion "ProcessHookData()" innerhalb eines PHP-Moduls auf Hookaufrufe zu reagieren.

Dazu wird ein Hook auf die eigene InstanceID registriert. Anschließend wird die Funktion "ProcessHookData()" automatisch durch das Hook Control aufgerufen.

Beispiel

Dem Beispiel HookServe kann der Quellcode zur gesamten Handhabe eines WebHooks via PHP-Modul entnommen werden.

Haben Sie noch Fragen?