From 35ebe98b5865b403d72f75bda3c33bf38989d9ec Mon Sep 17 00:00:00 2001 From: tupol <> Date: Sat, 16 Dec 2017 10:00:25 +0000 Subject: [PATCH] FRITZBOX: bugfix for labor 113.06.98-48254 git-svn-id: https://svn.fhem.de/fhem/trunk@15617 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/72_FRITZBOX.pm | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/fhem/FHEM/72_FRITZBOX.pm b/fhem/FHEM/72_FRITZBOX.pm index e11a62531..3c176b5f4 100644 --- a/fhem/FHEM/72_FRITZBOX.pm +++ b/fhem/FHEM/72_FRITZBOX.pm @@ -1287,8 +1287,8 @@ sub FRITZBOX_Readout_Run_Web($) $queryStr .= "&wlanList=wlan:settings/wlanlist/list(mac,speed,speed_rx,rssi)"; # WLAN devices $queryStr .= "&wlanListNew=wlan:settings/wlanlist/list(mac,speed,rssi)"; # WLAN devices fw>=6.69 #wlan:settings/wlanlist/list(hostname,mac,UID,state,rssi,quality,is_turbo,cipher,wmm_active,powersave,is_ap,ap_state,is_repeater,flags,flags_set,mode,is_guest,speed,speed_rx,channel_width,streams) #wlan:settings/wlanlist/list(hostname,mac,UID,state,rssi,quality,is_turbo,wmm_active,cipher,powersave,is_repeater,flags,flags_set,mode,is_guest,speed,speed_rx,speed_rx_max,speed_tx_max,channel_width,streams,mu_mimo_group,is_fail_client) - $queryStr .= "&lanDevice=landevice:settings/landevice/list(ip,ethernet,ethernet_port,guest,name,mac,active,online,wlan,speed,UID)"; # LAN devices - $queryStr .= "&lanDeviceNew=landevice:settings/landevice/list(ip,ethernet,guest,name,mac,active,online,wlan,speed,UID)"; # LAN devices fw>=6.69 + $queryStr .= "&lanDevice=landevice:settings/landevice/list(mac,ip,ethernet,ethernet_port,guest,name,active,online,wlan,speed,UID)"; # LAN devices + $queryStr .= "&lanDeviceNew=landevice:settings/landevice/list(mac,ip,ethernet,guest,name,active,online,wlan,speed,UID)"; # LAN devices fw>=6.69 #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) #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,parentname,parentuid,ethernet_port,wlan_show_in_monitor,plc,ipv6_ifid,parental_control_abuse,plc_UIDs) $queryStr .= "&init=telcfg:settings/Foncontrol"; # Init @@ -1360,9 +1360,9 @@ sub FRITZBOX_Readout_Run_Web($) return $name."|".encode_base64($returnStr,""); } - # !!! copes with fw>=6.69 !!! + # !!! copes with fw 6.69 !!! if ( ref $result->{wlanList} ne 'ARRAY' ) { - FRITZBOX_Log $hash, 4, "Recognized query answer of firmware >= 6.69"; + FRITZBOX_Log $hash, 4, "Recognized query answer of firmware 6.69"; my $result2; my $newQueryPart; @@ -1412,19 +1412,19 @@ sub FRITZBOX_Readout_Run_Web($) $result2 = FRITZBOX_Web_Query( $hash, $queryStr ); %{$result} = ( %{$result}, %{$result2 } ); - # create fields for wlanList-Entries (for fw>=6.69) + # create fields for wlanList-Entries (for fw 6.69) $result->{wlanList} = $result->{wlanListNew}; foreach ( @{ $result->{wlanList} } ) { $_->{speed_rx} = $result->{ $_->{_node} }; } - # Create fields for lanDevice-Entries (for fw>=6.69) + # Create fields for lanDevice-Entries (for fw 6.69) $result->{lanDevice} = $result->{lanDeviceNew}; foreach ( @{ $result->{lanDevice} } ) { $_->{ethernet_port} = $result->{ $_->{_node} }; } - # Create fields for user-Entries (for fw>=6.69) + # Create fields for user-Entries (for fw 6.69) $result->{userProfil} = $result->{userProfilNew}; foreach ( @{ $result->{userProfil} } ) { $_->{filter_profile_UID} = $result->{ $_->{_node}."_filter" }; @@ -1507,10 +1507,10 @@ sub FRITZBOX_Readout_Run_Web($) foreach ( @{ $result->{wlanList} } ) { my $mac = $_->{mac}; $mac =~ s/:/_/g; - $wlanList{$mac}{speed} = $_->{speed}; - $wlanList{$mac}{speed_rx} = $_->{speed_rx}; + $wlanList{$mac}{speed} .= $_->{speed}; + $wlanList{$mac}{speed_rx} .= $_->{speed_rx}; #$wlanList{$mac}{speed_rx} = $result_lan->{$_->{_node}}; - $wlanList{$mac}{rssi} = $_->{rssi}; + $wlanList{$mac}{rssi} .= $_->{rssi}; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->wlanDevice->".$mac."->speed", $_->{speed}; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->wlanDevice->".$mac."->speed_rx", $wlanList{$mac}{speed_rx}; FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->wlanDevice->".$mac."->rssi", $_->{rssi}; @@ -1536,10 +1536,10 @@ sub FRITZBOX_Readout_Run_Web($) $landevice{$dIp}=$dName; $landevice{$UID}=$dName; # Create a reading if a landevice is connected - if ($_->{active} == 1) { + if ( $_->{active} ) { my $mac = $_->{mac}; $mac =~ s/:/_/g; - if ($_->{ethernet} == 0 && $_->{wlan} == 1) { + if ( !$_->{ethernet} && $_->{wlan} ) { $dName .= " ("; $dName .= "g" if $_->{guest}; $dName .= "WLAN"; @@ -1547,12 +1547,13 @@ sub FRITZBOX_Readout_Run_Web($) if defined $wlanList{$mac}; $dName .= ")"; } - if ( $_->{ethernet} == 1 ) { + #if ( $_->{ethernet} ) { + if ( $_->{speed} ) { $dName .= " ("; $dName .= "g" if $_->{guest}; $dName .= "LAN" . $_->{ethernet_port}; #$dName .= "LAN" . $result_lan->{$_->{_node}}; - $dName .= ", 1 Gbit/s" if $_->{speed} == 1000; + $dName .= ", 1 Gbit/s" if $_->{speed} eq "1000"; $dName .= ", " . $_->{speed} . " Mbit/s" if $_->{speed} != 1000 && $_->{speed} != 0; $dName .= ")"; }