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:
parent
56f77ba2e5
commit
4828965a38
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user