Hallo,
seit kurzem taucht bei mir im Log die folgende Fehlermeldung auf, und zwar ziemlich häufig.
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/^(Leistung_Gesamt{ <-- HERE 230.89})$/ at fhem.pl line 1321.
2020.01.06 20:48:50.598 2: Steuerung_Heizung: set Leistung_Gesamt{230.89}: Please define Leistung_Gesamt{230.89} first/
Das kommt offensichtlich aus meiner Heizungssteuerung, die ich mit dem folgenden DOIF regele:
([LeistungGesamt]>200)
(set Leistung_Gesamt{[#sum:d2:":Leistung":Leistung:$TYPE eq "CUL_HM"]})
(set Ventile_Gesamt {([#sum:d2:":actuator":actuator:$TYPE eq "CUL_HM"])/16})
(set Heizungsschalter on)
DOELSE
(set Heizungsschalter off)
DOELSE
Die LeistungGesamt und Ventile_Gesamt werden von den Heizungsthermostaten HM-CC-RT-DN abgerufen. "actuator" entspricht der Ventilöffnung. Die Leistung wird aus dem folgenden Userreading abgerufen und da liegt anscheinend der Hase - aber in welchem ? - Pfeffer:
Leistung {ReadingsVal("Arbeitszimmer","actuator",0)*189/100}
Hier ist natürlich nur das Beispiel von einem Thermostat. Es gibt noch einige weitere.
Der Abruf der Daten funktioniert zwar, aber die Fehlermeldung müllt mein Log im Minutenabstand zu.
Hat jemand eine Idee, wie ich was ändern könnte?
Gruß
Wolfgang
Setz mal ein \ vor dem {
Du meinst wohl:
(set Leistung_Gesamt [#sum:d2:":Leistung":Leistung:$TYPE eq "CUL_HM"])
Hallo,
danke an CoolTux. Das scheint das Problem gelöst zu haben.
@Damian: Ohne die geschweifte Klammer gibts eine Fehlermeldung. Wenn ich die DOIF-Erläuterungen richtig verstehe, sind die zum Rechnen notwendig.l
Gruß
Wolfgang
Zitat von: WolfgangV am 06 Januar 2020, 21:45:36
Hallo,
danke an CoolTux. Das scheint das Problem gelöst zu haben.
@Damian: Ohne die geschweifte Klammer gibts eine Fehlermeldung. Wenn ich die DOIF-Erläuterungen richtig verstehe, sind die zum Rechnen notwendig.l
Gruß
Wolfgang
Du rechnest doch gar nicht, sondern die Aggregationsfunktion.
Also ich würde nochmal (wie Damian schon) ;) einwerfen: Da fehlt einfach ein Leerzeichen nach Gesamt
(set Leistung_Gesamt {[#sum:d2:":Leistung":Leistung:$TYPE eq "CUL_HM"]})
Die Klammern sind sicher nur mehr als flüssig :)
Wenn du innerhalb eines FHEM-Befehls rechnen wolltest, hättest du noch runde Klammern angeben müssen:
{( ...)}
Insofern bringt der zweite Befehl zwar keine Fehler - rechnet sicher aber auch nicht. Die () sind einfach an der falschen Stelle?
(set Ventile_Gesamt {([#sum:d2:":actuator":actuator:$TYPE eq "CUL_HM"]/16)})
Hallo an alle,
danke für die schnellen und kompetenten Rückmeldungen.
Ich hoffe, gegen das wie folgt geänderte DOIF gibt es jetzt keine Proteste mehr ;)
([LeistungGesamt]>200)
(set LeistungGesamt [#sum:d2:":Leistung":Leistung:$TYPE eq "CUL_HM"])
(set VentilOeffnung_Gesamt [#sum:d2:":actuator":actuator:$TYPE eq "CUL_HM"]/16)
(set Heizungsschalter on)
DOELSEIF
(set Heizungsschalter off)
DOELSE
Gruß
Wolfgang
doch im ersten set-Befehl, das war ursprünglich auch der Auslöser der Fehlermeldung, ist jetzt alles ok, weil du dort nicht rechnen willst.
Bei der zweiten Angabe willst du sehr wohl rechnen, daher waren die Klammern korrekt, wie vorgeschlagen:
(set Ventile_Gesamt {([#sum:d2:":actuator":actuator:$TYPE eq "CUL_HM"]/16)})
Aha, daher die merkwürdigen Einträge im Log.
2020-01-06_23:01:32 VentilOeffnung_Gesamt 6.5625
2020-01-06_23:04:02 VentilOeffnung_Gesamt 104.00/16
2020-01-06_23:04:02 VentilOeffnung_Gesamt 6.5
2020-01-06_23:04:27 VentilOeffnung_Gesamt 109.00/16
2020-01-06_23:04:27 VentilOeffnung_Gesamt 6.8125
2020-01-06_23:06:18 VentilOeffnung_Gesamt 105.00/16
2020-01-06_23:06:18 VentilOeffnung_Gesamt 6.5625
2020-01-06_23:07:20 VentilOeffnung_Gesamt 106.00/16
2020-01-06_23:07:20 VentilOeffnung_Gesamt 6.625
2020-01-06_23:08:51 VentilOeffnung_Gesamt 6.5625
2020-01-06_23:09:35 VentilOeffnung_Gesamt 6.6875
2020-01-06_23:11:10 VentilOeffnung_Gesamt 6.375
2020-01-06_23:12:20 VentilOeffnung_Gesamt 6.375
2020-01-06_23:12:20 VentilOeffnung_Gesamt 6.375
2020-01-06_23:12:23 VentilOeffnung_Gesamt 6.3125
2020-01-06_23:12:23 VentilOeffnung_Gesamt 6.3125
2020-01-06_23:13:47 VentilOeffnung_Gesamt 6.3125
2020-01-06_23:13:47 VentilOeffnung_Gesamt 6.3125
2020-01-06_23:14:33 VentilOeffnung_Gesamt 6.1875
2020-01-06_23:14:34 VentilOeffnung_Gesamt 6.1875
Aber gerechnet wurde ja anscheinend doch.
Zitat von: WolfgangV am 06 Januar 2020, 23:19:53
Aha, daher die merkwürdigen Einträge im Log.
2020-01-06_23:01:32 VentilOeffnung_Gesamt 6.5625
2020-01-06_23:04:02 VentilOeffnung_Gesamt 104.00/16
2020-01-06_23:04:02 VentilOeffnung_Gesamt 6.5
2020-01-06_23:04:27 VentilOeffnung_Gesamt 109.00/16
2020-01-06_23:04:27 VentilOeffnung_Gesamt 6.8125
2020-01-06_23:06:18 VentilOeffnung_Gesamt 105.00/16
2020-01-06_23:06:18 VentilOeffnung_Gesamt 6.5625
2020-01-06_23:07:20 VentilOeffnung_Gesamt 106.00/16
2020-01-06_23:07:20 VentilOeffnung_Gesamt 6.625
2020-01-06_23:08:51 VentilOeffnung_Gesamt 6.5625
2020-01-06_23:09:35 VentilOeffnung_Gesamt 6.6875
2020-01-06_23:11:10 VentilOeffnung_Gesamt 6.375
2020-01-06_23:12:20 VentilOeffnung_Gesamt 6.375
2020-01-06_23:12:20 VentilOeffnung_Gesamt 6.375
2020-01-06_23:12:23 VentilOeffnung_Gesamt 6.3125
2020-01-06_23:12:23 VentilOeffnung_Gesamt 6.3125
2020-01-06_23:13:47 VentilOeffnung_Gesamt 6.3125
2020-01-06_23:13:47 VentilOeffnung_Gesamt 6.3125
2020-01-06_23:14:33 VentilOeffnung_Gesamt 6.1875
2020-01-06_23:14:34 VentilOeffnung_Gesamt 6.1875
Aber gerechnet wurde ja anscheinend doch.
nein: 106.00/16 wurde nicht ausgerechnet
Hauptursache dürfte das fehlende Leerzeichen gewesen sein, je nach folgendem Term und Reihenfolge der Klammern verhalten sich Perl-, Fhem- und DOIF-Interpreter unterschiedlich.
Hallo Damian und der Rest,
Zitatnein: 106.00/16 wurde nicht ausgerechnet
ich werde nie mehr widersprechen! ;)
Ernsthaft:
Nochmals vielen Dank! Ich muss immer wieder wiederholen, wie toll es ist, dass hier so viele kompetente Menschen in nahezu immer sehr kurzer Zeit mit Rat und Tat beiseite stehen! Ohne diese Unterstützung sähe meine FHEM-Installation bedeutend mickriger aus, wenn es sie überhaupt gäbe!
Gruß
Wolfgang