Hauptmenü

Webserver Request-Header

Begonnen von Phreak87, 17 Juli 2016, 03:02:52

Vorheriges Thema - Nächstes Thema

Phreak87

Hallo,

hab mal eine Frage ..

Ich hab mir auf meinen ESP8266 das Easy-ESP geflasht.
Easy ESP sendet im "Domoticz Http" Modus an einen definierten Webserver
eine Get anfrage mit folgendem Inhalt:

    GET /json.htm?type=command&param=switchlight&idx=1&switchcmd=On HTTP/1.1
    Host: 192.168.7.155
    Connection: close

... wie kann ich auf genau diesen Http-Get reagieren ? der FHEM-Webserver sucht nach Dateien
die dieser Anfrage entsprechen. Gibt es ein Modul dass den angefragten Header auswertet, damit
ich ein Notify daraus erstellen kann ?
Bzw. Etwas um auf definierte Get anfragen anders zu reagieren ? oder ...
Ein fertiges Modul für den EasyESP ...


amithlon

Hallo,

erstmal ist das ja die richtige Reaktion eines Webwersers. Du willst die Seite "json.html" vom Webserver haben.
Ich habe nicht in die Innereien von FHEM geschaut, wie PGM2 sich verhält.
Es müßte also im passenden Pfad für den Webserver eine Datei json.html existieren, die die Parameter einsammelt und weiter verarbeitet und dem ESP8266 eine Antwortseite schickt (wenn nötig).

Für meine ESP-Geschichten benutze ich nahezu ausschließlich MQTT und eigene Software, das war schon vor FHEM so und ließ sich gut einbinden.
Der Mosquitto stört auf dem Raspi wo FHEM läuft nicht weiter, so hoch ist das Messageaufkommen nicht.
Wäre von ESP-Seite dann auch nur ein publish switchlight On.

Soweit ich gesehen habe ist MQTT von EasyESP doch auch nutzbar?

Gruß aus Berlin
Michael


Phreak87

Hallo,

danke für deine Antwort.Das easyESP kann MQTT da hast du schon recht.
jedoch wollte ich das ganze über http-get machen weil die direkte Kommunikation
einfach akkurater ist und ich keine Zusatzsoftware benötige.
Im Internet ist auf jeder Seite nur der Weg über MQTT beschrieben, den ich wegen
oben genannten Gründen verhindern möchte.
hast du eine Idee für die Json.html wie ich ein "on" definieren könnte ?
die wäre ja dann nicht über die normale config steuerbar soweit ich das sehe ?

Grüße aus Bayern ;)
Markus

amithlon

Hallo,

kann ich Dir leider direkt nicht weiterhelfen, dazu müßte ich mich vermutlich erst über die Interna des FHEM-Webservers wühlen.
Vielleicht hat ja noch jemad eine Idee.

MQTT hat für solche Sachen den Vorteil, daß man sich z.B. um einen Sicherungs-Layer nicht selbst kümmern muß.
Bei Deinem Beispiel müßtest Du selbst klären, was Du machst, wenn die Anfrage nicht beantwortet wird, weil die FHEM-Seite es nicht erhalten hat oder auswerten konnte. Bei MQTT ist dieser Teil schon Protokollbestandteil.
Mit QoS 1 kümmert sich der MQTT-Client darum, daß er die Quittung vom Broker über den Erhalt bekommt usw.
Mit LastWill läßt sich intern ein Timeout setzen nach deren Ablauf der Borker eine Message schickt weil der Client ihm abhanden gekommen ist.

PS: ich weiß zwar nicht, was Du mit "akkurater" meinst, aber Mosquitto als MQTT-Broker gibt es wohl für fast jede Plattform, mit MQTT.fx kann man sich dann z.B. unter Windows einfach am Broker anmelden und Messages an die Clients lesen oder senden, macht die Fehlersuche für mich zumindest merklich einfache, weil ich z.B. mit SONOFF_1/Dose ein einfach zum Test die ESP-Steckdose schalten kann um zu schauen, ob die wenigstens ohne FHEM überhaupt reagiert.
Sensordaten so parallel ausgeben beim Testen hilft auch, weil man eben sieht, was da wirklich ankommt und ob der Fehler in der Bearbeitung in FHEM passiert.

Gerade mit den ESP8266 nutze ich durchaus mehrere Wege, Webserver auf dem ESP, MQTT.
Ich kenne easyESP wie gesagt nicht, mein Kram ist da selbstgeschrieben., ich mag die "eierlegenden Wollmilchsäue" nicht, gerade beim ESP hat man dann schnell Seiteneffekte wenn das nicht wirklich sauber zusammenspielt.

Vielleicht bin ich auch nur zu alt dazu...

Gruß aus Berlin
Michael