/
HTTP POST Requests mit Loxone senden

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

Related pages