diff --git a/fhem/FHEM/72_FRITZBOX.pm b/fhem/FHEM/72_FRITZBOX.pm index 8d76e4e04..8ed678aed 100644 --- a/fhem/FHEM/72_FRITZBOX.pm +++ b/fhem/FHEM/72_FRITZBOX.pm @@ -586,7 +586,7 @@ sub FRITZBOX_Get($@) Log3 $name, 3, "FRITZBOX: get $name $cmd ".join(" ", @val); my ($a, $h) = parseParams( join (" ", @val) ); @val = @$a; - #{ use Data::Dumper;; Dumper parseParams("{ a;;b };;c;;{ d;;e }", ';;') } + return "Wrong number of arguments, usage: get $name tr064command service control action [argName1 argValue1] [argName2 argValue2] ..." if int @val <3 || int(@val) %2 !=1; @@ -1252,8 +1252,11 @@ sub FRITZBOX_Readout_Run_Web($) 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 .= "&lanDevice=landevice:settings/landevice/list(ip,name,mac,active,wlan)"; # LAN devices - # $queryStr .= "&wlanList=wlan:settings/wlanlist/list(state,is_guest,mac)"; # WLAN devices + $queryStr .= "&wlanList=wlan:settings/wlanlist/list(mac,speed_rx)"; # WLAN devices + #wlan:settings/wlanlist/list(hostname,mac,UID,state,quality,cipher,wmm_active,powersave,is_ap,ap_state,flags,flags_set,mode,speed,speed_rx,channel_width,streams) + $queryStr .= "&lanDevice=landevice:settings/landevice/list(ip,ethernet,ethernet_port,name,mac,active,online,wlan,speed)"; # LAN devices + #landevice:settings/landevice/list(name,ip,mac,UID,dhcp,wlan,ethernet,active,static_dhcp,manu_name,wakeup,deleteable,source,online,speed,wlan_UIDs,auto_wakeup,guest,url,wlan_station_type,vendorname) + #landevice:settings/landevice/list(name,ip,mac,parentname,parentuid,ethernet_port,wlan_show_in_monitor,plc,ipv6_ifid,parental_control_abuse,plc_UIDs) $queryStr .= "&init=telcfg:settings/Foncontrol"; # Init $queryStr .= "&box_stdDialPort=telcfg:settings/DialPort"; #Dial Port $queryStr .= "&dectUser=telcfg:settings/Foncontrol/User/list(Id,Name,Intern,IntRingTone,AlarmRingTone0,RadioRingID,ImagePath,G722RingTone,G722RingToneName)"; # DECT Numbers @@ -1386,6 +1389,13 @@ sub FRITZBOX_Readout_Run_Web($) } FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->radioCount", $runNo; +# Create WLAN-List + my %wlanList; + foreach ( @{ $result->{wlanList} } ) { + $wlanList{$_->{mac}} = $_->{speed_rx}; + FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->wlanDevice->".$_->{mac}, $_->{speed_rx}; + } + # Create LanDevice list and delete inactive devices my %oldLanDevice; #collect current mac-readings (to delete the ones that are inactive or disappeared) @@ -1397,11 +1407,25 @@ sub FRITZBOX_Readout_Run_Web($) foreach ( @{ $result->{lanDevice} } ) { my $dIp = $_->{ip}; my $dName = $_->{name}; - $dName .= " (WLAN)" if $_->{wlan} == 1; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->landevice->$dIp", $dName; $landevice{$dIp}=$dName; # Create a reading if a landevice is connected if ($_->{active} == 1) { + if ($_->{ethernet} == 0 && $_->{wlan} == 1) { + $dName .= " ("; + $dName .= "guest" if $_->{guest}; + $dName .= "WLAN"; + $dName .= ", " . $wlanList{$_->{mac}} . " Mbit/s" if defined $wlanList{$_->{mac}}; + $dName .= ")"; + } + if ( $_->{ethernet} == 1 ) { + $dName .= " ("; + $dName .= "guest" if $_->{guest}; + $dName .= "LAN" . $_->{ethernet_port}; + $dName .= ", 1 Gbit/s" if $_->{speed} == 1000; + $dName .= ", " . $_->{speed} . " Mbit/s" if $_->{speed} != 1000 && $_->{speed} != 0; + $dName .= ")"; + } my $rName = "mac_".$_->{mac}; $rName =~ s/:/_/g; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName, $dName; @@ -4800,7 +4824,9 @@ sub FRITZBOX_fritztris($)
get <name> tr064Command <service> <control> <action> [[argName1 argValue1] ...]
get Fritzbox tr064Command X_AVM-DE_OnTel:1 x_contact GetDECTHandsetInfo NewDectID 1
get <name> tr064Command <service> <control> <action> [[argName1 argValue1] ...]
get Fritzbox tr064Command X_AVM-DE_OnTel:1 x_contact GetDECTHandsetInfo NewDectID 1