2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

70_HYDRAWISE.pm: controlling Hydrawise irrigation

git-svn-id: https://svn.fhem.de/fhem/trunk@21804 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
xasher 2020-04-29 11:22:03 +00:00
parent 56f77ba2e5
commit 4828965a38

View File

@ -443,7 +443,7 @@ sub HYDRAWISE_SendCommand {
################################### ###################################
sub HYDRAWISE_ReceiveCommand { sub HYDRAWISE_ReceiveCommand {
my ( $param, $err, $data ) = @_; my ( $param, $err, $data, $do_trigger ) = @_;
my $hash = $param->{hash}; my $hash = $param->{hash};
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $service = $param->{service}; my $service = $param->{service};
@ -485,13 +485,13 @@ sub HYDRAWISE_ReceiveCommand {
# Set reading for presence # Set reading for presence
# #
#readingsSingleUpdate( $hash, "presence", $presence, 1 ); readingsSingleUpdate( $hash, "presence", $presence, 1 );
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "presence", "$presence" ); #HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "presence", "$presence" );
# Set reading for state # Set reading for state
# #
#readingsSingleUpdate( $hash, "state", $state, 1 ); readingsSingleUpdate( $hash, "state", $state, 1 );
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "state", "$state" ); #HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "state", "$state" );
if ( !defined($cmd) ) { if ( !defined($cmd) ) {
Log3 $name, 4, "HYDRAWISE $name: RCV $service"; Log3 $name, 4, "HYDRAWISE $name: RCV $service";
@ -537,12 +537,17 @@ sub HYDRAWISE_ReceiveCommand {
if ( ref($return) eq "HASH" && !defined($cmd) ) { if ( ref($return) eq "HASH" && !defined($cmd) ) {
# controllers # controllers
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "customer_id", if ($return->{customer_id}){
$return->{customer_id} ); HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "customer_id", $return->{customer_id} );
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, }
"cur_controller_id", $return->{controller_id} );
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, if ($return->{controller_id}){
"cur_controller_name", $return->{current_controller} ); HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "cur_controller_id", $return->{controller_id} );
}
if ($return->{current_controller}){
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "cur_controller_name", $return->{current_controller} );
}
if ( ref( $return->{controllers} ) eq "ARRAY" if ( ref( $return->{controllers} ) eq "ARRAY"
&& scalar( @{ $return->{controllers} } ) > 0 ) && scalar( @{ $return->{controllers} } ) > 0 )
@ -589,8 +594,15 @@ sub HYDRAWISE_ReceiveCommand {
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash,
"relay_counts", scalar( @{ $return->{relays} } ) ); "relay_counts", scalar( @{ $return->{relays} } ) );
for my $relays ( @{ $return->{relays} } ) { for my $relays ( @{ $return->{relays} } ) {
Log3 $name, 5, Log3 $name, 5,"HYDRAWISE $name: $relays->{relay} $relays->{relay_id}";
"HYDRAWISE $name: $relays->{relay} $relays->{relay_id}";
#readingsSingleUpdate( $hash, "rl" . $relays->{relay} . "_relay", $relays->{relay}, $do_trigger );
#readingsSingleUpdate( $hash, "rl" . $relays->{relay} . "_relay_id", $relays->{relay_id}, $do_trigger );
#readingsSingleUpdate( $hash, "rl" . $relays->{relay} . "_name", $relays->{name}, $do_trigger );
#readingsSingleUpdate( $hash, "rl" . $relays->{relay} . "_next", $relays->{timestr}, $do_trigger );
#readingsSingleUpdate( $hash, "rl" . $relays->{relay} . "_run_minutes", $relays->{run}, $do_trigger );
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash,
"rl" . $relays->{relay} . "_relay", "rl" . $relays->{relay} . "_relay",
@ -636,6 +648,7 @@ sub HYDRAWISE_ReceiveCommand {
if ( ref( $return->{relays} ) eq "ARRAY" if ( ref( $return->{relays} ) eq "ARRAY"
and scalar( @{ $return->{relays} } ) > 0 ) and scalar( @{ $return->{relays} } ) > 0 )
{ {
readingsBeginUpdate ($hash);
HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "relay_counts", HYDRAWISE_ReadingsBulkUpdateIfChanged( $hash, "relay_counts",
scalar( @{ $return->{relays} } ) ); scalar( @{ $return->{relays} } ) );
for my $relays ( @{ $return->{relays} } ) { for my $relays ( @{ $return->{relays} } ) {
@ -757,13 +770,14 @@ sub HYDRAWISE_TriggerFullDataUpdate {
} }
sub HYDRAWISE_ReadingsBulkUpdateIfChanged { sub HYDRAWISE_ReadingsBulkUpdateIfChanged {
my ( $hash, $reading, $value ) = @_; my ( $hash, $reading, $value, $do_trigger) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
# print "hydrawise READING: $reading -> $value \n";
$value = "" if ( !defined($value) ); if($value){
readingsBulkUpdate( $hash, $reading, $value ) readingsBeginUpdate ($hash);
if ( ReadingsVal( $name, $reading, "" ) ne $value ); readingsBulkUpdate( $hash, $reading, $value);
readingsEndUpdate($hash, 1);
}
return; return;
} }