2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-12 22:56:34 +00:00

fhem.pl: deterministic order of userReadings execution (Forum #49682)

git-svn-id: https://svn.fhem.de/fhem/trunk@10906 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2016-02-21 17:28:13 +00:00
parent cac627b37b
commit a2dca22ceb

View File

@ -2479,8 +2479,7 @@ CommandAttr($$)
# matches myReading1[:trigger2] { codecode1 }
my $regexi= '\s*([\w.-]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';
my $regexo= '^(' . $regexi . ')(,\s*(.*))*$';
#Log 1, "arg is $arg";
my $rNo=0;
while($arg =~ /$regexo/s) {
my $userReading= $2;
@ -2495,6 +2494,7 @@ CommandAttr($$)
$userReadings{$userReading}{trigger}= $trigger;
$userReadings{$userReading}{modifier}= $modifier;
$userReadings{$userReading}{perlCode}= $perlCode;
$userReadings{$userReading}{readingNo}= $rNo++;
} else {
push @rets, "$sdev: unknown modifier $modifier for ".
"userReading $userReading, this userReading will be ignored";
@ -3870,7 +3870,9 @@ readingsEndUpdate($$)
# process user readings
if(defined($hash->{'.userReadings'})) {
my %userReadings= %{$hash->{'.userReadings'}};
foreach my $userReading (keys %userReadings) {
foreach my $userReading (sort { $userReadings{$a}{readingNo} <=>
$userReadings{$b}{readingNo} }
keys %userReadings) {
my $trigger = $userReadings{$userReading}{trigger};
if(defined($trigger)) {