2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-15 22:26:04 +00:00

FRITZBOX: bugfix unblessed reference FRITZBOX_StartRadio_Web

git-svn-id: https://svn.fhem.de/fhem/trunk@8855 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
tpoitzsch 2015-06-28 19:27:14 +00:00
parent b7e0a65069
commit f1aaa01463

View File

@ -61,12 +61,13 @@ sub FRITZBOX_Log($$$);
sub FRITZBOX_Init($); sub FRITZBOX_Init($);
sub FRITZBOX_Set_Cmd_Start($); sub FRITZBOX_Set_Cmd_Start($);
sub FRITZBOX_Shell_Exec($$); sub FRITZBOX_Shell_Exec($$);
sub FRITZBOX_StartRadio_Shell($@);
sub FRITZBOX_StartRadio_Web($@);
sub FRITZBOX_Readout_Add_Reading ($$$$@); sub FRITZBOX_Readout_Add_Reading ($$$$@);
sub FRITZBOX_Readout_Process($$); sub FRITZBOX_Readout_Process($$);
sub FRITZBOX_SendMail_Shell($@); sub FRITZBOX_SendMail_Shell($@);
sub FRITZBOX_SetCustomerRingTone($@); sub FRITZBOX_SetCustomerRingTone($@);
sub FRITZBOX_SetMOH($@); sub FRITZBOX_SetMOH($@);
sub FRITZBOX_StartRadio_Shell($@);
sub FRITZBOX_Wlan_Run($); sub FRITZBOX_Wlan_Run($);
sub FRITZBOX_Web_Query($$@); sub FRITZBOX_Web_Query($$@);
@ -333,7 +334,7 @@ sub FRITZBOX_Set($$@)
# . " convertMOH" # . " convertMOH"
# . " convertRingTone" # . " convertRingTone"
my $forceShell = (AttrVal( $name, "forceTelnetConnection", 0 ) == 1 || $hash->{REMOTE} == 0); my $forceShell = ( AttrVal( $name, "forceTelnetConnection", 0 ) == 1 || $hash->{REMOTE} == 0 );
# set alarm # set alarm
if ( lc $cmd eq 'alarm') { if ( lc $cmd eq 'alarm') {
@ -411,8 +412,7 @@ sub FRITZBOX_Set($$@)
} }
} }
elsif ( lc $cmd eq 'guestwlan') { elsif ( lc $cmd eq 'guestwlan') {
if (int @val == 1 && $val[0] =~ /^(on|off)$/) if (int @val == 1 && $val[0] =~ /^(on|off)$/) {
{
Log3 $name, 3, "FRITZBOX: set $name $cmd ".join(" ", @val); Log3 $name, 3, "FRITZBOX: set $name $cmd ".join(" ", @val);
push @cmdBuffer, "guestwlan ".join(" ", @val); push @cmdBuffer, "guestwlan ".join(" ", @val);
return FRITZBOX_Set_Cmd_Start $hash->{helper}{TimerCmd}; return FRITZBOX_Set_Cmd_Start $hash->{helper}{TimerCmd};
@ -443,8 +443,7 @@ sub FRITZBOX_Set($$@)
} }
#set Ring #set Ring
elsif ( lc $cmd eq 'ring') { elsif ( lc $cmd eq 'ring') {
if (int @val > 0) if (int @val > 0) {
{
Log3 $name, 3, "FRITZBOX: set $name $cmd ".join(" ", @val); Log3 $name, 3, "FRITZBOX: set $name $cmd ".join(" ", @val);
push @cmdBuffer, "ring ".join(" ", @val); push @cmdBuffer, "ring ".join(" ", @val);
return FRITZBOX_Set_Cmd_Start $hash->{helper}{TimerCmd}; return FRITZBOX_Set_Cmd_Start $hash->{helper}{TimerCmd};
@ -456,14 +455,12 @@ sub FRITZBOX_Set($$@)
return undef; return undef;
} }
elsif ( lc $cmd eq 'startradio') { elsif ( lc $cmd eq 'startradio') {
if (int @val > 0) if (int @val > 0) {
{
Log3 $name, 3, "FRITZBOX: set $name $cmd ".join(" ", @val); Log3 $name, 3, "FRITZBOX: set $name $cmd ".join(" ", @val);
return FRITZBOX_StartRadio_Web $hash, @val return FRITZBOX_StartRadio_Web $hash, @val
unless $forceShell; unless $forceShell;
return FRITZBOX_StartRadio_Shell $hash, @val; return FRITZBOX_StartRadio_Shell $hash, @val;
} }
} }
elsif ( lc $cmd eq 'tam') { elsif ( lc $cmd eq 'tam') {
if ( int @val == 2 && defined( $hash->{READINGS}{"tam".$val[0]} ) && $val[1] =~ /^(on|off)$/ ) { if ( int @val == 2 && defined( $hash->{READINGS}{"tam".$val[0]} ) && $val[1] =~ /^(on|off)$/ ) {
@ -495,8 +492,7 @@ sub FRITZBOX_Set($$@)
return undef; return undef;
} }
elsif ( lc $cmd eq 'wlan') { elsif ( lc $cmd eq 'wlan') {
if (int @val == 1 && $val[0] =~ /^(on|off)$/) if (int @val == 1 && $val[0] =~ /^(on|off)$/) {
{
Log3 $name, 3, "FRITZBOX: set $name $cmd ".join(" ", @val); Log3 $name, 3, "FRITZBOX: set $name $cmd ".join(" ", @val);
push @cmdBuffer, "wlan ".join(" ", @val); push @cmdBuffer, "wlan ".join(" ", @val);
return FRITZBOX_Set_Cmd_Start $hash->{helper}{TimerCmd}; return FRITZBOX_Set_Cmd_Start $hash->{helper}{TimerCmd};
@ -792,14 +788,12 @@ sub FRITZBOX_Readout_Run_Shell($)
my $startTime = time(); my $startTime = time();
my $slowRun = 0; my $slowRun = 0;
if ( int(time/3600) != $hash->{fhem}{lastHour} || $hash->{fhem}{LOCAL} == 1) if ( int(time/3600) != $hash->{fhem}{lastHour} || $hash->{fhem}{LOCAL} == 1) {
{
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->lastHour", int(time/3600); FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->lastHour", int(time/3600);
$slowRun = 1; $slowRun = 1;
FRITZBOX_Log $hash, 4, "Start update of slow changing device readings."; FRITZBOX_Log $hash, 4, "Start update of slow changing device readings.";
} }
else else {
{
FRITZBOX_Log $hash, 4, "Start update of fast changing device readings."; FRITZBOX_Log $hash, 4, "Start update of fast changing device readings.";
} }
@ -809,8 +803,7 @@ sub FRITZBOX_Readout_Run_Shell($)
return $name."|".encode_base64("Error|$result","") return $name."|".encode_base64("Error|$result","")
if $result; if $result;
if ($slowRun == 1) if ($slowRun == 1) {
{
# Init and Counters # Init and Counters
push @readoutCmdArray, ["", "ctlmgr_ctl r telcfg settings/Foncontrol" ]; push @readoutCmdArray, ["", "ctlmgr_ctl r telcfg settings/Foncontrol" ];
@ -1130,9 +1123,8 @@ sub FRITZBOX_Readout_Run_Web($)
my $sid; my $sid;
if ( int(time/3600) != $hash->{fhem}{lastHour} || $hash->{fhem}{LOCAL} == 1) { if ( int(time/3600) != $hash->{fhem}{lastHour} || $hash->{fhem}{LOCAL} == 1) {
FRITZBOX_Log $hash, 4, "Start update of slow changing device readings.";
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->lastHour", int(time/3600); FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->lastHour", int(time/3600);
FRITZBOX_Log $hash, 4, "Start update of slow changing device readings.";
# Box model # Box model
my $host = AttrVal( $name, "fritzBoxIP", "fritz.box" ); my $host = AttrVal( $name, "fritzBoxIP", "fritz.box" );
my $url = "http://$host/cgi-bin/system_status"; my $url = "http://$host/cgi-bin/system_status";
@ -1140,9 +1132,19 @@ sub FRITZBOX_Readout_Run_Web($)
my $agent = LWP::UserAgent->new( env_proxy => 1, keep_alive => 1, protocols_allowed => ['http'], timeout => 10 ); my $agent = LWP::UserAgent->new( env_proxy => 1, keep_alive => 1, protocols_allowed => ['http'], timeout => 10 );
my $response = $agent->get ($url); my $response = $agent->get ($url);
my $content = $response->content; my $content = $response->content;
$content=$1 if $content =~ /<body>(.*)<\/body>/; $content=$1 if $content =~ /<body>(.*)<\/body>/;
my @result = split /-/, $content; my @result = split /-/, $content;
# http://www.tipps-tricks-kniffe.de/fritzbox-wie-lange-ist-die-box-schon-gelaufen/
# 0 FritzBox-Modell
# 1 Annex/Erweiterte Kennzeichnung
# 2 Gesamtlaufzeit der Box in Stunden, Tage, Monate
# 3 Gesamtlaufzeit der Box in Jahre, Anzahl der Neustarts
# 4+5 Hashcode
# 6 Status
# 7 Firmwareversion
# 8 Sub-Version/Unterversion der Firmware
# 9 Branding, z.B. 1und1 (Provider 1&1) oder avm (direkt von AVM)
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_model", $result[0]; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_model", $result[0];
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_oem", $result[9]; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_oem", $result[9];
} }
@ -1290,8 +1292,7 @@ sub FRITZBOX_Readout_Run_Web($)
#Get TAM readings #Get TAM readings
$runNo = 1; $runNo = 1;
foreach ( @{ $result->{tam} } ) foreach ( @{ $result->{tam} } ) {
{
$rName = "tam".$runNo; $rName = "tam".$runNo;
if ($_->{Display} eq "1") if ($_->{Display} eq "1")
{ {
@ -1314,8 +1315,7 @@ sub FRITZBOX_Readout_Run_Web($)
# user profiles # user profiles
$runNo = 1; $runNo = 1;
$rName = "user01"; $rName = "user01";
foreach ( @{ $result->{userProfil} } ) foreach ( @{ $result->{userProfil} } ) {
{
# do not show data for unlimited, blocked or default access rights # do not show data for unlimited, blocked or default access rights
if ($_->{filter_profile_UID} !~ /^filtprof[134]$/ || defined $hash->{READINGS}{$rName} ) if ($_->{filter_profile_UID} !~ /^filtprof[134]$/ || defined $hash->{READINGS}{$rName} )
{ {
@ -1333,8 +1333,7 @@ sub FRITZBOX_Readout_Run_Web($)
# Diversity # Diversity
$runNo=1; $runNo=1;
$rName = "diversity1"; $rName = "diversity1";
foreach ( @{ $result->{diversity} } ) foreach ( @{ $result->{diversity} } ) {
{
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName, $_->{MSN}; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName, $_->{MSN};
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName."_state", $_->{Active}, "onoff" ; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName."_state", $_->{Active}, "onoff" ;
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName."_dest", $_->{Destination}; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName."_dest", $_->{Destination};
@ -1385,8 +1384,7 @@ sub FRITZBOX_Readout_Done($)
sub FRITZBOX_Readout_Process($$) sub FRITZBOX_Readout_Process($$)
{ {
my ($hash,$string) = @_; my ($hash,$string) = @_;
unless (defined $hash) unless (defined $hash) {
{
Log 1, "Fatal Error: no hash parameter handed over"; Log 1, "Fatal Error: no hash parameter handed over";
return; return;
} }
@ -1475,7 +1473,6 @@ sub FRITZBOX_Readout_Process($$)
FRITZBOX_Log $hash, 4, $msg; FRITZBOX_Log $hash, 4, $msg;
} }
readingsEndUpdate( $hash, 1 ); readingsEndUpdate( $hash, 1 );
} }