Hauptmenü

Telnet Befehl Senden

Begonnen von ostseehuepfer, 11 Oktober 2015, 11:37:51

Vorheriges Thema - Nächstes Thema

ostseehuepfer

Hallo,

habe diesen Link gefunden und bin danach vorgegangen.

http://forum.fhem.de/index.php?topic=12606.15

Habe die IP Adresse abgeändert auf meinen Adressbereich und versuche nun das ganze mit {fhem("{Kanal_Umschalten}")} aufzurufen.
Dabei bringt er mir immer folgende Meldung

Bareword "Kanal_Umschalten" not allowed while "strict subs" in use at (eval 87) line 1.

Ich habe den Code in die 99_myUtils.pm kopiert.

Hoffe mir kann jemand helfen. Das ganze läuft bei mir aber auf einem Raspberry Pi

Grüße

rapster


ostseehuepfer

dann kommt


Undefined subroutine &main::Kanal_Umschalten called at (eval 6682) line 1.

?

rapster

du musst schon in deiner myUtils irgendwas haben was dem hier ähnelt...
sub Kanal_Umschalten() { }

franky08

Zitatirgendwas haben was dem hier ähnelt...

ähnelt, find ich lustig  ;)

Die sub sollte schon so heißen wie deren Aufruf  :)

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

rapster

Das natürlich schon, nur wird mein Beispiel nicht gerade viel nützen wenn er das 1:1 übernehmen sollte ohne weiteren code..  ;)

ostseehuepfer

Das ist der Inhalt


Kanal_Umschalten()
{
    use Net::Telnet();
    my $tab = new Net::Telnet (Timeout => 50);
    #my $fh1 = $tab->dump_log("telnetclient.txt"); <-- macht zum debuggen Sinn.
    #my $fh2 = $tab->input_log("telnetclient_input.txt"); <-- macht zum debuggen Sinn.
    #my $fh3 = $tab->output_log("telnetclient_output.txt"); <-- macht zum debuggen Sinn.

    $tab->open("192.168.11.15");
    $tab->print("xyz");
}

rapster

Das ähnelt meinem Beispiel leider nicht genug,  die Zeichen & Wörter die ich dir vorhin geschrieben habe sind das mindeste was vorhanden sein muss, mehr darfs sein, weniger nicht :)

franky08

Was sofort auffällt, das vor Kanal_Umschalten() sub fehlt
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

dev0

reload 99_myUtils ausgeführt?

ostseehuepfer

#10
So hab das hier als Antwort bekommen

Undefined subroutine &main::Kanal_Umschalten called at (eval 26) line 1.

das hab ich aufgerufen oben ober die leiste

{Kanal_Umschalten()}

und das die geänderte my 99 .

sub Kanal_Umschalten()
{
    use Net::Telnet();
    my $tab = new Net::Telnet (Timeout => 50);
    #my $fh1 = $tab->dump_log("telnetclient.txt"); <-- macht zum debuggen Sinn.
    #my $fh2 = $tab->input_log("telnetclient_input.txt"); <-- macht zum debuggen Sinn.
    #my $fh3 = $tab->output_log("telnetclient_output.txt"); <-- macht zum debuggen Sinn.

    $tab->open("192.168.11.15");
    $tab->print("xyz");
}


hab nach änderung in der datei fhem neu gestartet

hab ich noch fehler drin????

franky08

Das use Net::Telnet(); gehört m.W. nicht in die sub sondern an den Anfang der 99_myUtils ungefähr so:

package main;
use strict;
use warnings;
use POSIX;
use LWP::Simple;
use Net::Telnet();
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

ostseehuepfer

dann haut er mir beim speichern das um die ohren

Can't locate Net/Telnet.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/99_myUtils.pm line 1. BEGIN failed--compilation aborted at ./FHEM/99_myUtils.pm line 1.

und den bei ausführen

Undefined subroutine &main::Kanal_Umschalten called at (eval 26) line 1.

dev0

Net::Telnet hast du installiert?
Scheib mal in die Zeile direkt vor deine Sub: package main;

ostseehuepfer

muss das installiert werden? dachte das ist schon drin wo bekomme ich das her?

diese zeile davor hat nichts verändert