Hallo zusammen.
Ich stehe vor einem ungelösten Problem.
Im Bezug auf mein Projekt
http://forum.fhem.de/index.php/topic,32030.0.html (http://forum.fhem.de/index.php/topic,32030.0.html)
Möchte ich gern folgendes auslesen: Rückgabeformat .xml
http://192.168.0.16:80/fsapi/GET_NOTIFIES?pin=1234&sid=2017521190
Nur jedes mal wenn ich die Seite aufrufe ist diese komplett Leer.
Lasse ich diese im Browser geöffnet, kommen alle möglichen Events rein. Z.b. wenn ich am Radio die Lautstärke ändere. Egal ob direkt am Gerät oder per App.
Deswegen heisst das Teil vermutlich GET_NOTIFIES. ;)
Wie stelle ich das an das in meinem Modul zu speichern und die Verbindung offen zu halten.
Grüße
Hi,
das klingt stark nach fehlenden Headern im Request (z.B. Cookies, Referer, usw.).
So wie du das ganze beschreibst, klingt das für mich nach einem unendlichen HTTP Stream wo dann die Events übertragen werden. So etwas ist mit den HTTPUtils nicht direkt möglich. So etwas könnte man mit DevIo implementieren, wo man in der InitFn den initialen HTTP Request sendet und dann nur noch via ReadFn die Events einliest und verarbeitet.
Beschreib doch mal etwas genauer wie das ganze funktioniert.
Viele Grüße
Markus
Hallo Markus,
vielen Dank für deine Antwort. Ich würde das gern näher erklären wie das Funktioniert. Kann es aber leider nicht.
Auch beim Sniffen ist mir das nicht so genau aufgefallen.
Wenn ich die Seite öffne (Browser) ist nichts enthalten.
Drehe ich zum Beispiel am Lautstärke-Regler, wird der neue Wert übermittelt und per Browser ausgegeben.
Wie könnte ich das raus bekommen, ich glaube der Browser gibt wenig Infos.
Grüße
Hi,
das wird umfangreicher.
Kurzform:
socket öffnen (nonblocking).
Den Socket in der select loop registrieren.
Im Modul eine readfn definieren.
fhem meldet sich dann bei Dir sobald Daten bereitstehen.
Vergleichbare Techniken findest Du zB im HMLAN modul, dort könntest Du beginnen Dich einzulesen.
vg
jörg
Ein TCP-Dump der das ganze aufzeichnet wäre schonmal ein Anfang. Dann kann man genau sehen wie das ganze läuft.
Viele Grüße
Markus
so wie der longpoll auch :)
Hallo Markus, danke für deine Antworten...
Ich werde mir das alles anlesen und möchte es lernen.
Jemand (Schroediman) hat mich vollsändig überholt und alles das (einfach so ohne fragen) schon eingebaut.
Wenn du Interesse hast, kannst du dir das mal anschauen. Wie ich finde super Arbeit. http://forum.fhem.de/index.php/topic,32030.0.html
Vllt. schaust du mal drüber und wenn du noch Verbesseringsvorschläge hast immer her damit.
Ich danke dir sehr für deine Hilfe und wenn ich darf werde ich noch bei anderen vorhaben bei dir nachfragen ;)
falls du doch noch selber basteln möchtest schau dir mal das harmony modul an.
das öffnet ein socker, hält es offen, baut alle daten die nacheinander rein kommen zusammen und parsed die darin enthaltenen daten. ohne das FHEM dabei blockiert wird.
genau das prinzip das herrmannj oben skizziert hat.
gruß
andre