FHEM Forum

FHEM => Sonstiges => Thema gestartet von: dutzend am 30 Juli 2013, 18:44:30

Titel: fhem befehle per .net socket senden
Beitrag von: dutzend am 30 Juli 2013, 18:44:30
Hallo,

ich versuche schon ne Weile mittels C# und der .net Socket-Klasse Befehle an FHEM zu schicken.
Die Verbindung wird aufgebaut aber befehlsmäßig tut sich nichts. Das Problem vermute ich bei der Authentifizierung und/oder der Befehlssyntax.
So habe ich es z.B. erfolglos versucht:


SocketClient client = new SocketClient();
string result = client.Connect("192.168.178.2", 8083);
result = client.Send("GET fhem?cmd=set+schalter+1");


Kann mir jemand noch einen Tipp geben?
Danke René
Titel: Aw: fhem befehle per .net socket senden
Beitrag von: Dirk am 30 Juli 2013, 18:54:32
Hallo René,

fehlt da nicht ein /
result = client.Send("GET /fhem?cmd=set+schalter+1");

ZitatDas Problem vermute ich bei der Authentifizierung
BasicAuth muss du voher aber noch setzen bzw. im FHEM abschalten

Ansonsten kannst du auch die Telnetverbindung verwenden.

Gruß
Dirk
Titel: Aw: fhem befehle per .net socket senden
Beitrag von: justme1968 am 30 Juli 2013, 18:56:39
ich denke es wäre sinnvoller den telnet port statt dem web port für so etwas zu verwenden.

ich vermute mal du möchtest eine ascii antwort und keine html seite.

gruss
  andre
Titel: Aw: fhem befehle per .net socket senden
Beitrag von: dutzend am 31 Juli 2013, 08:30:30
Danke für Eure Tipps, haben geholfen. Bin auf Telnet gewechselt...
Der Code sieht jetzt erstmalso aus:

            string result;
            SocketClient client = new SocketClient();
            result = client.Connect("192.168.178.1", 7072);
            result = client.Receive();
            result = client.Send("password\r\n");
            result = client.Receive();
            result = client.Send("set schalter on\r\n");
            result = client.Receive();


Wichtig waren auch die Zeilenenden.
Danke
Titel: Aw: fhem befehle per .net socket senden
Beitrag von: rudolfkoenig am 31 Juli 2013, 08:54:09
Noch wichtiger waere \n statt \r zu verwenden.

Oops. Sorry, hab die \n nicht gesehen, diese verschwanden in meinem Mailrader.