Hallo zusammen,
ich habe bei den Logs das Problem, dass die Werte für das reading immer doppelt erscheinen, und zwar einmal mit und einmal ohne : im Log:
Siehe die letzten beiden Zeilen.
2014-12-28_10:28:32 Vorlauf.Hz VL.T: 55.00 °C
2014-12-28_10:28:32 Vorlauf.Hz RL.T: 40.50 °C
2014-12-28_10:28:32 Vorlauf.Hz Brenner Status: Brenner An (Heizbetrieb)
2014-12-28_10:28:32 Vorlauf.Hz Wert3_unbekannt: 96
2014-12-28_10:28:32 Vorlauf.Hz Wert4_unbekannt: 253
2014-12-28_10:28:32 Vorlauf.Hz Vorlauf: VL.T 55.00 °C, RL.T 40.50 °C, Brenner An (Heizbetrieb)
2014-12-28_10:28:32 Vorlauf.Hz Vorlauf VL.T 55.00 °C, RL.T 40.50 °C, Brenner An (Heizbetrieb)
Nun dachte ich, dass ich das Logging auf bestimmte Readings beschränken kann:
define FileLog_Vorlauf.Hz FileLog ./log/Vorlauf.Hz-%Y-%m.log Vorlauf.Hz:(Brenner Status|RL.T|VL.T).*
attr FileLog_Vorlauf.Hz logtype text
attr FileLog_Vorlauf.Hz room Logs_Vaillant
Das liefert aber folgenden Fehler:
wrong syntax: define FileLog filename regexp Please define FileLog_Vorlauf.Hz first Please define FileLog_Vorlauf.Hz first
Wo liegt mein Fehler?
Bzw. wie könnte man das doppelte Logging (siehe oben) unterdrücken?
Viele Grüße,
Heiko
Hallo,
ich bin auch nur ein Rookie aber probiere doch mal die gewünschten Werte nicht in eine Klammer zu schreiben, sondern einzeln. Allerdings kann ich nicht sagen, wie Du mir dem Freizeichen bei dem Brenner-Status umgehen musst.
Bei mir sieht das Logging verschiedener Werte so aus:
define FileLog_BadKlima FileLog log/BadKlima-%Y-%m.log BadKlima:humidity|BadKlima:temperature_T.*
In Deiner Fehlermeldung stehen auch 3 Fehler drin - der erste könnte mit dem Dateinamen, der bei Dir einen " . " enthält zusammen hängen. Benenne die Datei mal anders.
Grüße
Erik
Hi,
wenn du keine Überraschung willst, solltest du die () Klammer auf jeden Fall beibehalten: Intern benutzt fhem /^$deine_regexp$/ - wenn du die Klammern um deine |-Alternativen weglässt werden also ^ und $ Teil der Alternativen. Kann Funktionieren - kann aber auch unerwartete Ergebnisse liefern.
Statt dem Leerzeichen kannst du entweder einen Punkt (. - sehr unspezifisch) oder \s verwenden.
Rainer
In deiner Regex darf kein Leerzeichen vorkommen.
Wo kommt eigentlich "Brenner Status" her?
Readingnamen mit Leerzeichen sind nicht gut.
Du kannst für das Leerzeichen einen Punkt(beliebiges Zeichen) verwenden.
Vorlauf.Hz:(Brenner.Status|RL.T|VL.T).*