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
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
FHEM ist auch aktuell?
Ich meine, das wäre vor längerem in HMCCU.* gefixt worden.
(version?)
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.
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 ...
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
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.
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!