diff --git a/CHANGED b/CHANGED index 824b2f8..27ba3dd 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - Log Debug + change debug diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 548dc13..320824d 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -888,12 +888,15 @@ sub setState { my $activ_watering = 0; if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ){ my $opened_ventils = 0; + my $state_string = ''; ## clac bit wise 1 - 6 dec => 1 - 63 dec ( 0011 1111 ) for (my $i = 1; $i < 7; $i++){ + $activ_watering = 0; my $zahl = ( ReadingsVal( $name, "watering-watering_timer_".$i."_duration", 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms ) ? ($i -1) : 0; + $activ_watering = $i if ( $zahl > 0 ); $opened_ventils=$opened_ventils+(2**$zahl) if ( $zahl > 0 ); Log3 $name, 3, "[DEBUG] - GardenaSmartDevice ($name) / watering-watering_timer_".$i."_duration - wasser timer($i) =-1 ( $zahl ) : $opened_ventils"; - } + # $activ_watering = 1 if ( ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms ); # $activ_watering = 2 if ( ReadingsVal( $name, 'watering-watering_timer_2_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms ); @@ -904,29 +907,29 @@ sub setState { # Log3 $name, 3, "[DEBUG] - GardenaSmartDevice ($name) - wasser timer: $activ_watering"; # ### eventuell auf binare bits und shiften - my $state_string = $activ_watering > 0 - # offen - ? - ( ReadingsVal($name, 'scheduling-schedules_paused_until_'.$activ_watering, '' ) eq '' ) - # leer ( zeitplan aktiv ... ) - ? sprintf( (RigReadingsValue($hash, 'will be irrigated %.f minutes remaining.').' '.RigReadingsValue($hash, 'next watering: %s')), (ReadingsVal( $name, 'watering-watering_timer_'.$activ_watering.'_duration', 0 )/60), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '')) ) - # zeitplan pausiert - : - ( ReadingsVal($name, 'scheduling-schedules_paused_until_'.$activ_watering , '') eq '2038-01-18T00:00:00.000Z') - # pause bis dauerhaft - ? sprintf( (RigReadingsValue($hash, 'will be irrigated %.f minutes remaining.').' '.RigReadingsValue($hash , 'schedule permanently paused')), (ReadingsVal( $name, 'watering-watering_timer_'.$activ_watering.'_duration', 0 )/60) ) - # naechter termin - : sprintf( RigReadingsValue($hash , 'paused until %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-schedules_paused_until_'.$activ_watering , '')) ) - # zu - : - ( ReadingsVal($name, 'scheduling-schedules_paused_until_'.$activ_watering , '' ) eq '' ) - # zeitplan aktiv - ? sprintf( (RigReadingsValue($hash, 'closed') .'. '.RigReadingsValue($hash, 'next watering: %s')), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) - # zeitplan pausiert - : RigReadingsValue($hash, 'closed') - ; - + $state_string .= $activ_watering > 0 + # offen + ? + ( ReadingsVal($name, 'scheduling-schedules_paused_until_'.$activ_watering, '' ) eq '' ) + # leer ( zeitplan aktiv ... ) + ? sprintf( (RigReadingsValue($hash, 'will be irrigated %.f minutes remaining.').' '.RigReadingsValue($hash, 'next watering: %s')), (ReadingsVal( $name, 'watering-watering_timer_'.$activ_watering.'_duration', 0 )/60), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '')) ) + # zeitplan pausiert + : + ( ReadingsVal($name, 'scheduling-schedules_paused_until_'.$activ_watering , '') eq '2038-01-18T00:00:00.000Z') + # pause bis dauerhaft + ? sprintf( (RigReadingsValue($hash, 'will be irrigated %.f minutes remaining.').' '.RigReadingsValue($hash , 'schedule permanently paused')), (ReadingsVal( $name, 'watering-watering_timer_'.$activ_watering.'_duration', 0 )/60) ) + # naechter termin + : sprintf( RigReadingsValue($hash , 'paused until %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-schedules_paused_until_'.$activ_watering , '')) ) + # zu + : + ( ReadingsVal($name, 'scheduling-schedules_paused_until_'.$activ_watering , '' ) eq '' ) + # zeitplan aktiv + ? sprintf( (RigReadingsValue($hash, 'closed') .'. '.RigReadingsValue($hash, 'next watering: %s')), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) + # zeitplan pausiert + : RigReadingsValue($hash, 'closed') + ; + } # if ($activ_watering > 0) # { # # ein ventil offen diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 80913df..87ee3f2 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-07_13:41:51 49520 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-07_17:58:31 66021 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-07_20:23:00 49520 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-07_20:28:37 66165 FHEM/74_GardenaSmartDevice.pm