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
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 ;)
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
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ßlich fü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üsselung für eine Verbindung aktivieren. <a
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".
erledigt