[patch] 98_telnet.pm - globalen Titel automatisch als prompt setzen

Begonnen von betateilchen, 03 Juni 2016, 19:56:50

Vorheriges Thema - Nächstes Thema

betateilchen

Hallo Rudi,

gegeben sei:

attr global title {(split('\.', qx(hostname)))[0]}

damit sehe ich in FHEMWEB den Titel permanent im Browser.
Um den Titel auch in einer telnet Session zu sehen, schlage ich folgenden Patch vor:


Index: 98_telnet.pm
===================================================================
--- 98_telnet.pm (Revision 11601)
+++ 98_telnet.pm (Arbeitskopie)
@@ -194,7 +194,12 @@
     return if(!$chash);
     $chash->{canAsyncOutput} = 1;
     $chash->{encoding} = AttrVal($name, "encoding", "utf8");
-    $chash->{prompt}  = AttrVal($name, "prompt", "fhem>");
+    $chash->{prompt}  = AttrVal($name, "prompt", AttrVal('global','title','fhem'));
+    if($chash->{prompt} =~ m/^{.*}$/s) {
+       $chash->{prompt}  = eval $chash->{prompt};
+       $chash->{prompt}  =~ s/\n//;
+    }
+    $chash->{prompt} .= '>';
     syswrite($chash->{CD}, sprintf("%c%c%c", 255, 253, 0) )
         if( AttrVal($name, "encoding", "") ); #DO BINARY
     $chash->{CD}->flush();


Das ergibt folgendes Ergebnis:


MBA:~ udo$ telnet fhem-dev 7072
Trying 192.168.123.158...
Connected to fhem-dev.
Escape character is '^]'.

fhem-dev>


Gerade beim Arbeiten parallel auf mehreren fhem-Instanzen ist das manchmal recht nützlich. Ja, ich weiß, man kann den prompt auch im telnet-device setzen, aber erstens muss der Titel dann an zwei Stellen gepflegt werden und zum zweiten wird in telnet kein eval ausgeführt.

Aufgekommen ist das Thema hier: https://forum.fhem.de/index.php/topic,42211.msg458021.html#msg458021
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Habs eingecheckt.

Mir passt zwar nicht, dass > immer hinzugefuegt wird, weiss aber nicht, wie man das Problem mit dem vom FHEMWEB auch benutzten title loesen soll.