Es hat wohl in den letzten Wochen eine Änderung in ReplaceSetMagic - fhem.pl gegeben, die ich zwar verstehe aber die wohl auch Probleme auslöst.
Beispiel hier: https://forum.fhem.de/index.php/topic,38328.msg443007.html#msg443007 (https://forum.fhem.de/index.php/topic,38328.msg443007.html#msg443007)
Es geht um die Ersetzung von Perl-Ausdrücken in set-Befehlen, dabei wird jetzt folgender Regexp angewendet:
$a =~ s/{\((.*)\)}/AnalyzePerlCommand($hash->{CL},$1,1)/egs;
Das 's' in 'egs' am Ende ist hinzugekommen, vermutlich damit auch Perl-Ausdrücke über mehrere Zeilen erfasst werden.
Allerdings gibt es dann ein Problem mit mehreren Perl-Ausdrücken in einem Set, da die Erkennung "greedy" ist und das '.*' am Anfang soviel wie möglich zusammenfasst auch unter Umständen über mehrere Expressions hinweg. Damit führt so etwas wie:
set aDevice aCommand {(ReadingsVal("dev","r1",0))} {(ReadingsVal("dev","r2",0))}
zu Fehlern.
Vorschlag den .* einfach non-greedy (mit Fragezeichen am Ende) machen:
$a =~ s/{\((.*?)\)}/AnalyzePerlCommand($hash->{CL},$1,1)/egs;
Aus meiner Sicht sollte das auch keine negativen Seiteneffekte haben.
@Rudi: Ich habe jetzt mal keine Patch für das eine Zeichen erstellt, ich bitte um Nachsicht ;)
Danke fuer den Hinweis, habs eingecheckt.
Und ausnahmsweise Nachsicht gewaehrt. :)