FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Mundus am 23 Februar 2025, 22:45:13

Titel: [gelöst] Perl Warning aus Modul 88_HMCCU.pm
Beitrag von: Mundus am 23 Februar 2025, 22:45:13
Hi,

ich habe gestern mein FHEM auf ein neues Betriebssystem (Raspi 3 mit Bookworm) übertragen. Es hat auch alles einigermaßen gut geklappt.

Im Log fällt mir nur seit dem Umzug folgendes Perl Warning auf:
2025.02.23 21:03:53 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/\$\{?1.${ <-- HERE sysVarRainYesterday}\}?/ at ./FHEM/88_HMCCU.pm line 2876.
2025.02.23 21:03:53 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/\$\{?${ <-- HERE sysVarRainYesterday}\}?/ at ./FHEM/88_HMCCU.pm line 2877.
2025.02.23 21:03:53 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/\%\{?1.${ <-- HERE sysVarRainYesterday}\}?/ at ./FHEM/88_HMCCU.pm line 2884.
2025.02.23 21:03:53 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/\%\{?${ <-- HERE sysVarRainYesterday}\}?/ at ./FHEM/88_HMCCU.pm line 2885.
2025.02.23 21:03:53 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/\$\{?1.${ <-- HERE sysVarRainToday}\}?/ at ./FHEM/88_HMCCU.pm line 2876.
2025.02.23 21:03:53 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/\$\{?${ <-- HERE sysVarRainToday}\}?/ at ./FHEM/88_HMCCU.pm line 2877.
2025.02.23 21:03:53 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/\%\{?1.${ <-- HERE sysVarRainToday}\}?/ at ./FHEM/88_HMCCU.pm line 2884.
2025.02.23 21:03:53 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/\%\{?${ <-- HERE sysVarRainToday}\}?/ at ./FHEM/88_HMCCU.pm line 2885.

Diesbezüglich habe ich im Netz ein wenig recherchiert und bin nur auf einen Fehler -verursacht durch ein Userreading- gestoßen. In meinem Fall habe ich nur kein UserReading in den Homematic Bereich gesetzt (ZUmindest nach meinem Kenntnisstand und einer SUche im System).

Könnt ihr mir helfen, wie ich diese Warnmeldung beseitigen kann?

Ergänzend, ich habe ein Homematic Device, welches die beiden Readings _sysVarRainYesterday_ und _sysVarRainToday_ automatisch liefert. Das ganze Device sieht wie folgt aus:
define HM_Wetterstation_JuFa HMCCUCHN OEQ2113522:1
attr HM_Wetterstation_JuFa alias Wetterstation AK8
attr HM_Wetterstation_JuFa event-on-change-reading TEMPERATURE
attr HM_Wetterstation_JuFa group Wetter
attr HM_Wetterstation_JuFa room AK8,HomeMatic,Wetter
attr HM_Wetterstation_JuFa stateFormat Temp: TEMPERATURE°C | Regen: RAINING | Wind: WIND_SPEED km/h | Hum: HUMIDITY%
attr HM_Wetterstation_JuFa substitute RAINING false:Kein Regen
#   DEF        OEQ2113522:1
#   FUUID      67408f8f-f33f-23be-53a6-4df45f07ce199f49
#   IODev      myHomeMatic
#   NAME       HM_Wetterstation_JuFa
#   NR         265
#   STATE      Temp: 4.0°C | Regen: false | Wind: 0.6 km/h | Hum: 87%
#   TYPE       HMCCUCHN
#   ccuaddr    OEQ2113522:1
#   ccudevstate active
#   ccuif      BidCos-RF
#   ccuname    HM-Wetterstation-JuFa:1
#   ccurolestate WEATHER
#   ccusubtype HM-WDS100-C6-O-2
#   ccutype    HM-WDS100-C6-O-2
#   firmware   1.6
#   readonly   no
#   READINGS:
#     2025-02-23 21:03:53   BRIGHTNESS      0
#     2025-02-23 21:03:53   HUMIDITY        87
#     2025-02-23 21:03:33   IODev           myHomeMatic
#     2025-02-23 21:03:53   RAINING         false
#     2025-02-23 21:03:53   RAIN_COUNTER    87.0
#     2025-02-23 21:03:53   SUNSHINEDURATION 164
#     2025-02-23 21:03:53   TEMPERATURE     4.0
#     2025-02-23 21:03:53   WIND_DIRECTION  120
#     2025-02-23 21:03:53   WIND_DIRECTION_RANGE 67
#     2025-02-23 21:03:53   WIND_SPEED      0.6
#     2025-02-23 21:03:53   _sysVarRainToday_ 0.0
#     2025-02-23 21:03:53   _sysVarRainYesterday_ 0.0
#     2025-02-23 21:03:53   activity        dead
#     2025-02-23 21:03:53   battery         low
#     2025-02-23 21:03:53   devstate        unreach,stickyUnreach
#     2025-02-23 21:03:53   hmstate         unreachable
#     2025-02-23 21:03:53   humidity        87
#     2025-02-23 21:03:53   measured-temp   4.0
#     2025-02-23 21:03:53   rssidevice      -255
#     2025-02-23 21:03:53   rssipeer        -76
#     2025-02-23 21:03:53   state           4.0
#   hmccu:
#     channels   1
#     detect     0
#     devspec    OEQ2113522:1
#     nodefaults 1
#     role       1:WEATHER
#     setDefaults 0
#     cmdlist:
#       get       
#       set       
#     control:
#     dp:
#       0.CONFIG_PENDING:
#         VALUES:
#           NVAL       0
#           SVAL       false
#           VAL        0
#       0.DEVICE_IN_BOOTLOADER:
#         VALUES:
#           NVAL       0
#           SVAL       false
#           VAL        0
#       0.LOWBAT:
#         VALUES:
#           NVAL       1
#           SVAL       low
#           VAL        1
#       0.RSSI_DEVICE:
#         VALUES:
#           NVAL       -255
#           SVAL       -255
#           VAL        1
#       0.RSSI_PEER:
#         VALUES:
#           NVAL       -76
#           SVAL       -76
#           VAL        180
#       0.STICKY_UNREACH:
#         VALUES:
#           NVAL       1
#           SVAL       true
#           VAL        1
#       0.UNREACH:
#         VALUES:
#           NVAL       1
#           SVAL       dead
#           VAL        1
#       0.UPDATE_PENDING:
#         VALUES:
#           NVAL       0
#           SVAL       false
#           VAL        0
#       1.${sysVarRainToday}:
#         VALUES:
#           NVAL       0.000000
#           SVAL       0.0
#           VAL        0.000000
#       1.${sysVarRainYesterday}:
#         VALUES:
#           NVAL       0.000000
#           SVAL       0.0
#           VAL        0.000000
#       1.BRIGHTNESS:
#         VALUES:
#           NVAL       0
#           SVAL       0
#           VAL        0
#       1.HUMIDITY:
#         VALUES:
#           NVAL       87
#           SVAL       87
#           VAL        87
#       1.RAINING:
#         VALUES:
#           NVAL       0
#           SVAL       false
#           VAL        0
#       1.RAIN_COUNTER:
#         VALUES:
#           NVAL       87.025000
#           SVAL       87.0
#           VAL        87.025000
#       1.SUNSHINEDURATION:
#         VALUES:
#           NVAL       164
#           SVAL       164
#           VAL        164
#       1.TEMPERATURE:
#         VALUES:
#           NVAL       4.000000
#           SVAL       4.0
#           VAL        4.000000
#       1.WIND_DIRECTION:
#         VALUES:
#           NVAL       120
#           SVAL       120
#           VAL        120
#       1.WIND_DIRECTION_RANGE:
#         VALUES:
#           NVAL       67
#           SVAL       67
#           VAL        67
#       1.WIND_SPEED:
#         VALUES:
#           NVAL       0.600000
#           SVAL       0.6
#           VAL        0.600000
#     roleChannels:
#       WEATHER    1
#     roleCmds:
#       get:
#       set:
#     state:
#       chn        1
#       dpt        TEMPERATURE
#
setstate HM_Wetterstation_JuFa Temp: 4.0°C | Regen: false | Wind: 0.6 km/h | Hum: 87%
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 BRIGHTNESS 0
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 HUMIDITY 87
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:33 IODev myHomeMatic
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 RAINING false
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 RAIN_COUNTER 87.0
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 SUNSHINEDURATION 164
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 TEMPERATURE 4.0
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 WIND_DIRECTION 120
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 WIND_DIRECTION_RANGE 67
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 WIND_SPEED 0.6
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 _sysVarRainToday_ 0.0
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 _sysVarRainYesterday_ 0.0
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 activity dead
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 battery low
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 devstate unreach,stickyUnreach
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 hmstate unreachable
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 humidity 87
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 measured-temp 4.0
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 rssidevice -255
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 rssipeer -76
setstate HM_Wetterstation_JuFa 2025-02-23 21:03:53 state 4.0

Titel: Aw: Perl Warning aus Modul 88_HMCCU.pm
Beitrag von: JoWiemann am 24 Februar 2025, 07:40:38
Hallo,

ich vermute die Ursache im Attribut substitute. Löscht das mal. Wenn die Warnings dann weg sind, dann muss Du Dir das mal ansehen. Ggf. ist der Doppelpunkt der Auslöser. Aber, alles nur Vermutung.

Grüße Jörg
Titel: Aw: Perl Warning aus Modul 88_HMCCU.pm
Beitrag von: Beta-User am 24 Februar 2025, 07:45:13
FHEM ist auch aktuell?

Ich meine, das wäre vor längerem in HMCCU.* gefixt worden.

(version?)
Titel: Aw: Perl Warning aus Modul 88_HMCCU.pm
Beitrag von: Mundus am 24 Februar 2025, 09:07:50
Hi!

@Jörg: Das Entfernen des Substitue war leider nicht erfolgreich. Ich habe es entfernt und anschließend den fhem.service neu gestartet. Im Log erscheint weiter die o. g. Hinweismeldung.

@Beta-User: Die Versionen der HM*-Module
88_HMCCU.pm        29453 2024-12-27 09:41:44Z zap
88_HMCCUCHN.pm     29453 2024-12-27 09:41:44Z zap
88_HMCCUDEV.pm     29453 2024-12-27 09:41:44Z zap
88_HMCCURPCPROC.pm 29453 2024-12-27 09:41:44Z zap
Das müssten nach meinem Gefühl die aktuellsten Versionen sein, zumal ich Update auch vorgestern, nach dem neu aufsetzen, durchgeführt habe.
Titel: Aw: Perl Warning aus Modul 88_HMCCU.pm
Beitrag von: zap am 25 Februar 2025, 09:34:44
Nutzt Du Rasperrymatic? Falls ja, schau bitte mal auf der CCU unter Einstellungen -> Systemvariablen nach. Ganz unten den Button "Systeminterne Variablen einblenden". Wie heißen die beiden Variablen dort? z.B _sysVarRainToday_ oder ${sysVarRainToday} oder ...
Titel: Aw: Perl Warning aus Modul 88_HMCCU.pm
Beitrag von: Mundus am 25 Februar 2025, 19:02:13
Hi zap,

ich nutze die CCU2 von Homematic und keinen Rasperrymatic. Wenn ich die Variablen dort auch auslesen oder finden kann, würde ich diese auch gerne raussuchen und zur Verfügung stellen.

VG
Titel: Aw: Perl Warning aus Modul 88_HMCCU.pm
Beitrag von: Mundus am 28 Februar 2025, 11:39:24
So, ich habe mal in der CCU nachgeschaut. In den Systemvariablen ist der Inhalt des Homematic.png zu finden.

Die Systemvariable "Regen vielleicht" habe ich gerade selber zu Testzwecken hinzugefügt. Beim Neustart des FHEM Systems werden weiter nur die o.g. sysVarRainYesterday und sysVarRainToday mit dem PerlWarning ausgegeben.

Leider weiß ich nicht, wo ich die tatsächlichen im System der CCU hinterlegte Bezeichnung der Variablen finden kann.

Mein nächster Schritt ist jetzt, die Systemvariablen "Regen heute" und "Regen gestern" zu löschen.

Für andere weitere Ideen / Hinweise etc bin ich sehr dankbar.

P.S. die Systemvariable Regen vielleicht wird beim Neustart des FHEM-Systems dort mit dem Namen "Regen_vielleicht" angezeigt.

Titel: Aw: Perl Warning aus Modul 88_HMCCU.pm
Beitrag von: Mundus am 28 Februar 2025, 12:12:38
Jetzt habe ich in der CCU die Systemvariablen (Regen heute und Regen gestern) gelöscht. Beim Neustart des FHEM ist das Perl Warning ausgeblieben.

Nachdem ich die Systemvariablen in der CCU wieder angelegt habe, ist die Hinweismeldung nicht wieder erschienen. Außerdem erscheinen im Device jetzt nicht mehr die Readings _sysVarRainToday_
_sysVarRainYesterday_
, sondern Regen_heute
Regen_gestern
, was auch mehr der Bezeichnung in der CCU entspricht!

Ich kann zwar in der CCU den Wert nicht mehr dezimal mit 0.000000 einstellen, sondern nur noch eine Ganzzahl hinterlegen, aber dafür ist das Warning in FHEM weg.

Die Ursache für das Warning und die fehlende Einstellung von Dezimalzahlen sind mir nicht bekannt, das Problem jedoch gelöst.

Insofern long Story short:
Bei meinem Fehler (Warning), Systemvariable in der CCU2 löschen und neu hinzufügen. Danach wurde das Warning nicht mehr angezeigt!

@ZAP: Danke für das Lenken des Blicks!