FHEM-Daten über PHP abrufen extrem langsam

Begonnen von URHome, 03 April 2013, 18:11:45

Vorheriges Thema - Nächstes Thema

URHome

Hallo Leute,

ich will mir mit einem PHP-Programm die Daten aus meinem FHEM-Server raus holen und zwar mit

$url = "http://192.168.0.1:8083/fhem";
$html = file_get_contents($url);


Das funktioniert auch prinzipiell, dauert aber ewig. Minimum sind 10 sekunden. Es ist auch egal welche FHEM-Daten ich abrufe. Ob Hauptseite, nur ne JSONLIST (mein eigentliches Ziel) oder was auch immer. Andere Seiten gehen ratzfatz, genauso wie wenn ich die fhem-Seiten mit nem Browser abrufe.

Hat irgendjemand ne Idee was das sein könnte?

Wenn nicht muss ich mir mal anschauhen wie sich die Requests unterscheiden.

Achso: FHEM läuft auf ner FritzBox 7390 und das PHP (5.4) läuft noch auf nem Windows7-Rechner

Johannes

Hallo!
Hatte mit php die selben Probleme und damals leider keine Lösung gefunden. Notfalls vielleicht mit exec und curl?
Grüße!

URHome

Ich hab jetzt mal spasshalber das auf mein QNAP 219 deployed. Da läuft ein PHP 5.3. Und damit fluppt der Zugriff das es eine Pracht ist. Das hilft mir aber beim Entwickeln auch nicht weiter. Ich glaube ich versuch mal mein Glück mit curl oder Zend/HTTP. Allerdings muss ich erst mal checken ob ich die auch auf mein QNAP geprügelt kriege.

rudolfkoenig

Nach beantworten eines Requests macht FHEMWEB die HTTP Verbindung selbst nicht zu, erst wenn die andere Seite das macht, oder seit 60 Sekunden keine Anfrage ueber diese Verbindung gestellt wurde.

Vmtl. muss man PHP irgendwie instruiren, die Sendeseite nach der Anfrage zu schliessen.
Achtung: FHEMWEB beachtet die Headerdirektive "Connection: close" nicht.

URHome

Also mit curl scheint es zu funktionieren :). Wenn ich

if (!function_exists('curl_init')){
    die('cURL is not installed!');
}

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://fritz.box:8083/fhem?cmd=jsonlist+Irgendwas&XHR=1");

$output = curl_exec($ch);

curl_close($ch);



kriege ich die JSONLIST von irgendwas sofort geliefert

pole23

Hallo,

ich gehe mit PHP über Telnet auf FHEM und hole mir dann die xmllist, die ich dann mit PHP auswerte.
Geht wunderbar.