FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: Roger am 15 Februar 2015, 22:51:28

Titel: Telnet prompt konfigurierbar
Beitrag von: Roger am 15 Februar 2015, 22:51:28
Hallo zusammen,
ich betreibe mehrere FHEM Instanzen. Damit es bei der Eingabe von Befehlen in den verschiedenen telnet Sitzungen nicht zu Verwechslungen kommt, möchte ich gern den prompt konfigurierbar haben,
also statt fhem> den Instanznamen oder Hostnamen angeben können.
z.B. mit
attr tPort prompt hm_fhem>
meldet sich dann FHEM mit hm_fhem>
Habe allerdings keine Ahnung, wo das derzeit festgelegt wird (wohl 98_telnet.pm oder fhem.pl).
Wäre echt Klasse, wenn den Wunsch jemand umsetzen könnte  :)
Roger
Titel: Antw:Telnet prompt konfigurierbar
Beitrag von: betateilchen am 15 Februar 2015, 23:44:10
Zitat von: Roger am 15 Februar 2015, 22:51:28
Habe allerdings keine Ahnung, wo das derzeit festgelegt wird (wohl 98_telnet.pm oder fhem.pl).

98_telnet.pm, Zeile 279

Kannst Du in Deiner Installation problemlos selbst ändern ;)
Titel: Antw:Telnet prompt konfigurierbar
Beitrag von: Roger am 16 Februar 2015, 20:26:06
Hallo betateilchen,
vielen Dank, klappt  :)
Habe ein attribut telnetprompt angelegt und ein diff (mit Doku) erstellt.
Vielleicht kann das jemand prüfen und wenn es so OK ist auch einchecken  :D

Roger
Titel: Antw:Telnet prompt konfigurierbar
Beitrag von: betateilchen am 16 Februar 2015, 20:44:15
Das Attribut fehlt noch in der _Initialize



Index: 98_telnet.pm
===================================================================
--- 98_telnet.pm (Revision 8010)
+++ 98_telnet.pm (Arbeitskopie)
@@ -20,7 +20,7 @@
   $hash->{UndefFn} = "telnet_Undef";
   $hash->{AttrFn}  = "telnet_Attr";
   $hash->{NotifyFn}= "telnet_SecurityCheck";
-  $hash->{AttrList} = "globalpassword password ".
+  $hash->{AttrList} = "globalpassword password telnetprompt ".
                         "allowfrom SSL connectTimeout connectInterval ".
                         "encoding:utf8,latin1";
   $hash->{ActivateInformFn} = "telnet_ActivateInform";
@@ -185,6 +185,7 @@
     my $chash = TcpServer_Accept($hash, "telnet");
     return if(!$chash);
     $chash->{encoding} = AttrVal($name, "encoding", "utf8");
+    $chash->{telnetprompt}  = AttrVal($name, "telnetprompt", "fhem");
     syswrite($chash->{CD}, sprintf("%c%c%c", 255, 253, 0) ) if( AttrVal($name, "encoding", "") ); #DO BINARY
     $chash->{CD}->flush();
     syswrite($chash->{CD}, sprintf("%c%c%cPassword: ", 255, 251, 1)) # WILL ECHO
@@ -276,7 +277,7 @@

   $ret = "";
   $ret .= (join("\n", @ret) . "\n") if(@ret);
-  $ret .= ($hash->{prevlines} ? "> " : "fhem> ")
+  $ret .= ($hash->{prevlines} ? "> " : $hash->{telnetprompt}."> ")
           if($gotCmd && $hash->{prompt} && !$hash->{rcvdQuit});
   if($ret) {
     $ret = utf8ToLatin1($ret) if( $hash->{encoding} eq "latin1" );
@@ -429,6 +430,11 @@
         non-local connections.
         </li><br>

+    <a name="telnetprompt"></a>
+    <li>telnetprompt<br>
+        Sets the string for the telnet prompt, followed by >. Default is fhem, so the default prompt is fhem>
+        </li><br>
+
     <a name="SSL"></a>
     <li>SSL<br>
         Enable SSL encryption of the connection, see the description <a
@@ -576,6 +582,11 @@
         ausschlie&szlig;lich f&uuml;r nicht-lokale Verbindungen verlangt.
         </li><br>

+    <a name="telnetprompt"></a>
+    <li>telnetprompt<br>
+        Gibt die Zeichenkette an, welche gefolgt von > in der Telnet-Sitzung als Kommandoprompt ausgegeben wird.
+        </li><br>
+
     <a name="SSL"></a>
     <li>SSL<br>
         SSL-Verschl&uuml;sselung f&uuml;r eine Verbindung aktivieren. <a

Titel: Antw:Telnet prompt konfigurierbar
Beitrag von: betateilchen am 16 Februar 2015, 20:45:57
Um das einchecken zu lassen, musst Du den patch in der entsprechenden Forumrubrik, die für das telnet-Modul zuständig ist, posten.

FHEM/98_telnet.pm            rudolfkoenig         http://forum.fhem.de Automatisierung

Also im Bereich "Automatisierung".
Titel: Antw:Telnet prompt konfigurierbar
Beitrag von: Roger am 16 Februar 2015, 21:01:44
erledigt