Vielen Dank CoolTux, JustMe1968 und rudolfkoenig,
ok, habe verstanden, dass das perl Modul net::telnet der falsche bzw. nicht geeignete Weg ist und mir fhem2fhem und rfhem angesehen.
rfhem und fhem.pl:
Verwendet scheinbar das perl Modul IO::Socket::INET (versuche ich mal)
...
my $socket = IO::Socket::INET->new('PeerAddr' => $HOSTNAME,'PeerPort' => $HOSTPORT,'Proto' => 'tcp') ;
my $msg = $command."\n" ;
#Log3 $name, 3, "$msg";
my @values = RFHEM_GetNet($hash,$HOSTNAME);
if ( $values[1] eq "present") {
Log3 $name, 3, "Host present, executing command...";
syswrite($socket, $HOSTPW . "\n")if($hash->{PASSWORD});
print $socket $msg;
Log3 $name, 3, "Command executed."; }
else { Log3 $name, 3, "Error: host not present!"; }
...
Die Zeile, wo eine Ausgabe eines auf dem entfernten fhem System ausgeführten Befehls ausgewertet wird, habe ich nicht gefunden.
fhem2fhem:
adhoc finde ich nur die sub "FHEM2FHEM_SimpleRead( ..." die in etwa in die Richtung "Rückmeldung auf fhem command" gehen könnte. Da finde ich aber den zugehörigen fhem command nicht.
Da es sich um einen System dienst außerhalb von fhem handelt, wäre "blockieren des Dienstes" nicht ganz so tragisch, da er eh nur Werte liefern soll, wenn verfügbar. Damit der Dienst nicht hängt, fand ich die Möglichkeit bei net::telnet die "Timeout" und "Errmode" Parameter sehr hilfreich.
Auf "localhost" funktioniert das abfangen der Ausgabe eines fhem commands mit dem Systembefehl:
$a=`perl /opt/fhem/fhem.pl 7072 "list test" &`
Auf einem entfernten System (mit Aufruf des System telnet) müßte ich erst "fhem>" mit "exit" verlassen. Ob ich dann den Befehl wie auf localhost auf der Systemebene aufrufen kann habe ich noch nicht getestet
Nach wie vor bin dankbar für jeden Hinweis,
Gernot