Seite 3 von 4

Re: HTTP Request Funktion

Verfasst: Do 12. Jan 2017, 23:43
von Sven
Hallo,
ich möchte mit einem HTTP-Request vom LMA auf einer lokalen Website im das Drücken einer Funkfernbedienung registrieren und darstellen.
Dazu sende ich beim Tastendruck den POST-Befehl "192.168.1.10/index.php/?info=Taste_AN". Die IP ist das NAS auf dem der Webserver läuft. Im PHP-Script versuche ich dann den Befehl zu empfangen:
<?php
$info = $_POST["info"];
if($info == "Taste_AN")
{
echo "Schalter gedrückt!";
}
?>
Der Befehl kommt aber dort nicht an. Gebe ich ihn direkt in die Browserzeile ein, funktioniert das perfekt.
Habe ich da einen Denkfehler.

Viele Grüße
Sven

Re: HTTP Request Funktion

Verfasst: Fr 13. Jan 2017, 00:02
von Sebi
Hi,

wie genau verschickst du den Post Befehl? Poste mal den Code des "Tastendrucks".

Gruß
Sebastian

Re: HTTP Request Funktion

Verfasst: Fr 13. Jan 2017, 08:38
von Sven
Hallo Sebastian,
das war ja mal eine schnelle Antwort. Danke dafür!
Ich nutze die vom Air-Studio 7.5.2 zur Verfügung gestellte HTTP-Request-Funktion. Also den POST-Befehl über den Button "Test" mit dem oben beschriebenen Inhalt "192.168.1.10/index.php/?info=Taste_AN". (siehe Grafik)
Viele Grüße
Sven

Re: HTTP Request Funktion

Verfasst: Fr 13. Jan 2017, 09:16
von Sebi
Hi,

so kann das nicht funktionieren. Hinter dem .php kommt kein / mehr.

Darüberhinaus musst du im AirStudio bei URL "192.168.1.10/index.php" und bei Daten "info=Taste_AN" eintragen. Dann sollte es gehen.

Gruß
Sebastian

Re: HTTP Request Funktion

Verfasst: Fr 13. Jan 2017, 20:40
von Sven
Hallo,
danke für den Tipp. Das mit dem / stimmt natürlich, war aber einer von vielen Versuchen ;-)
Jetzt resigniere ich aber langsam. Habe wieder Stunden probiert. Post-Befehle übermittelt mein Webserver (NAS vonQnap) irgendwie nicht und Get-Befehle funktionieren auch nicht. Habe mittlerweile alle erdenklichen Varianten ausprobiert. Bei den Homematic-Komponenten funktioniert auch alles problemlos.
Falls noch jemand eine Idee hat, würde ich mich freuen.
Viele Grüße
Sven

Re: HTTP Request Funktion

Verfasst: Sa 14. Jan 2017, 22:18
von Sven
Hallo,
es liegt nicht an dem LMA sondern irgendwie an meiner Umgebung. Das konnte ich mit Whireshark ermitteln. Kriege das auch nicht hin. Eigentlich will ich ja nur Zustände übergeben und da habe ich jetzt auf der tollen "schlaue-huette" Seite von Sebi die Lösung mit Auslesen der params.html gefunden. Genau das was ich suche um Zustände von Markern zu visualisieren. Funktioniert einwandfrei. Danke dafür.

Viele Grüße
Sven

Re: HTTP Request Funktion

Verfasst: Mo 16. Jan 2017, 13:03
von Bstar
Sowas in der Richtung habe ich auch gebastelt.

Bei mir läuft ein ESP8266 (4€ bei Ebay) als "Webserver", der sich einmal in der Sekunde beim LM als Webclient die params.htm holt und daraus eine kleine HTML-Seite bastelt. Diese Seite habe ich dann in Imperihome eingebunden, siehe Bild.

Die 32 Kästchen sind die Marker vom LM. Das rote Kästchen könnte dann z. B. ein geöffnetes Dachfenster anzeigen.

Das wird natürlich noch angepasst, später möchte ich nur einige Marker zeigen und sie beschriften.

Re: HTTP Request Funktion

Verfasst: Mo 16. Jan 2017, 15:36
von Sebi
Hi,

freut mich, dass meine Seite geholfen hat :-)

Ihr müsst nur aufpassen: Der Lightmanager Air erlaubt gleichzeitig 2 offene Sockets - also Verbindungen - (laut JBMedia). Fragt ihr jetzt die params.htm 1x pro Sekunde ab und habt vielleicht irgendwo im Hintergrund noch Scripte, die auf die params.htm zugreifen, kann der Abruf zeitweise schon mal lange dauern oder das Webinterface wird nicht geladen. (Hatte bei mir den Fall, dass ich 2x zeitgleich über iFrames die params.htm abgerufen habe und immer mal wieder lange Abrufzeiten/Timeouts bekam. Habe jetzt alles in eine Abfrage gepackt und es gibt keine Probleme mehr)

Nur so als kleiner Hinweis.

Gruß
Sebastian

Re: HTTP Request Funktion

Verfasst: Di 17. Jan 2017, 10:37
von Bstar
Hallo Sebi,

ein guter Hinweis, allerdings habe ich bei mir in dieser Beziehung (im Moment) keine Probleme. Ich lasse bei zwei ESP8266 Mikrocontroller gleichzeitig die params.htm abfragen und kann problemlos mit der normalen Oberfläche und Imperihome flüssig arbeiten.

Liegt wohl daran, dass - anders als bei Skripten - der Microcontroller mit nativem Code den Socket nur sehr kurz belegt. Und wenn er nicht bedient wird, steigt er sofort aus (da reden wir über Mikrosekunden) und probiert es eine Sekunde später (was für einen Microcontroller eine Ewigkeit ist). Er selbst bedient die Anfragen aus Imperihome weiterhin sofort, es könnte also lediglich sein, dass der Markerzustand mal eine Sekunde verspätet ist. Who cares? Dass die beiden Mikrocontroller sich ins Gehege kommen ist m. E. eher unwahrscheinlich.

Wenn das mit den maximal 2 Sockets stimmen sollte, könnte es - wie Du schreibst - beim Einsatz von Skripten über ein weiteres Gerät (z. B. Raspberry oder NAS) zu Problemen kommen. Ich habe zumindest schon mal so umgestellt, dass der 2. Mikrocontroller nicht mehr beim LM nachfragt, sondern vom ersten eine Webseite http://<ipadresse-esp8266-1>/params.htm abfragt, die eine Kopie vom LM zurückgibt. Also im Prinzip genau wie bei Dir, kann jetzt alles über eine Abfrage geregelt werden.

Re: HTTP Request Funktion

Verfasst: Sa 4. Feb 2017, 16:28
von Kaktus317
Kaktus317 hat geschrieben:
Do 5. Jan 2017, 18:41
Ich versuche gerade einen Befehl an "Maker" (IFTTT) zu senden (Post Befehl). Die URL ist wie folgt aufgebaut und funktioniert direkt im Browser einwandfrei: https://maker.ifttt.com/trigger/event_n ... h/key/XXXX

XXXX = User/Passwortcode
event_name = auszulösenes Ereignis

airStudio sagt mir immer "Socket-Fehler #11001 Host nicht gefunden."
Wodran kann das liegen? Besten Dank für die Untersützung!

Grüße :)
Mal die eigene Antwort liefern: Es scheint an dem https:// zu liegen. Auf "http://" funktioniert es.