2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 12:49:34 +00:00

74_Unifi.pm:fixed blockClient

git-svn-id: https://svn.fhem.de/fhem/trunk@15930 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
wuehler 2018-01-19 21:11:09 +00:00
parent fb4f285e7d
commit 065b27c358
2 changed files with 50 additions and 1 deletions

View File

@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it. # Do not insert empty lines here, update check depends on it.
- bugfix: 74_Unifi: fixed blockClient
- bugfix: 98_dewpoint.pm: Fix event processing when updating STATE - bugfix: 98_dewpoint.pm: Fix event processing when updating STATE
- bugfix: 73_ElectricityCalculator.pm: Spelling error - bugfix: 73_ElectricityCalculator.pm: Spelling error
- change: 74_XiaomiBTLESens: Code clean - change: 74_XiaomiBTLESens: Code clean

View File

@ -8,6 +8,8 @@
# enable/disable WLAN, new client-Reading essid # enable/disable WLAN, new client-Reading essid
# V2.1 # V2.1
# - feature: 74_Unifi: add new set command to en-/disable Site Status-LEDs # - feature: 74_Unifi: add new set command to en-/disable Site Status-LEDs
# V2.1.1
# - bugfix: 74_Unifi: fixed blockClient
package main; package main;
@ -1121,6 +1123,52 @@ sub Unifi_DisconnectClient_Receive($) {
return undef; return undef;
} }
###############################################################################
sub Unifi_BlockClient_Send($@) {
my ($hash,@clients) = @_;
my ($name,$self) = ($hash->{NAME},Unifi_Whoami());
Log3 $name, 5, "$name ($self) - executed with count:'".scalar(@clients)."', ID:'".$clients[0]."'";
my $id = shift @clients;
HttpUtils_NonblockingGet( {
%{$hash->{httpParams}},
url => $hash->{unifi}->{url}."cmd/stamgr",
callback => \&Unifi_BlockClient_Receive,
clients => [@clients],
data => "{'mac': '".$hash->{clients}->{$id}->{mac}."', 'cmd': 'block-sta'}",
} );
return undef;
}
###############################################################################
sub Unifi_BlockClient_Receive($) {
my ($param, $err, $data) = @_;
my ($name,$self,$hash) = ($param->{hash}->{NAME},Unifi_Whoami(),$param->{hash});
Log3 $name, 5, "$name ($self) - executed.";
if ($err ne "") {
Unifi_ReceiveFailure($hash,{rc => 'Error while requesting', msg => $param->{url}." - $err"});
}
elsif ($data ne "") {
if ($param->{code} == 200 || $param->{code} == 400 || $param->{code} == 401) {
eval { $data = decode_json($data); 1; } or do { $data = { meta => {rc => 'error.decode_json', msg => $@} }; };
if ($data->{meta}->{rc} eq "ok") {
Log3 $name, 5, "$name ($self) - state:'$data->{meta}->{rc}'";
}
else { Unifi_ReceiveFailure($hash,$data->{meta}); }
} else {
Unifi_ReceiveFailure($hash,{rc => $param->{code}, msg => "Failed with HTTP Code $param->{code}."});
}
}
if (scalar @{$param->{clients}}) {
Unifi_BlockClient_Send($hash,@{$param->{clients}});
}
return undef;
}
############################################################################### ###############################################################################
sub Unifi_UnblockClient_Send($@) { sub Unifi_UnblockClient_Send($@) {
my ($hash,@clients) = @_; my ($hash,@clients) = @_;
@ -1161,7 +1209,7 @@ sub Unifi_UnblockClient_Receive($) {
} }
if (scalar @{$param->{clients}}) { if (scalar @{$param->{clients}}) {
Unifi_BlockClient_Send($hash,@{$param->{clients}}); Unifi_UnblockClient_Send($hash,@{$param->{clients}});
} }
return undef; return undef;