[gelöst]Fehler in fhem.pl

Begonnen von hubiuwe, 23 Mai 2020, 12:34:56

Vorheriges Thema - Nächstes Thema

hubiuwe

Hallo
bei mir erscheint seit geraumer Zeit folgende Fehlermeldung:
PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by <-- HERE in m/^${ <-- HERE FHEM_DIR}/fhem.cfg$/ at fhem.pl line 3012.
Ich nutze:
Pearl 5.28.1.
fhem.pl 21987 2020-05-21 10:06:19Z rudolfkoenig

Gruß Uwe
Die beste Automatik ist die, die man abschalten kann!

CoolTux

Du hast in einem Attribut Perlcode zu stehen würde ich behaupten. Schau da mal.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

...der Fehler dürfte weniger in fhem.pl liegen und eher in einem deiner Attribute:

Da steht ein "eval" im Code, was den angekündigten Absturz an der Stelle verhindern sollte. Das eval prüft den Attributinhalt ;) .

Um das betreffende Attribut zu finden (bzw. um wenigstens rauszufinden, welches Modul es ist, um die potentiellen Devices weiter einzugrenzen), kannst du mal stacktrace aktivieren.

Würde aber eher nicht annehmen, dass es Perl-Code ist, was in dem Attribut steht, sondern eine regex. Dann da ein "\" zum escapen der Klammer davor setzen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto123

definiere Dir grep als cmdalias https://wiki.fhem.de/wiki/Cmdalias
Und suche mit grep m/^${ nach dieser Stelle.

Wenn es Dein Code ist (ersteht mit ziemlicher Sicherheit in Deiner config), ersetze in durch m/^$\{
zumindest sagt das diese Warnmeldung genau so :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

hubiuwe

Hallo zusammen
Da ich DBconfig verwende habe ich mir mal alle Attribute per SQL ausgeben lassen.
Im HOMEMODE Modul rufe ich in den cmd Attributen eine menge Pearlfunktionen auf.
Es gibt auch in diversen anderen Modulen Perlcode in Attributen.

Wenn ich, "Pearl-Laie", die fhem.pl an der entsprechnden Zeile richtig verstehe, wird innerhalb eine regex beginnend mit "m/^" die Variable $v eingefügt, die wiederum ein Attribut enthält welches mit einer geschweiften Klammer beginnt.

Einen regex der mit "{" beginnt habe ich dabei nicht gefunden.
Attribute mit "{" habe ich eine menge.
Soll ich alle geschweiften Klammern "escapen"??? :-[

Ein verdächtiges Attribut mit mehreren verschachtelten Klammern habe ich mal gelöscht, hat aber nichts geholfen.

Könnte man es über ein reload von jedem einzelnen Modul ausfindig machen?
Danke und Gruß
Die beste Automatik ist die, die man abschalten kann!

hubiuwe

Hallo!
Hebe es gefunden!
verbose auf 5

Und..
2020.05.23 14:15:16.572 5: Cmd: >attr fhemServerApt devStateIcon system.updates.available:security@red system.is.up.to.date:security@green:repoSync.*in.progress:system_fhem_reboot@orange errors:message_attention@red" >> ${FHEM_DIR}/fhem.cfg<
2020.05.23 14:15:16.573 1: PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by <-- HERE in m/^${ <-- HERE FHEM_DIR}/fhem.cfg$/ at fhem.pl line 3012.


Danke Euch allen.
Die beste Automatik ist die, die man abschalten kann!