FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AndreR am 10 Juli 2014, 14:52:32

Titel: [gelöst] State eines Dummys von extern (z.B. PHP) ändern über die Telnet Schnitt
Beitrag von: AndreR am 10 Juli 2014, 14:52:32
Hallo,

vielleicht steh ich einfach nur auf dem Schlauch.
Ich versuche mittels eines PHP Scripts den State eines Dummys zu verändern. Dazu verbinde ich mich im Script über die Telnet Schnittstelle, setze meinen Befehl ab und beende.
Das ganze funktioniert von der Konsole auch wunderbar.
Im Script aber nicht.

Hab ich nen Denkfehler?


$fp=fsockopen("127.0.0.1","7072");
if($fp){
  $i = fputs($fp,"set dummydevice on"); #$i ist hiernach 18
  $i = fputs($fp,"exit"); # hiernach ist $i 4, also wurden die Befehle abgesetzt
  fclose($fp);
}

der Code läuft einwandfrei durch, aber der State des Devices ändert sich nicht.
verbinde ich mich per

telnet 127.0.0.1 7072
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set dummydevice off
exit
Connection closed by foreign host.

klappt es wunderbar.
Titel: Antw:State eines Dummys von extern (z.B. PHP) ändern über die Telnet Schnittstelle
Beitrag von: P.A.Trick am 10 Juli 2014, 20:27:22
Hm das hatte ich auch schon bei einem Shell Zugriff via Telnet....mir fällt aber gerade die Loesung nicht ein, aber ich glaube es war ein Laufzeitproblem das die Telnet Verbdinung zu schnell geschlossen wurde oder Dur noch ein Return oder ähnliches schicken musst! Sorry Alzheimer....am besten mal googlen!
Titel: Antw:State eines Dummys von extern (z.B. PHP) ändern über die Telnet Schnittstelle
Beitrag von: AndreR am 11 Juli 2014, 08:35:17
Sehr guter Tipp, vielen Dank. Ein beherztes Sleep nach Verbindung und Absetzen des Befehles sowie den Befehl um CRLF erweitern (wobei LF wahrscheinlich schon reichen würde...) und jetzt geht es:


$fp=fsockopen("127.0.0.1","7072");
sleep(2);
if($fp){
  $i = fputs($fp,"set dummydevice on".chr(10).chr(13));
  sleep(2);
  $i = fputs($fp,"exit".chr(10).chr(13));
  sleep(2);
   fclose($fp);
}

Titel: Antw:[gelöst] State eines Dummys von extern (z.B. PHP) ändern über die Telnet Schnitt
Beitrag von: P.A.Trick am 11 Juli 2014, 17:35:42
Freut mich das es klappt. Markierst du den Thread bitte noch als gelöst!? Vielen Dank!