mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
74_Unifi: added attr ignoreWiredClients & ignoreWirelessClients; added AP-Name discovery for wired clients; Patch from Andre Forum: 40287
git-svn-id: https://svn.fhem.de/fhem/trunk@14122 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
2b42984412
commit
b50763086e
@ -63,6 +63,8 @@ sub Unifi_Initialize($$) {
|
|||||||
$hash->{NotifyFn} = "Unifi_Notify";
|
$hash->{NotifyFn} = "Unifi_Notify";
|
||||||
$hash->{AttrList} = "disable:1,0 "
|
$hash->{AttrList} = "disable:1,0 "
|
||||||
."devAlias "
|
."devAlias "
|
||||||
|
."ignoreWiredClients:1,0 "
|
||||||
|
."ignoreWirelessClients:1,0 "
|
||||||
."httpLoglevel:1,2,3,4,5 "
|
."httpLoglevel:1,2,3,4,5 "
|
||||||
."eventPeriod "
|
."eventPeriod "
|
||||||
.$readingFnAttributes;
|
.$readingFnAttributes;
|
||||||
@ -802,19 +804,29 @@ sub Unifi_SetClientReadings($) {
|
|||||||
my ($name,$self) = ($hash->{NAME},Unifi_Whoami());
|
my ($name,$self) = ($hash->{NAME},Unifi_Whoami());
|
||||||
Log3 $name, 5, "$name ($self) - executed.";
|
Log3 $name, 5, "$name ($self) - executed.";
|
||||||
|
|
||||||
my ($apName,$clientName,$apRef,$clientRef);
|
my $apNames = {};
|
||||||
|
for my $apID (keys %{$hash->{accespoints}}) {
|
||||||
|
my $apRef = $hash->{accespoints}->{$apID};
|
||||||
|
$apNames->{$apRef->{mac}} = $apRef->{name} ? $apRef->{name} : $apRef->{ip};
|
||||||
|
}
|
||||||
|
|
||||||
|
my $ignoreWired = AttrVal($name,"ignoreWiredClients",undef);
|
||||||
|
my $ignoreWireless = AttrVal($name,"ignoreWirelessClients",undef);
|
||||||
|
|
||||||
|
my ($apName,$clientName,$clientRef);
|
||||||
for my $clientID (keys %{$hash->{clients}}) {
|
for my $clientID (keys %{$hash->{clients}}) {
|
||||||
$clientRef = $hash->{clients}->{$clientID};
|
$clientRef = $hash->{clients}->{$clientID};
|
||||||
$clientName = Unifi_ClientNames($hash,$clientID,'makeAlias');
|
$clientName = Unifi_ClientNames($hash,$clientID,'makeAlias');
|
||||||
|
|
||||||
for my $apID (keys %{$hash->{accespoints}}) {
|
next if( $ignoreWired && $clientRef->{is_wired} );
|
||||||
$apRef = $hash->{accespoints}->{$apID};
|
next if( $ignoreWireless && !$clientRef->{is_wired} );
|
||||||
if (defined $apRef->{mac} && defined $clientRef->{ap_mac}
|
|
||||||
&& $apRef->{mac} eq $clientRef->{ap_mac}) {
|
$apName = "unknown";
|
||||||
$apName = ($apRef->{name}) ? $apRef->{name} : $apRef->{ip};
|
if ($clientRef->{is_wired}
|
||||||
last;
|
&& defined $clientRef->{sw_mac} && defined($apNames->{$clientRef->{sw_mac}}) ) {
|
||||||
}
|
$apName = $apNames->{$clientRef->{sw_mac}};
|
||||||
|
} elsif (defined $clientRef->{ap_mac} && defined($apNames->{$clientRef->{ap_mac}}) ) {
|
||||||
|
$apName = $apNames->{$clientRef->{ap_mac}};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined $hash->{unifi}->{connectedClients}->{$clientID}) {
|
if (defined $hash->{unifi}->{connectedClients}->{$clientID}) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user