Autor Thema: Frage zu Telnet-Kommunikation  (Gelesen 2052 mal)

Offline Bednorz

  • New Member
  • *
  • Beiträge: 40
Frage zu Telnet-Kommunikation
« am: 08 März 2021, 19:27:10 »
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

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24484
Antw:Frage zu Telnet-Kommunikation
« Antwort #1 am: 08 März 2021, 19:36:21 »
Man koennte dafuer den prompt benutzen.
Oder JsonList2 statt "list -r" verwenden.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Bednorz

  • New Member
  • *
  • Beiträge: 40
Antw:Frage zu Telnet-Kommunikation
« Antwort #2 am: 08 März 2021, 20:16:20 »
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.

Offline Bednorz

  • New Member
  • *
  • Beiträge: 40
Antw:Frage zu Telnet-Kommunikation
« Antwort #3 am: 08 März 2021, 22:30:30 »
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

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24484
Antw:Frage zu Telnet-Kommunikation
« Antwort #4 am: 08 März 2021, 23:00:12 »
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.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17448
  • s/fhem\.cfg/configDB/g
Antw:Frage zu Telnet-Kommunikation
« Antwort #5 am: 10 März 2021, 22:19:09 »
An welcher Stelle müsste ich etwas anpassen, um ans Ende einer Nachricht immer etwas anzuhängen

Nirgends. Der Prompt ist genau das, was an das Ende einer/jeder Nachricht angehängt wird.
Und was in dem prompt drinsteht, ist sogar über das Attribut "prompt" vom Anwender konfigurierbar.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

 

decade-submarginal