hallo andre,
es gibt schon länger folgenden fehler, der durch neuere perl versionen "sichtbar" wird und irgendwann anscheinend sogar zum absturz von fhem führt:
2019.11.11 10:08:27.759 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^ValvePosition@{ <-- HERE valveOfDevice($DEVICE)}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2019.11.11 10:08:27.760 1: stacktrace:
2019.11.11 10:08:27.760 1: main::__ANON__ called by ./FHEM/33_readingsGroup.pm (1383)
2019.11.11 10:08:27.760 1: main::readingsGroup_Notify called by fhem.pl (3750)
2019.11.11 10:08:27.760 1: main::CallFn called by fhem.pl (3670)
2019.11.11 10:08:27.761 1: main::DoTrigger called by fhem.pl (4036)
2019.11.11 10:08:27.761 1: main::Dispatch called by ./FHEM/00_CUL.pm (948)
2019.11.11 10:08:27.761 1: main::CUL_Parse called by ./FHEM/00_CUL.pm (832)
2019.11.11 10:08:27.762 1: main::CUL_Read called by fhem.pl (3750)
2019.11.11 10:08:27.762 1: main::CallFn called by fhem.pl (750)
eine lösung wurde auch schon beschrieben, siehe https://forum.fhem.de/index.php/topic,78337.msg798594.html#msg798594 (https://forum.fhem.de/index.php/topic,78337.msg798594.html#msg798594). die änderung der zeile 1383 läuft bei mir jetzt gut einen tag problemlos.
Zitat von: sfancy am 01 Mai 2018, 08:30:32
Na die fehlschlagende Stelle ist ja bei allen "at ./FHEM/33_readingsGroup.pm line 1383".
In Zeile 1383 steht
next if( defined($regex) && $reading !~ m/^$regex$/);
Wenn jetzt in $regex z.B. controlMode@{$DEVICE.'_Clima'} steht, dann kommt die obige Fehlermeldung.
Weshalb wird an der Stelle überhaupt ein Regex verwendet? Meiner Meinung nach ist
next if( defined($regex) && $reading ne $regex);
equivalent zu
next if( defined($regex) && $reading !~ m/^$regex$/);
Mit dem Unterschied, dass es auch in neuen Perl-Versionen fehlerfrei läuft.
Testet das mal ohne Gewähr. Leider ist die Funktion readingsGroup_Notify($$) in der die fehlerhafte Zeile steht ziemlich lang und unübersichtlich, so dass ich nicht alles umrissen habe.
ein weiterer thread ist https://forum.fhem.de/index.php/topic,71402.0.html (https://forum.fhem.de/index.php/topic,71402.0.html)
vielleicht bemerkst du ja diesen neuen thread, damit dieses alte problem mal aus der welt kommt.
gruss frank
Hallo,
dieses Problem gibt es auch noch im Zusammenhang mit u.a. MQTT_GENERIC_BRIDGE.
==> https://forum.fhem.de/index.php/topic,103529.msg984933.html#msg984933 (https://forum.fhem.de/index.php/topic,103529.msg984933.html#msg984933)
Dort hatte ich ein wenig recherchiert und die sich ergebende, minimale Änderung im entsprechenden Modul testweise vorgenommen.
Es lief ohne Auffälligkeiten, wurde aber irgendwann mit dem darauffolgenden Update wieder "entsorgt".
Unter Buster bzw. eher Perl 5.28.1 wurde die entsprechende Meldung deutlich "verschärft":
... PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; ...
ZitatEs lief ohne Auffälligkeiten, wurde aber irgendwann mit dem darauffolgenden Update wieder "entsorgt".
"attr global exclude_from_update" kennst du?
Ist bekannt, aber man will sich ja nicht direkt ganz von den anderen Änderungen eines Moduls ausgrenzen ...