fhem befehle per .net socket senden

Begonnen von dutzend, 30 Juli 2013, 18:44:30

Vorheriges Thema - Nächstes Thema

dutzend

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é

Dirk

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

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

dutzend

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

rudolfkoenig

Noch wichtiger waere \n statt \r zu verwenden.

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