HTTP POST Requests mit Loxone senden

Wenn in der Schnittstellenbeschreibung angegeben ist, dass Daten mittels POST (statt GET) übertragen werden müssen, wird das folgendermaßen in Loxone konfiguriert:

Beispiel mit SimpleControl

Schnittstellenbeschreibung: https://www.simplecontrol.com/wp-content/uploads/2016/05/HTTPCommandInterface.pdf

Virtueller Ausgang

Hier die HTTP-Adresse inklusive Port angeben. Der Port ist meist ganz oben in der Schnittstellenbeschreibung angegeben, oder am Gerät direkt konfigurierbar.

Virtueller Ausgangs-Befehl

Das RunActivity-Beispiel in der Spezifikation wird mit der Syntax von cURL angegeben:

Der virtuelle Ausgangsbefehl muss für dieses Beispiel dann folgendermaßen angelegt sein:

Wichtig:

  • Befehl bei EIN muss die URL enthalten ohne den Hostnamen, deswegen nur /api/v1/runactivity.
  • In HTTP-Post-Befehl bei EIN werden die Daten übernommen. Im curl-Befehl ist der String, der gesendet wird, mit einfachen Anführungszeichen (') eingeschlossen. Diese Anführungszeichen dürfen nicht übernommen werden. Ebensowenig die Befehlsparameter von curl, also kein -d und kein -X POST.
  • HTTP-Methode bei EIN wird auf POST gesetzt.


Die Rückgabewerte des Aufrufs können nicht in Loxone weiterverwendet werden. Das heißt in dem Beispiel, die Antwort "status" : "success" kann nicht verarbeitet werden. Loxone bietet keine bidirektionale Kommunikation.


POST und GET Testscript für PHP

Das Script zeigt die eingehenden POST- und GET-Variablen an, und kann z.B. am LoxBerry eingesetzt werden, um zu sehen, was der Miniserver sendet.

Erstelle am LoxBerry dieses Script als /opt/loxberry/webfrontend/legacy/post.php

Test-Script POST und GET Daten
<?php

echo "------" . date("H:i:s") . "-----<br>";
$outstr = "-----" . date("H:i:s") . "-----\n";
$post = file_get_contents('php://input');
echo "POST: " . $post . "<br>";
$outstr .= "POST: " . $post . "\n";
$get =  print_r($_GET, true);
echo "GET: " . $get . "<br>";
$outstr .= "GET: " . $get . "\n";

file_put_contents ( "/tmp/post.txt", $outstr, FILE_APPEND );

?>

Die Datei als Download: post.php

Über den Webbrowser kann das Script dann aufgerufen werden mit http://loxberry/legacy/post.php

Es erzeugt eine Datei /tmp/post.txt. Mit diesem Shellbefehl kannst du mitschauen, was in der Datei passiert:

tail -f /tmp/post.txt

Die Ausgabe sieht dann so aus:

Der erste Aufruf wurde aus dem Webbrowser mit Query-Parameter post.php?browser=test durchgeführt.

Die beiden weiteren Aufrufe kommen vom Miniserver mit POST-Daten