diff --git a/fhem/FHEM/91_sequence.pm b/fhem/FHEM/91_sequence.pm index 55a88ed93..a14af53e7 100644 --- a/fhem/FHEM/91_sequence.pm +++ b/fhem/FHEM/91_sequence.pm @@ -23,6 +23,7 @@ sequence_Initialize($) reportEvents:1,0 triggerPartial:1,0 showtime:1,0 + strictSequence:1,0 ); use warnings 'qw'; $hash->{AttrList} = join(" ", @attrList); @@ -79,11 +80,17 @@ sequence_Notify($$) my $events = deviceEvents($dev, AttrVal($ln, "addStateEvent", 0)); return if(!$events); my $max = int(@{$events}); + my $strictSequence = AttrVal($ln, "strictSequence", 0); for (my $i = 0; $i < $max; $i++) { my $s = $events->[$i]; $s = "" if(!defined($s)); - next if($n !~ m/^$re$/ && "$n:$s" !~ m/^$re$/); + if($n !~ m/^$re$/ && "$n:$s" !~ m/^$re$/) { + next if(!$strictSequence && $hash->{IDX}); + RemoveInternalTimer($ln); + sequence_Trigger($ln, "abort-strict"); + return ""; + } RemoveInternalTimer($ln); $hash->{last_source} = $n; @@ -169,12 +176,12 @@ sequence_Undef($$) =item summary_DE generiert Event nach Empfang einer definierten Event-Sequenz =begin html - +

sequence