FHEM Forum

FHEM => Automatisierung => Thema gestartet von: zicki am 02 März 2014, 21:36:25

Titel: Rückgabewert in Variable
Beitrag von: zicki am 02 März 2014, 21:36:25
Hallo zusammen,

ich möchte von meinem AVR-Net-IO (ohne Ethersex) Werte loggen. Dazu habe ich folgendes in den FritzBoxUtils.pm eingefügt.

sub AVR (@) {
   my ($ip) = @_;
   use Net::Telnet;
   my $telnet = new Net::Telnet ( Timeout=>5, Errmode=>'die');
   $telnet->open($ip);
   $telnet->waitfor('/Start Telnet Server AVR II:/i');
   $telnet->waitfor('/SPS/i');
   sleep 1 ;
   my $test = $telnet->get;
   Log 2, "moin $test";
   $telnet->close;
   fhem "set AVR wert $test";
    "$test";
}
im Log steht alles wie erwartet drinn (5;?0;05;23,0;19,9; 36,4; 4,9;20,2; 550; 6; 0;27,7; 7,0;��;A2; | ; 0|130|023;OFF |WW; )
in der Variable AVR steht nur 5 also anscheinend nur der erste Wert. Habe schon etliche Sachen probiert sprint etc. und bin jetzt ratlos.
Wollte die Daten nur erst mal loggen sie gleich zu trennen wäre auch eine Möglichkeit aber wie?
Titel: Antw:Rückgabewert in Variable
Beitrag von: fiedel am 03 März 2014, 07:42:46
Hi,

mach dich mal zu Arrays in Perl schlau! Das ist das was du brauchst. Die Vaiable wird als Array definiert und dann kannst du die einzelnen Werte per "AVR[0] ; AVR[1] ; AVR[2]" usw. abrufen.
Titel: Antw:Rückgabewert in Variable
Beitrag von: zicki am 03 März 2014, 12:55:07
Danke! Probiere ich heute Abend gleich mal aus.
Titel: Antw:Rückgabewert in Variable
Beitrag von: UliM am 03 März 2014, 18:27:38
Hi,
diese Frage hat wohl nix mit der Forums-Software zu tun, verschiebe ich mal.
=8-)