FHEM > Mobile Devices

Frage zu Telnet-Kommunikation

(1/2) > >>

Bednorz:
Hallo Leute,
ich bin gerade dabei eine App für mein Smarthome zu programmieren. Dafür nutze ich die Unity Engine, also eigentlich C#. Derzeit verbinde ich mit FHEM über .Net-Socket per Telnet. Soweit funktioniert das alles auch wunderbar. Mein Problem ist allerdings, wenn die Verbindung zwischen App-Gerät und FHEM-Raspi nicht so gut ist (schwaches WLAN etc.). Das führt dazu, dass größere Nachrichten, wie zum Beispiel "list -r", manchmal geteilt werden. Leider habe ich bisher keine Möglichkeit gefunden festzustellen wann die Nachricht, die ich von FHEM erwarte fertig ist. Häufig hat man ja einen Header oder ein bestimmtes Zeichen am Ende der Nachricht, um genau das feststellen zu können. Hat FHEM-Telnet sowas auch und ich übersehe es nur oder wie kann ich das machen?

mfG Bednorz

rudolfkoenig:
Man koennte dafuer den prompt benutzen.
Oder JsonList2 statt "list -r" verwenden.

Bednorz:
Mit "prompt" meinst du, wenn man über Telnet einfach eine leere Nachricht schickt und fhem "fhem> " als Antwort schickt? Stimmt, das könnte ich probieren. Darauf könnte ich dann prüfen und habe so mit Nachrichtenende.
Werde ich mich mal reindenken. Danke für den Tipp.

Bednorz:
Hallo,
ich habe den Abend jetzt damit verbracht zu versuchen die ganze Sache mit dem Prompt umzusetzen. Aus mir nicht erklärlichen Gründen funktioniert das aber nicht. Deswegen bin ich auf die Idee gekommen mir das Telnet-Modul anzuschauen und zu versuchen ein EOF-Symbol bzw. Phrase einzubauen. Leider bin ich absolut kein Perl-Profi (nichtmal ein Anfänger) und bin ziemlich stark gescheitert.
An welcher Stelle müsste ich etwas anpassen, um ans Ende einer Nachricht immer etwas anzuhängen oder könnte sich vielleicht sogar jemand erbarmen einen Patch für das Modul zu schreiben und vielleicht ein optionales Attribut in das Modul einzubauen, das einem ermöglicht einen EOD-String zu definieren?

mfG Bednorz

rudolfkoenig:
Und in welcher Eigenschaft soll sich dieses neue Feature von dem aktuell implementierten prompt sich unterscheiden? "Aus mir nicht erklärlichen Gründen funktioniert das aber nicht." ist mAn keine gueltige Spezifikation.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln