patch_ic24 #69
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user