Autor Thema: [gelöst]Fehler in fhem.pl  (Gelesen 235 mal)

Offline hubiuwe

  • New Member
  • *
  • Beiträge: 41
[gelöst]Fehler in fhem.pl
« am: 23 Mai 2020, 12:34:56 »
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
« Letzte Änderung: 23 Mai 2020, 14:25:32 von hubiuwe »
Die beste Automatik ist die, die man abschalten kann!

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25708
Antw:Fehler in fhem.pl
« Antwort #1 am: 23 Mai 2020, 13:03:07 »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10945
  • eigentlich eher "user" wie "developer"
Antw:Fehler in fhem.pl
« Antwort #2 am: 23 Mai 2020, 13:09:01 »
...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-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 15953
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Fehler in fhem.pl
« Antwort #3 am: 23 Mai 2020, 13:13:01 »
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
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline hubiuwe

  • New Member
  • *
  • Beiträge: 41
Antw:Fehler in fhem.pl
« Antwort #4 am: 23 Mai 2020, 14:11:26 »
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!

Offline hubiuwe

  • New Member
  • *
  • Beiträge: 41
Antw:Fehler in fhem.pl
« Antwort #5 am: 23 Mai 2020, 14:25:00 »
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!