HTTP Request Funktion

Sven
Beiträge: 25
Registriert: So 3. Apr 2016, 15:02

Do 12. Jan 2017, 23:43

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
Gruß Sven

********************************
2x LM Air: SW:11.1 FW:11.1 HW:1.0
Steuerung: Beleuchtung, Rollos, Heimkino, Rauchmelder, Bewässerung
Anbindung: Infrarot, Intertechno, Homematic, FS20, HTTP, Alexa
Kommunikation: PHP, Javascript
Sebi
Beiträge: 334
Registriert: Do 18. Feb 2016, 13:22
Wohnort: Aachen

Fr 13. Jan 2017, 00:02

Hi,

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

Gruß
Sebastian
Darf's ein bisschen smarter sein? http://www.schlaue-huette.de ! :idea:
Sven
Beiträge: 25
Registriert: So 3. Apr 2016, 15:02

Fr 13. Jan 2017, 08:38

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
Dateianhänge
Unbenannt.JPG
Unbenannt.JPG (30.46 KiB) 26278 mal betrachtet
Gruß Sven

********************************
2x LM Air: SW:11.1 FW:11.1 HW:1.0
Steuerung: Beleuchtung, Rollos, Heimkino, Rauchmelder, Bewässerung
Anbindung: Infrarot, Intertechno, Homematic, FS20, HTTP, Alexa
Kommunikation: PHP, Javascript
Sebi
Beiträge: 334
Registriert: Do 18. Feb 2016, 13:22
Wohnort: Aachen

Fr 13. Jan 2017, 09:16

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
Darf's ein bisschen smarter sein? http://www.schlaue-huette.de ! :idea:
Sven
Beiträge: 25
Registriert: So 3. Apr 2016, 15:02

Fr 13. Jan 2017, 20:40

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
Gruß Sven

********************************
2x LM Air: SW:11.1 FW:11.1 HW:1.0
Steuerung: Beleuchtung, Rollos, Heimkino, Rauchmelder, Bewässerung
Anbindung: Infrarot, Intertechno, Homematic, FS20, HTTP, Alexa
Kommunikation: PHP, Javascript
Sven
Beiträge: 25
Registriert: So 3. Apr 2016, 15:02

Sa 14. Jan 2017, 22:18

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
Gruß Sven

********************************
2x LM Air: SW:11.1 FW:11.1 HW:1.0
Steuerung: Beleuchtung, Rollos, Heimkino, Rauchmelder, Bewässerung
Anbindung: Infrarot, Intertechno, Homematic, FS20, HTTP, Alexa
Kommunikation: PHP, Javascript
Bstar
Beiträge: 36
Registriert: Mo 2. Jan 2017, 11:05
Wohnort: Düsseldorfer Gegend

Mo 16. Jan 2017, 13:03

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.
Dateianhänge
marker.png
marker.png (51.99 KiB) 26188 mal betrachtet
--
LM Air und überwiegend GIRA
Sebi
Beiträge: 334
Registriert: Do 18. Feb 2016, 13:22
Wohnort: Aachen

Mo 16. Jan 2017, 15:36

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
Darf's ein bisschen smarter sein? http://www.schlaue-huette.de ! :idea:
Bstar
Beiträge: 36
Registriert: Mo 2. Jan 2017, 11:05
Wohnort: Düsseldorfer Gegend

Di 17. Jan 2017, 10:37

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.
--
LM Air und überwiegend GIRA
Kaktus317
Beiträge: 17
Registriert: So 18. Dez 2016, 00:53

Sa 4. Feb 2017, 16:28

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.
Antworten