From 396fdd3cecaf899d3f533dcf8ef84e5a8dd8e19c Mon Sep 17 00:00:00 2001 From: tpoitzsch <> Date: Thu, 25 Jun 2015 10:46:29 +0000 Subject: [PATCH] FRITZBOX: get luaQuery git-svn-id: https://svn.fhem.de/fhem/trunk@8823 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/72_FRITZBOX.pm | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/fhem/FHEM/72_FRITZBOX.pm b/fhem/FHEM/72_FRITZBOX.pm index 951efabda..24f936283 100644 --- a/fhem/FHEM/72_FRITZBOX.pm +++ b/fhem/FHEM/72_FRITZBOX.pm @@ -505,13 +505,31 @@ sub FRITZBOX_Get($@) my ($hash, $name, $cmd, @val) = @_; my $returnStr; - if (lc $cmd eq "ringtones") { + if ( lc $cmd eq "luaquery" && AttrVal( $name, "allowTR064Command", 0 ) ) { + Log3 $name, 3, "FRITZBOX: get $name $cmd ".join(" ", @val); + + return "Wrong number of arguments, usage: get $name luaQuery " if int @val !=1; + + $returnStr = "Result of query = '$val[0]'\n"; + $returnStr .= "----------------------------------------------------------------------\n"; + my $queryStr = "&result=".$val[0]; + my $result = FRITZBOX_Web_Query( $hash, $queryStr) ; + my $tmp = Dumper ($result->{result}); + $returnStr .= $tmp; + return $returnStr; + } + elsif (lc $cmd eq "ringtones") { Log3 $name, 3, "FRITZBOX: get $name $cmd ".join(" ", @val); $returnStr = "Ring tones to use with 'set ring '\n"; $returnStr .= "----------------------------------------------------------------------\n"; $returnStr .= join "\n", sort values %ringTone; return $returnStr; } + elsif ( lc $cmd eq "shellcommand" && int @val && AttrVal( $name, "allowShellCommand", 0 ) ) { + Log3 $name, 3, "FRITZBOX: get $name $cmd ".join(" ", @val); + my $shCmd = join " ", @val; + return FRITZBOX_Exec( $hash, $shCmd ); + } elsif (lc $cmd eq "tr064command" && AttrVal( $name, "allowTR064Command", 0 )) { # http://fritz.box:49000/tr64desc.xml #get Fritzbox tr064command DeviceInfo:1 deviceinfo GetInfo @@ -543,14 +561,10 @@ sub FRITZBOX_Get($@) $returnStr .= $tmp; return $returnStr; } - elsif ( lc $cmd eq "shellcommand" && int @val && AttrVal( $name, "allowShellCommand", 0 ) ) { - Log3 $name, 3, "FRITZBOX: get $name $cmd ".join(" ", @val); - my $shCmd = join " ", @val; - return FRITZBOX_Exec( $hash, $shCmd ); - } my $list = "ringTones:noArg"; - $list .= " tr064Command" if AttrVal( $name, "allowTr064Command", 0 ); + $list .= " luaQuery" if AttrVal( $name, "allowTR064Command", 0 ); + $list .= " tr064Command" if AttrVal( $name, "allowTR064Command", 0 ); $list .= " shellCommand" if AttrVal( $name, "allowShellCommand", 0 ); return "Unknown argument $cmd, choose one of $list"; } # end FRITZBOX_Get @@ -1108,7 +1122,7 @@ sub FRITZBOX_Readout_Run_Web($) my $returnStr; - my $queryStr = "&radio=configd:settings/WEBRADIO/list(Id,Name)"; # Webradio + my $queryStr = "&radio=configd:settings/WEBRADIO/list(Name)"; # Webradio $queryStr .= "&box_dect=dect:settings/enabled"; # DECT Sender $queryStr .= "&handset=dect:settings/Handset/list(User,Manufacturer,Model,FWVersion)"; # DECT Handsets $queryStr .= "&init=telcfg settings/Foncontrol";