From 0ee95be7be4831e2d98d1e3024acd3d4cf56a33f Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 6 Aug 2022 20:20:04 +0200 Subject: [PATCH] [fix] - delete unused schedules --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 22 +++++++++++++--------- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/CHANGED b/CHANGED index 2de9fa3..10ab08b 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - [enhancement] - commandref + [enhancement] - delete unused scheuldes from readings diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index c85ac36..79db63f 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -848,7 +848,7 @@ sub WriteReadings { ## # validiere schedules - my @soll = ();my @ist=(); + my @soll = ();my @ist=(); my @tmp_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 @@ -862,27 +862,31 @@ use Data::Dumper; 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, "[DEBUG] $name - Key ist : $dev_schedules "; + Log3 $name, 5, "[DDDDD] $name - 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) + if ((scalar(@soll) != scalar(@ist/2) && scalar(@soll) > 0 - && scalar(@ist) > 0){ - + && scalar(@ist) > 0) + || (scalar(@ist) eq 2 && scalar(@soll) eq 1 )){ + @tmp_ist = @ist; while(my $element = shift(@soll)) { my $schedule_step_int = 0; - foreach my $sist (@ist) { + foreach my $sist (@tmp_ist) { my $step = scalar(@ist) > 1 ? 2:1; + #print "step laenge $step \n"; + + print "check $element = $sist\n"; if ($element eq $sist){ - # splice(@ist, $schedule_step_int, 1); # more than 2 items del them, otherwise 1 + #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++; $schedule_step_int += $step; } } diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 84761da..041545f 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-07-21_19:43:48 49634 FHEM/73_GardenaSmartBridge.pm -UPD 2022-08-06_13:11:33 107424 FHEM/74_GardenaSmartDevice.pm +UPD 2022-08-06_20:17:48 107633 FHEM/74_GardenaSmartDevice.pm