code style Log3 Fn

This commit is contained in:
Marko Oldenburg 2020-01-08 04:21:09 +01:00
parent bc292b01f4
commit a7179c57ce

View File

@ -2,7 +2,7 @@
# #
# Developed with Kate # Developed with Kate
# #
# (c) 2017-2018 Copyright: Marko Oldenburg (leongaultier at gmail dot com) # (c) 2017-2020 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
# All rights reserved # All rights reserved
# #
# Special thanks goes to: # Special thanks goes to:
@ -262,7 +262,7 @@ sub Define($$) {
CommandAttr( undef, $name . ' room XiaomiBTLESens' ) CommandAttr( undef, $name . ' room XiaomiBTLESens' )
if ( AttrVal( $name, 'room', 'none' ) eq 'none' ); if ( AttrVal( $name, 'room', 'none' ) eq 'none' );
Log3 $name, 3, "XiaomiBTLESens ($name) - defined with BTMAC $hash->{BTMAC}"; Log3($name, 3, "XiaomiBTLESens ($name) - defined with BTMAC $hash->{BTMAC}");
$modules{XiaomiBTLESens}{defptr}{ $hash->{BTMAC} } = $hash; $modules{XiaomiBTLESens}{defptr}{ $hash->{BTMAC} } = $hash;
return undef; return undef;
@ -280,7 +280,7 @@ sub Undef($$) {
if ( defined( $hash->{helper}{RUNNING_PID} ) ); if ( defined( $hash->{helper}{RUNNING_PID} ) );
delete( $modules{XiaomiBTLESens}{defptr}{$mac} ); delete( $modules{XiaomiBTLESens}{defptr}{$mac} );
Log3 $name, 3, "Sub XiaomiBTLESens_Undef ($name) - delete device $name"; Log3($name, 3, "Sub XiaomiBTLESens_Undef ($name) - delete device $name");
return undef; return undef;
} }
@ -294,11 +294,11 @@ sub Attr(@) {
RemoveInternalTimer($hash); RemoveInternalTimer($hash);
readingsSingleUpdate( $hash, "state", "disabled", 1 ); readingsSingleUpdate( $hash, "state", "disabled", 1 );
Log3 $name, 3, "XiaomiBTLESens ($name) - disabled"; Log3($name, 3, "XiaomiBTLESens ($name) - disabled");
} }
elsif ( $cmd eq "del" ) { elsif ( $cmd eq "del" ) {
Log3 $name, 3, "XiaomiBTLESens ($name) - enabled"; Log3($name, 3, "XiaomiBTLESens ($name) - enabled");
} }
} }
@ -307,12 +307,12 @@ sub Attr(@) {
return return
"check disabledForIntervals Syntax HH:MM-HH:MM or 'HH:MM-HH:MM HH:MM-HH:MM ...'" "check disabledForIntervals Syntax HH:MM-HH:MM or 'HH:MM-HH:MM HH:MM-HH:MM ...'"
unless ( $attrVal =~ /^((\d{2}:\d{2})-(\d{2}:\d{2})\s?)+$/ ); unless ( $attrVal =~ /^((\d{2}:\d{2})-(\d{2}:\d{2})\s?)+$/ );
Log3 $name, 3, "XiaomiBTLESens ($name) - disabledForIntervals"; Log3($name, 3, "XiaomiBTLESens ($name) - disabledForIntervals");
stateRequest($hash); stateRequest($hash);
} }
elsif ( $cmd eq "del" ) { elsif ( $cmd eq "del" ) {
Log3 $name, 3, "XiaomiBTLESens ($name) - enabled"; Log3($name, 3, "XiaomiBTLESens ($name) - enabled");
readingsSingleUpdate( $hash, "state", "active", 1 ); readingsSingleUpdate( $hash, "state", "active", 1 );
} }
} }
@ -322,35 +322,35 @@ sub Attr(@) {
if ( $cmd eq "set" ) { if ( $cmd eq "set" ) {
if ( $attrVal < 120 ) { if ( $attrVal < 120 ) {
Log3 $name, 3, Log3($name, 3,
"XiaomiBTLESens ($name) - interval too small, please use something >= 120 (sec), default is 300 (sec)"; "XiaomiBTLESens ($name) - interval too small, please use something >= 120 (sec), default is 300 (sec)");
return return
"interval too small, please use something >= 120 (sec), default is 300 (sec)"; "interval too small, please use something >= 120 (sec), default is 300 (sec)";
} }
else { else {
$hash->{INTERVAL} = $attrVal; $hash->{INTERVAL} = $attrVal;
Log3 $name, 3, Log3($name, 3,
"XiaomiBTLESens ($name) - set interval to $attrVal"; "XiaomiBTLESens ($name) - set interval to $attrVal");
} }
} }
elsif ( $cmd eq "del" ) { elsif ( $cmd eq "del" ) {
$hash->{INTERVAL} = 300; $hash->{INTERVAL} = 300;
Log3 $name, 3, "XiaomiBTLESens ($name) - set interval to default"; Log3($name, 3, "XiaomiBTLESens ($name) - set interval to default");
} }
} }
elsif ( $attrName eq "blockingCallLoglevel" ) { elsif ( $attrName eq "blockingCallLoglevel" ) {
if ( $cmd eq "set" ) { if ( $cmd eq "set" ) {
$hash->{loglevel} = $attrVal; $hash->{loglevel} = $attrVal;
Log3 $name, 3, Log3($name, 3,
"XiaomiBTLESens ($name) - set blockingCallLoglevel to $attrVal"; "XiaomiBTLESens ($name) - set blockingCallLoglevel to $attrVal");
} }
elsif ( $cmd eq "del" ) { elsif ( $cmd eq "del" ) {
$hash->{loglevel} = 4; $hash->{loglevel} = 4;
Log3 $name, 3, Log3($name, 3,
"XiaomiBTLESens ($name) - set blockingCallLoglevel to default"; "XiaomiBTLESens ($name) - set blockingCallLoglevel to default");
} }
} }
@ -495,8 +495,8 @@ sub stateRequestTimer($) {
InternalTimer( gettimeofday() + $hash->{INTERVAL} + int( rand(300) ), InternalTimer( gettimeofday() + $hash->{INTERVAL} + int( rand(300) ),
"XiaomiBTLESens_stateRequestTimer", $hash ); "XiaomiBTLESens_stateRequestTimer", $hash );
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - stateRequestTimer: Call Request Timer"; "XiaomiBTLESens ($name) - stateRequestTimer: Call Request Timer");
} }
sub Set($$@) { sub Set($$@) {
@ -591,8 +591,8 @@ sub CreateParamGatttool($@) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $mac = $hash->{BTMAC}; my $mac = $hash->{BTMAC};
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - Run CreateParamGatttool with mod: $mod"; "XiaomiBTLESens ($name) - Run CreateParamGatttool with mod: $mod");
if ( $mod eq 'read' ) { if ( $mod eq 'read' ) {
$hash->{helper}{RUNNING_PID} = BlockingCall( $hash->{helper}{RUNNING_PID} = BlockingCall(
@ -606,8 +606,8 @@ sub CreateParamGatttool($@) {
readingsSingleUpdate( $hash, "state", "read sensor data", 1 ); readingsSingleUpdate( $hash, "state", "read sensor data", 1 );
Log3 $name, 5, Log3($name, 5,
"XiaomiBTLESens ($name) - Read XiaomiBTLESens_ExecGatttool_Run $name|$mac|$mod|$handle"; "XiaomiBTLESens ($name) - Read XiaomiBTLESens_ExecGatttool_Run $name|$mac|$mod|$handle");
} }
elsif ( $mod eq 'write' ) { elsif ( $mod eq 'write' ) {
@ -627,8 +627,8 @@ sub CreateParamGatttool($@) {
readingsSingleUpdate( $hash, "state", "write sensor data", 1 ); readingsSingleUpdate( $hash, "state", "write sensor data", 1 );
Log3 $name, 5, Log3($name, 5,
"XiaomiBTLESens ($name) - Write XiaomiBTLESens_ExecGatttool_Run $name|$mac|$mod|$handle|$value"; "XiaomiBTLESens ($name) - Write XiaomiBTLESens_ExecGatttool_Run $name|$mac|$mod|$handle|$value");
} }
} }
@ -685,8 +685,8 @@ sub ExecGatttool_Run($) {
my $gatttoolCmdlineStaticEscaped = my $gatttoolCmdlineStaticEscaped =
BTLE_CmdlinePreventGrepFalsePositive("gatttool -i $hci -b $mac"); BTLE_CmdlinePreventGrepFalsePositive("gatttool -i $hci -b $mac");
my $psCommand = AttrVal( $name, 'psCommand', 'ps ax' ); my $psCommand = AttrVal( $name, 'psCommand', 'ps ax' );
Log3 $name, 5, Log3($name, 5,
"XiaomiBTLESens ($name) - ExecGatttool_Run: Execute Command $psCommand | grep -E $gatttoolCmdlineStaticEscaped"; "XiaomiBTLESens ($name) - ExecGatttool_Run: Execute Command $psCommand | grep -E $gatttoolCmdlineStaticEscaped");
# $grepGatttool = qx(ps ax| grep -E \'$gatttoolCmdlineStaticEscaped\') # $grepGatttool = qx(ps ax| grep -E \'$gatttoolCmdlineStaticEscaped\')
$grepGatttool = $grepGatttool =
@ -699,8 +699,8 @@ qx(ssh $sshHost '$psCommand | grep -E "$gatttoolCmdlineStaticEscaped"')
if ( $sshHost ne 'none' ); if ( $sshHost ne 'none' );
if ( not $grepGatttool =~ /^\s*$/ ) { if ( not $grepGatttool =~ /^\s*$/ ) {
Log3 $name, 3, Log3($name, 3,
"XiaomiBTLESens ($name) - ExecGatttool_Run: another gatttool process is running. waiting..."; "XiaomiBTLESens ($name) - ExecGatttool_Run: another gatttool process is running. waiting...");
sleep(1); sleep(1);
} }
else { else {
@ -713,17 +713,17 @@ qx(ssh $sshHost '$psCommand | grep -E "$gatttoolCmdlineStaticEscaped"')
my $returnCode = 1; my $returnCode = 1;
do { do {
Log3 $name, 5, Log3($name, 5,
"XiaomiBTLESens ($name) - ExecGatttool_Run: call gatttool with command: $cmd and loop $loop"; "XiaomiBTLESens ($name) - ExecGatttool_Run: call gatttool with command: $cmd and loop $loop");
( $returnString, $returnCode ) = Gatttool_executeCommand($cmd); ($returnString, $returnCode) = Gatttool_executeCommand($cmd);
@gtResult = split( ": ", $returnString ); @gtResult = split( ": ", $returnString );
# @gtResult = split( ": ", qx($cmd) ); # @gtResult = split( ": ", qx($cmd) );
Log3 $name, 5, Log3($name, 5,
"XiaomiBTLESens ($name) - ExecGatttool_Run: gatttool loop result " "XiaomiBTLESens ($name) - ExecGatttool_Run: gatttool loop result "
. join( ",", @gtResult ); . join( ",", @gtResult ));
$loop++; $loop++;
$returnCode = 2 $returnCode = 2
@ -731,13 +731,13 @@ qx(ssh $sshHost '$psCommand | grep -E "$gatttoolCmdlineStaticEscaped"')
# } while ( $loop < 5 and $gtResult[0] eq 'connect error' ); # } while ( $loop < 5 and $gtResult[0] eq 'connect error' );
} while ( $loop < 5 and $returnCode != 0 ); } while ( $loop < 5 and $returnCode != 0 );
Log3 $name, 3, Log3($name, 3,
"XiaomiBTLESens ($name) - ExecGatttool_Run: errorcode: \"$returnCode\", ErrorString: \"$returnString\"" "XiaomiBTLESens ($name) - ExecGatttool_Run: errorcode: \"$returnCode\", ErrorString: \"$returnString\"")
if ( $returnCode != 0 ); if ( $returnCode != 0 );
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ExecGatttool_Run: gatttool result " "XiaomiBTLESens ($name) - ExecGatttool_Run: gatttool result "
. join( ",", @gtResult ); . join( ",", @gtResult ));
$handle = '0x35' $handle = '0x35'
if ( $sshHost ne 'none' if ( $sshHost ne 'none'
@ -791,18 +791,18 @@ sub ExecGatttool_Done($) {
delete( $hash->{helper}{RUNNING_PID} ); delete( $hash->{helper}{RUNNING_PID} );
Log3 $name, 5, Log3($name, 5,
"XiaomiBTLESens ($name) - ExecGatttool_Done: Helper is disabled. Stop processing" "XiaomiBTLESens ($name) - ExecGatttool_Done: Helper is disabled. Stop processing")
if ( $hash->{helper}{DISABLED} ); if ( $hash->{helper}{DISABLED} );
return if ( $hash->{helper}{DISABLED} ); return if ( $hash->{helper}{DISABLED} );
Log3 $name, 5, Log3($name, 5,
"XiaomiBTLESens ($name) - ExecGatttool_Done: gatttool return string: $string"; "XiaomiBTLESens ($name) - ExecGatttool_Done: gatttool return string: $string");
my $decode_json = eval { decode_json($json_notification) }; my $decode_json = eval { decode_json($json_notification) };
if ($@) { if ($@) {
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ExecGatttool_Done: JSON error while request: $@"; "XiaomiBTLESens ($name) - ExecGatttool_Done: JSON error while request: $@");
} }
if ( $respstate eq 'ok' if ( $respstate eq 'ok'
@ -836,8 +836,8 @@ sub ExecGatttool_Aborted($) {
'The BlockingCall Process terminated unexpectedly. Timedout'; 'The BlockingCall Process terminated unexpectedly. Timedout';
WriteReadings( $hash, \%readings ); WriteReadings( $hash, \%readings );
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ExecGatttool_Aborted: The BlockingCall Process terminated unexpectedly. Timedout"; "XiaomiBTLESens ($name) - ExecGatttool_Aborted: The BlockingCall Process terminated unexpectedly. Timedout");
} }
sub ProcessingNotification($@) { sub ProcessingNotification($@) {
@ -847,21 +847,21 @@ sub ProcessingNotification($@) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $readings; my $readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - ProcessingNotification"; Log3($name, 4, "XiaomiBTLESens ($name) - ProcessingNotification");
if ( AttrVal( $name, 'model', 'none' ) eq 'flowerSens' ) { if ( AttrVal( $name, 'model', 'none' ) eq 'flowerSens' ) {
if ( $handle eq '0x38' ) { if ( $handle eq '0x38' ) {
### Flower Sens - Read Firmware and Battery Data ### Flower Sens - Read Firmware and Battery Data
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x38"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x38");
$readings = FlowerSensHandle0x38( $hash, $notification ); $readings = FlowerSensHandle0x38( $hash, $notification );
} }
elsif ( $handle eq '0x35' ) { elsif ( $handle eq '0x35' ) {
### Flower Sens - Read Sensor Data ### Flower Sens - Read Sensor Data
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x35"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x35");
$readings = FlowerSensHandle0x35( $hash, $notification ); $readings = FlowerSensHandle0x35( $hash, $notification );
} }
@ -870,29 +870,29 @@ sub ProcessingNotification($@) {
elsif ( AttrVal( $name, 'model', 'none' ) eq 'thermoHygroSens' ) { elsif ( AttrVal( $name, 'model', 'none' ) eq 'thermoHygroSens' ) {
if ( $handle eq '0x18' ) { if ( $handle eq '0x18' ) {
### Thermo/Hygro Sens - Read Battery Data ### Thermo/Hygro Sens - Read Battery Data
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x18"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x18");
$readings = ThermoHygroSensHandle0x18( $hash, $notification ); $readings = ThermoHygroSensHandle0x18( $hash, $notification );
} }
elsif ( $handle eq '0x10' ) { elsif ( $handle eq '0x10' ) {
### Thermo/Hygro Sens - Read Sensor Data ### Thermo/Hygro Sens - Read Sensor Data
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x10"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x10");
$readings = ThermoHygroSensHandle0x10( $hash, $notification ); $readings = ThermoHygroSensHandle0x10( $hash, $notification );
} }
elsif ( $handle eq '0x24' ) { elsif ( $handle eq '0x24' ) {
### Thermo/Hygro Sens - Read Firmware Data ### Thermo/Hygro Sens - Read Firmware Data
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x24"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x24");
$readings = ThermoHygroSensHandle0x24( $hash, $notification ); $readings = ThermoHygroSensHandle0x24( $hash, $notification );
} }
elsif ( $handle eq '0x3' ) { elsif ( $handle eq '0x3' ) {
### Thermo/Hygro Sens - Read and Write Devicename ### Thermo/Hygro Sens - Read and Write Devicename
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x3"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x3");
return CreateParamGatttool( $hash, 'read', return CreateParamGatttool( $hash, 'read',
$XiaomiModels{ AttrVal( $name, 'model', '' ) }{devicename} ) $XiaomiModels{ AttrVal( $name, 'model', '' ) }{devicename} )
@ -903,29 +903,29 @@ sub ProcessingNotification($@) {
elsif ( AttrVal( $name, 'model', 'none' ) eq 'clearGrassSens' ) { elsif ( AttrVal( $name, 'model', 'none' ) eq 'clearGrassSens' ) {
if ( $handle eq '0x3b' ) { if ( $handle eq '0x3b' ) {
### Clear Grass Sens - Read Battery Data ### Clear Grass Sens - Read Battery Data
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x3b"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x3b");
$readings = ClearGrassSensHandle0x3b( $hash, $notification ); $readings = ClearGrassSensHandle0x3b( $hash, $notification );
} }
elsif ( $handle eq '0x1e' ) { elsif ( $handle eq '0x1e' ) {
### Clear Grass Sens - Read Sensor Data ### Clear Grass Sens - Read Sensor Data
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x1e"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x1e");
$readings = ClearGrassSensHandle0x1e( $hash, $notification ); $readings = ClearGrassSensHandle0x1e( $hash, $notification );
} }
elsif ( $handle eq '0x2a' ) { elsif ( $handle eq '0x2a' ) {
### Clear Grass Sens - Read Firmware Data ### Clear Grass Sens - Read Firmware Data
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x2a"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x2a");
$readings = ClearGrassSensHandle0x2a( $hash, $notification ); $readings = ClearGrassSensHandle0x2a( $hash, $notification );
} }
elsif ( $handle eq '0x3' ) { elsif ( $handle eq '0x3' ) {
### Clear Grass Sens - Read and Write Devicename ### Clear Grass Sens - Read and Write Devicename
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - ProcessingNotification: handle 0x3"; "XiaomiBTLESens ($name) - ProcessingNotification: handle 0x3");
return CreateParamGatttool( $hash, 'read', return CreateParamGatttool( $hash, 'read',
$XiaomiModels{ AttrVal( $name, 'model', '' ) }{devicename} ) $XiaomiModels{ AttrVal( $name, 'model', '' ) }{devicename} )
@ -944,7 +944,7 @@ sub FlowerSensHandle0x38($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - FlowerSens Handle0x38"; Log3($name, 4, "XiaomiBTLESens ($name) - FlowerSens Handle0x38");
my @dataBatFw = split( " ", $notification ); my @dataBatFw = split( " ", $notification );
@ -970,7 +970,7 @@ sub FlowerSensHandle0x35($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - FlowerSens Handle0x35"; Log3($name, 4, "XiaomiBTLESens ($name) - FlowerSens Handle0x35");
my @dataSensor = split( " ", $notification ); my @dataSensor = split( " ", $notification );
@ -996,13 +996,13 @@ sub FlowerSensHandle0x35($$) {
$readings{'moisture'} = hex( "0x" . $dataSensor[7] ); $readings{'moisture'} = hex( "0x" . $dataSensor[7] );
$readings{'fertility'} = hex( "0x" . $dataSensor[9] . $dataSensor[8] ); $readings{'fertility'} = hex( "0x" . $dataSensor[9] . $dataSensor[8] );
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - FlowerSens Handle0x35 - lux: " "XiaomiBTLESens ($name) - FlowerSens Handle0x35 - lux: "
. $readings{lux} . $readings{lux}
. ", moisture: " . ", moisture: "
. $readings{moisture} . $readings{moisture}
. ", fertility: " . ", fertility: "
. $readings{fertility}; . $readings{fertility});
$hash->{helper}{CallBattery} = 0; $hash->{helper}{CallBattery} = 0;
return \%readings; return \%readings;
@ -1015,7 +1015,7 @@ sub ThermoHygroSensHandle0x18($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - Thermo/Hygro Sens Handle0x18"; Log3($name, 4, "XiaomiBTLESens ($name) - Thermo/Hygro Sens Handle0x18");
chomp($notification); chomp($notification);
$notification =~ s/\s+//g; $notification =~ s/\s+//g;
@ -1037,7 +1037,7 @@ sub ThermoHygroSensHandle0x10($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - Thermo/Hygro Sens Handle0x10"; Log3($name, 4, "XiaomiBTLESens ($name) - Thermo/Hygro Sens Handle0x10");
return stateRequest($hash) return stateRequest($hash)
unless ( $notification =~ /^([0-9a-f]{2}(\s?))*$/ ); unless ( $notification =~ /^([0-9a-f]{2}(\s?))*$/ );
@ -1073,7 +1073,7 @@ sub ThermoHygroSensHandle0x24($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - Thermo/Hygro Sens Handle0x24"; Log3($name, 4, "XiaomiBTLESens ($name) - Thermo/Hygro Sens Handle0x24");
$notification =~ s/\s+//g; $notification =~ s/\s+//g;
@ -1090,7 +1090,7 @@ sub ThermoHygroSensHandle0x3($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - Thermo/Hygro Sens Handle0x3"; Log3($name, 4, "XiaomiBTLESens ($name) - Thermo/Hygro Sens Handle0x3");
$notification =~ s/\s+//g; $notification =~ s/\s+//g;
@ -1107,7 +1107,7 @@ sub ClearGrassSensHandle0x3b($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - Clear Grass Sens Handle0x3b"; Log3($name, 4, "XiaomiBTLESens ($name) - Clear Grass Sens Handle0x3b");
chomp($notification); chomp($notification);
$notification =~ s/\s+//g; $notification =~ s/\s+//g;
@ -1129,7 +1129,7 @@ sub ClearGrassSensHandle0x1e($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - Clear Grass Sens Handle0x1e"; Log3($name, 4, "XiaomiBTLESens ($name) - Clear Grass Sens Handle0x1e");
return stateRequest($hash) return stateRequest($hash)
unless ( $notification =~ /^([0-9a-f]{2}(\s?))*$/ ); unless ( $notification =~ /^([0-9a-f]{2}(\s?))*$/ );
@ -1154,7 +1154,7 @@ sub ClearGrassSensHandle0x2a($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - Clear Grass Sens Handle0x2a"; Log3($name, 4, "XiaomiBTLESens ($name) - Clear Grass Sens Handle0x2a");
$notification =~ s/\s+//g; $notification =~ s/\s+//g;
@ -1171,7 +1171,7 @@ sub ClearGrassSensHandle0x3($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - Clear Grass Sens Handle0x3"; Log3($name, 4, "XiaomiBTLESens ($name) - Clear Grass Sens Handle0x3");
$notification =~ s/\s+//g; $notification =~ s/\s+//g;
@ -1292,8 +1292,8 @@ sub WriteReadings($$) {
) if ( AttrVal( $name, 'maxTemp', 'none' ) ne 'none' ); ) if ( AttrVal( $name, 'maxTemp', 'none' ) ne 'none' );
} }
Log3 $name, 4, Log3($name, 4,
"XiaomiBTLESens ($name) - WriteReadings: Readings were written"; "XiaomiBTLESens ($name) - WriteReadings: Readings were written");
$hash->{helper}{CallSensDataCounter} = 0; $hash->{helper}{CallSensDataCounter} = 0;
stateRequest($hash) if ( $hash->{helper}{CallBattery} == 1 ); stateRequest($hash) if ( $hash->{helper}{CallBattery} == 1 );
@ -1306,7 +1306,7 @@ sub ProcessingErrors($$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my %readings; my %readings;
Log3 $name, 4, "XiaomiBTLESens ($name) - ProcessingErrors"; Log3($name, 4, "XiaomiBTLESens ($name) - ProcessingErrors");
$readings{'lastGattError'} = $notification; $readings{'lastGattError'} = $notification;
WriteReadings( $hash, \%readings ); WriteReadings( $hash, \%readings );