fix unknown variable
This commit is contained in:
parent
39070d643d
commit
8a2ce7eca4
@ -216,13 +216,13 @@ sub Initialize {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub Define {
|
sub Define {
|
||||||
my $hash = shift // return;
|
my $hash = shift;
|
||||||
my $aArg = shift // return;
|
my $aArg = shift;
|
||||||
|
|
||||||
return $@ unless ( FHEM::Meta::SetInternals($hash) );
|
return $@ unless ( FHEM::Meta::SetInternals($hash) );
|
||||||
use version 0.60; our $VERSION = FHEM::Meta::Get( $hash, 'version' );
|
use version 0.60; our $VERSION = FHEM::Meta::Get( $hash, 'version' );
|
||||||
|
|
||||||
return 'too few parameters: define <name> TeslaPowerwall2AC <HOST>'
|
return q{too few parameters: define <name> TeslaPowerwall2AC <HOST>}
|
||||||
if ( scalar( @{$aArg} ) != 3 );
|
if ( scalar( @{$aArg} ) != 3 );
|
||||||
|
|
||||||
my $name = $aArg->[0];
|
my $name = $aArg->[0];
|
||||||
@ -231,15 +231,15 @@ sub Define {
|
|||||||
$hash->{HOST} = $host;
|
$hash->{HOST} = $host;
|
||||||
$hash->{INTERVAL} = 300;
|
$hash->{INTERVAL} = 300;
|
||||||
$hash->{VERSION} = version->parse($VERSION)->normal;
|
$hash->{VERSION} = version->parse($VERSION)->normal;
|
||||||
$hash->{NOTIFYDEV} = "global,$name";
|
$hash->{NOTIFYDEV} = qq(global,${name});
|
||||||
$hash->{actionQueue} = [];
|
$hash->{actionQueue} = [];
|
||||||
|
|
||||||
CommandAttr( undef, $name . ' room Tesla' )
|
CommandAttr( undef, $name . q{ room Tesla} )
|
||||||
if ( AttrVal( $name, 'room', 'none' ) eq 'none' );
|
if ( AttrVal( $name, 'room', 'none' ) eq 'none' );
|
||||||
Log3 $name, 3,
|
Log3($name, 3,
|
||||||
"TeslaPowerwall2AC ($name) - defined TeslaPowerwall2AC Device with Host $host and Interval $hash->{INTERVAL}";
|
qq(TeslaPowerwall2AC \(${name}\) - defined TeslaPowerwall2AC Device with Host ${host} and Interval $hash->{INTERVAL}));
|
||||||
|
|
||||||
return undef;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub Undef {
|
sub Undef {
|
||||||
@ -247,9 +247,9 @@ sub Undef {
|
|||||||
my $name = shift;
|
my $name = shift;
|
||||||
|
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash);
|
||||||
Log3 $name, 3, "TeslaPowerwall2AC ($name) - Device $name deleted";
|
Log3($name, 3, qq(TeslaPowerwall2AC \(${name}\) - Device ${name} deleted));
|
||||||
|
|
||||||
return undef;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub Attr {
|
sub Attr {
|
||||||
@ -260,11 +260,11 @@ sub Attr {
|
|||||||
if ( $cmd eq 'set' and $attrVal eq '1' ) {
|
if ( $cmd eq 'set' and $attrVal eq '1' ) {
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash);
|
||||||
readingsSingleUpdate( $hash, 'state', 'disabled', 1 );
|
readingsSingleUpdate( $hash, 'state', 'disabled', 1 );
|
||||||
Log3 $name, 3, "TeslaPowerwall2AC ($name) - disabled";
|
Log3($name, 3, qq(TeslaPowerwall2AC \(${name}\) - disabled));
|
||||||
|
|
||||||
}
|
}
|
||||||
elsif ( $cmd eq 'del' ) {
|
elsif ( $cmd eq 'del' ) {
|
||||||
Log3 $name, 3, "TeslaPowerwall2AC ($name) - enabled";
|
Log3($name, 3, qq(TeslaPowerwall2AC \(${name}\) - enabled));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -273,12 +273,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, "TeslaPowerwall2AC ($name) - disabledForIntervals";
|
Log3($name, 3, qq(TeslaPowerwall2AC \(${name}\) - disabledForIntervals));
|
||||||
readingsSingleUpdate( $hash, 'state', 'disabled', 1 );
|
readingsSingleUpdate( $hash, 'state', 'disabled', 1 );
|
||||||
|
|
||||||
}
|
}
|
||||||
elsif ( $cmd eq 'del' ) {
|
elsif ( $cmd eq 'del' ) {
|
||||||
Log3 $name, 3, "TeslaPowerwall2AC ($name) - enabled";
|
Log3($name, 3, qq(TeslaPowerwall2AC \(${name}\) - enabled));
|
||||||
readingsSingleUpdate( $hash, 'state', 'active', 1 );
|
readingsSingleUpdate( $hash, 'state', 'active', 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -286,28 +286,30 @@ sub Attr {
|
|||||||
if ( $attrName eq 'interval' ) {
|
if ( $attrName eq 'interval' ) {
|
||||||
if ( $cmd eq 'set' ) {
|
if ( $cmd eq 'set' ) {
|
||||||
if ( $attrVal < 60 ) {
|
if ( $attrVal < 60 ) {
|
||||||
Log3 $name, 3,
|
Log3($name, 3,
|
||||||
"TeslaPowerwall2AC ($name) - interval too small, please use something >= 60 (sec), default is 300 (sec)";
|
qq(TeslaPowerwall2AC \(${name}\) - interval too small, please use something >= 60 (sec), default is 300 (sec)));
|
||||||
return
|
return
|
||||||
'interval too small, please use something >= 60 (sec), default is 300 (sec)';
|
q{interval too small, please use something >= 60 (sec), default is 300 (sec)};
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash);
|
||||||
$hash->{INTERVAL} = $attrVal;
|
$hash->{INTERVAL} = $attrVal;
|
||||||
Log3 $name, 3,
|
Log3($name, 3,
|
||||||
"TeslaPowerwall2AC ($name) - set interval to $attrVal";
|
qq(TeslaPowerwall2AC \(${name}\) - set interval to ${attrVal}));
|
||||||
|
Timer_GetData($hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ( $cmd eq 'del' ) {
|
elsif ( $cmd eq 'del' ) {
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash);
|
||||||
$hash->{INTERVAL} = 300;
|
$hash->{INTERVAL} = 300;
|
||||||
Log3 $name, 3,
|
Log3($name, 3,
|
||||||
"TeslaPowerwall2AC ($name) - set interval to default";
|
qq(TeslaPowerwall2AC \(${name}\) - set interval to default));
|
||||||
|
Timer_GetData($hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return undef;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub Notify {
|
sub Notify {
|
||||||
@ -326,8 +328,6 @@ sub Notify {
|
|||||||
if (
|
if (
|
||||||
( grep /^INITIALIZED$/, @{$events}
|
( grep /^INITIALIZED$/, @{$events}
|
||||||
or grep /^ATTR.$name.emailaddr$/, @{$events}
|
or grep /^ATTR.$name.emailaddr$/, @{$events}
|
||||||
or grep /^ATTR.$name.interval$/, @{$events}
|
|
||||||
or grep /^ATTR.$name.disable$/, @{$events}
|
|
||||||
or grep /^DELETEATTR.$name.disable$/, @{$events}
|
or grep /^DELETEATTR.$name.disable$/, @{$events}
|
||||||
or grep /^DELETEATTR.$name.interval$/, @{$events}
|
or grep /^DELETEATTR.$name.interval$/, @{$events}
|
||||||
or grep /^DEFINED.$name$/, @{$events} )
|
or grep /^DEFINED.$name$/, @{$events} )
|
||||||
@ -337,8 +337,8 @@ sub Notify {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub Get {
|
sub Get {
|
||||||
my $hash = shift // return;
|
my $hash = shift;
|
||||||
my $aArg = shift // return;
|
my $aArg = shift;
|
||||||
|
|
||||||
my $name = shift @$aArg;
|
my $name = shift @$aArg;
|
||||||
my $cmd = shift @$aArg // return qq{"get $name" needs at least one argument};
|
my $cmd = shift @$aArg // return qq{"get $name" needs at least one argument};
|
||||||
@ -398,15 +398,15 @@ sub Get {
|
|||||||
unshift( @{ $hash->{actionQueue} }, $arg );
|
unshift( @{ $hash->{actionQueue} }, $arg );
|
||||||
Write($hash);
|
Write($hash);
|
||||||
|
|
||||||
return undef;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub Set {
|
sub Set {
|
||||||
my $hash = shift // return;
|
my $hash = shift;
|
||||||
my $aArg = shift // return;
|
my $aArg = shift;
|
||||||
|
|
||||||
my $name = shift @$aArg;
|
my $name = shift @$aArg;
|
||||||
my $cmd = shift @$aArg // return qq{"set $name" needs at least one argument};
|
my $cmd = shift @$aArg // return qq(set ${name} needs at least one argument);
|
||||||
my $arg;
|
my $arg;
|
||||||
|
|
||||||
if ( $cmd eq 'powerwalls' ) {
|
if ( $cmd eq 'powerwalls' ) {
|
||||||
@ -438,7 +438,7 @@ sub Set {
|
|||||||
unshift( @{ $hash->{actionQueue} }, $arg );
|
unshift( @{ $hash->{actionQueue} }, $arg );
|
||||||
Write($hash);
|
Write($hash);
|
||||||
|
|
||||||
return undef;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub Timer_GetData {
|
sub Timer_GetData {
|
||||||
@ -716,15 +716,15 @@ sub ReadingsProcessing_Powerwalls {
|
|||||||
my %readings;
|
my %readings;
|
||||||
|
|
||||||
if ( ref($decode_json) eq 'HASH' ) {
|
if ( ref($decode_json) eq 'HASH' ) {
|
||||||
for (keys %{$jsondata}) {
|
for (keys %{$decode_json}) {
|
||||||
$readings{$_} = $jsondata->{$_}
|
$readings{$_} = $decode_json->{$_}
|
||||||
if ( ref($jsondata->{$_}) ne 'ARRAY'
|
if ( ref($decode_json->{$_}) ne 'ARRAY'
|
||||||
and defined($jsondata->{$_}) );
|
and defined($decode_json->{$_}) );
|
||||||
|
|
||||||
if ( ref($jsondata->{$_}) eq 'ARRAY' ) {
|
if ( ref($decode_json->{$_}) eq 'ARRAY' ) {
|
||||||
my $i = 0;
|
my $i = 0;
|
||||||
my $r1 = $_;
|
my $r1 = $_;
|
||||||
for my $hRef (@{$jsondata->{$_}}) {
|
for my $hRef (@{$decode_json->{$_}}) {
|
||||||
for (keys %{$hRef}) {
|
for (keys %{$hRef}) {
|
||||||
$r1 =~ s/s$//g;
|
$r1 =~ s/s$//g;
|
||||||
$readings{qq(${r1}_${i}_${_})} = $hRef->{$_}
|
$readings{qq(${r1}_${i}_${_})} = $hRef->{$_}
|
||||||
@ -966,7 +966,7 @@ sub ReadPassword {
|
|||||||
|
|
||||||
Log3 $name, 3,
|
Log3 $name, 3,
|
||||||
"TeslaPowerwall2AC ($name) - unable to read password from file: $err";
|
"TeslaPowerwall2AC ($name) - unable to read password from file: $err";
|
||||||
return undef;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -992,7 +992,7 @@ sub ReadPassword {
|
|||||||
else {
|
else {
|
||||||
|
|
||||||
Log3 $name, 3, "TeslaPowerwall2AC ($name) - No password in file";
|
Log3 $name, 3, "TeslaPowerwall2AC ($name) - No password in file";
|
||||||
return undef;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -1 +1 @@
|
|||||||
UPD 2021-03-08_20:13:47 32353 FHEM/46_TeslaPowerwall2AC.pm
|
UPD 2021-03-09_08:35:01 32310 FHEM/46_TeslaPowerwall2AC.pm
|
||||||
|
Loading…
Reference in New Issue
Block a user