patch-offline_status_startup_undefined #73
@@ -845,14 +845,61 @@ sub WriteReadings {
 | 
			
		||||
        readingsBulkUpdateIfChanged( $hash, 'scheduling-schedules_events_count',
 | 
			
		||||
                                        scalar( @{$decode_json->{scheduled_events} } ) );
 | 
			
		||||
        my $valve_id =1; my $event_id = 0; # ic24 [1..6] | wc, pump [1]
 | 
			
		||||
        ## valcid zahlen.  readings mit valvid aber
 | 
			
		||||
        my @soll = ();
 | 
			
		||||
        for my $event_schedules ( @{ $decode_json->{scheduled_events} } ) {
 | 
			
		||||
          while ( my ( $r, $v ) = each  %{ $event_schedules } ) {
 | 
			
		||||
 | 
			
		||||
        ##
 | 
			
		||||
        # validiere schedules
 | 
			
		||||
        my @soll = ();my @ist=();
 | 
			
		||||
        for my $cloud_schedules ( @{ $decode_json->{scheduled_events} } ) {
 | 
			
		||||
          while ( my ( $r, $v ) = each  %{ $cloud_schedules } ) {
 | 
			
		||||
            push @soll, $v if $r eq 'id'; # cloud hat  SOLL
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
use Data::Dumper;
 | 
			
		||||
        foreach my $dev_schedules ( sort keys %{ $hash->{READINGS} } ) {
 | 
			
		||||
          my $dev_reading = ReadingsVal( $name, $dev_schedules, "error" );
 | 
			
		||||
          push @ist, $dev_reading if $dev_schedules =~ /.*_id/; # push reading _id
 | 
			
		||||
          push @ist, $1 if $dev_schedules =~ /.*_(\d)_id/; # push readigs d from x_id
 | 
			
		||||
          
 | 
			
		||||
          Log3 $name, 5, "[DEBUG] - Key ist : $dev_schedules ";
 | 
			
		||||
          Log3 $name, 5, "[DDDDD] - ID FOUND $dev_reading" if $dev_schedules =~ /.*_id/; # cloud hat  SOLL
 | 
			
		||||
        } 
 | 
			
		||||
        Log3 $name, 5, "[OOOU] Cloud ".Dumper(@soll) . "- Ist:". Dumper(@ist);
 | 
			
		||||
 | 
			
		||||
        ## delete only if cloud != (ist/2)
 | 
			
		||||
        if (scalar(@soll) != scalar(@ist/2)
 | 
			
		||||
         && scalar(@soll) > 0
 | 
			
		||||
         && scalar(@ist) > 0){
 | 
			
		||||
 | 
			
		||||
          while(my $element = shift(@soll)) {
 | 
			
		||||
            my $schedule_step_int = 0;
 | 
			
		||||
 | 
			
		||||
            foreach my $sist (@ist) {
 | 
			
		||||
              my $step = scalar(@ist) > 1 ? 2:1;
 | 
			
		||||
              if ($element eq $sist){
 | 
			
		||||
                # splice(@ist, $schedule_step_int, 1); # more than 2 items del them, otherwise 1
 | 
			
		||||
                splice(@ist, $schedule_step_int, $step); # more than 2 items del them, otherwise 1
 | 
			
		||||
                #$schedule_step_int++;
 | 
			
		||||
              }
 | 
			
		||||
              # $schedule_step_int++;
 | 
			
		||||
              $schedule_step_int += $step;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        Log3 $name, 5, "[REST] ". Dumper(@ist);
 | 
			
		||||
        if (scalar(@ist) > 0){
 | 
			
		||||
          while (my $old_schedule_id = shift(@ist)) {
 | 
			
		||||
            if (length($old_schedule_id) == 1) {
 | 
			
		||||
              foreach (keys %{$hash->{READINGS}}) {
 | 
			
		||||
                delete $hash->{READINGS}->{$_} if($_ =~ /scheduling-schedules_event_$old_schedule_id.*/);
 | 
			
		||||
                }
 | 
			
		||||
            }# fi
 | 
			
		||||
            Log3 $name, 5, "[DEBUG] - $name : deletereading scheduling-schedules_event_$old_schedule_id.*"  if length($old_schedule_id) == 1;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        #### /validiere schedules
 | 
			
		||||
 | 
			
		||||
        for my $event_schedules ( @{ $decode_json->{scheduled_events} } ) {
 | 
			
		||||
          $valve_id = $event_schedules->{valve_id} if ( exists($event_schedules->{valve_id} ) ); #ic24
 | 
			
		||||
          $event_id++; # event id
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,2 @@
 | 
			
		||||
UPD 2022-07-21_19:43:48 49634 FHEM/73_GardenaSmartBridge.pm
 | 
			
		||||
UPD 2022-08-04_15:46:35 105511 FHEM/74_GardenaSmartDevice.pm
 | 
			
		||||
UPD 2022-08-06_13:11:33 107424 FHEM/74_GardenaSmartDevice.pm
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user