[fix] - delete unused schedules

This commit is contained in:
Sebastian 2022-08-06 20:20:04 +02:00
parent bae27c39c1
commit 0ee95be7be
3 changed files with 15 additions and 11 deletions

View File

@ -1 +1 @@
[enhancement] - commandref
[enhancement] - delete unused scheuldes from readings

View File

@ -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,21 +862,25 @@ 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, $step); # more than 2 items del them, otherwise 1

View File

@ -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