Log auf bestimmte Readings beschränken?

Begonnen von heikoh81, 28 Dezember 2014, 10:31:47

Vorheriges Thema - Nächstes Thema

heikoh81

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

ritter_runkel

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
FHEM auf Raspberry Pi 2B
2x eService 1WireHu, 7x DS1820, 2x Multisensoren Wiregate AMS 2.11 für Temperatur DS1820, relativer Luftfeuchte HIH4031, zwei IO-Ports DS2438, Analog-Eingang 0-10 V (bzw. 0-20 mA) DS2413
FritzDECT; HUE; 5xFibaro RollerShutter, Rauchmelder

geek

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

stromer-12

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).*
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL