[gelöst]Befehle an FB 7170 senden

Begonnen von Harald, 14 November 2013, 17:05:05

Vorheriges Thema - Nächstes Thema

Harald

Hallo zusammen,

fhem läuft auf dem RasPi. Nun versuche ich aus fhem Befehle an die FB zu senden. Grundsätzlich klappt das. Die LED blinkt. Leider erscheint aber im Logfile bei jedem senden eines Befehls in dem Logfile die Meldung blinkFBat:1 und auf der RasPi-Konsole wird jedesmal eine 1 geschrieben. In der 99_myUtils steht folgendes
sub FBInfo_LED($)
{
use Net::Telnet;

my $name = "FBInfo_LED";
my $Port = "192.168.0.2";
my $User = "root";
my $Password = "9dk9jh9";
my $current= $_[0];

my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
Log GetLogLevel($name,4), "$name: Connecting to FritzBox:$Port";
$telnet->open($Port);
$telnet->waitfor('/login: $/i');
$telnet->print($User);
$telnet->waitfor('/Password: $/i');
$telnet->print($Password);
$telnet->waitfor('/# $/i');
Log GetLogLevel($name,4), "$name: LED aus ";
$telnet->print('echo 7,1 >/var/led');
my $output = $telnet->waitfor('/# $/i'); print $output;
Log GetLogLevel($name,4), "$name: ";
sleep(10);
$telnet->print('echo 7,2 >/var/led');
$output = $telnet->waitfor('/# $/i'); print $output;
Log GetLogLevel($name,4), "$name: Disconnecting...";
$telnet->print('exit');
}

und in meiner fhem.cfg# Überwachung, ob FHEM läuft
#
define blink.state dummy
attr blink.state alias FHEM_aktiv
attr blink.state loglevel 3
attr blink.state room MAX
define blinkFB.at at +*00:00:05 {&FBInfo_LED(my $current=Value("blink.state"))}
#


Hat jemand eine Idee, wie ich verhindern kann, dass bei jedem Schreibvorgang eine 1 ausgegeben wird. Ich will ja auf die FB schreiben und nicht auf die Konsole.

Schonmal herzlichen Dank für die Infos und viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Harald

Hallo zusammen,

ich habe den Fehler gefunden. In obigen, kopierten Script steht mehrmals "my $output = $telnet->waitfor('/# $/i'); print $output;". Warum am Ende der Zeilen jeweils "print $output;" steht weiß ich nicht. Jedenfalls wird damit die Variable $output, die ja 0 bei unwahr oder 1 bei wahr ist, auf der Konsole ausgegeben. Nach dem Deaktivieren dieses Befehls wird natürlich nichts mehr ausgegeben.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus