Hallo,
ich dabei ein Gerät welches verschiedenste Werte in die Logdatei schreibt.
Einen Wert möchte ich aber nicht geschrieben haben.
Gibt es einen Befehl um nur diesen einen Wert zu unterdrücken.
Der Eintrag ist wie folgt:
2018-04-29_13:24:27 ROB device_info-last_time_online: 2018-04-29 13:23:45
Prinzipiell so: https://www.regextester.com/15
Ich weiss aber nicht, ob das "negative lookahead" in Filelog oder event-on- funktioniert. Sollte aber. Probier mal.
Ansonsten musst Du eine Regex erfinden, die alle andere Readings bis auf dem nicht gewünschten matcht.
Hi,
mach doch einfach mal ein list von deinem FileLog und von ROB und poste das hier.
Gruß Otto
Ich würde immer die RegEx Variante bevorzugen. Sonst schreibt es dir Ruckzuck die DB voll. Vor allem wenn du viele Geräte hast.
Z. B. foglendermaßen:
HM.* = Alle Devices die mit HM beginnen (HomeMatic)
| = oder
Am Ende nach der Klammer kannst du mit "|" weitere Devices angeben.
define DBLOG DbLog ./db.conf HM.*:(humidity|desired-temp|measured-temp|level|kWh|eState|pct|motion|brightness|open|closed)
https://fhem.de/commandref.html#ignoreRegexp
Der Tip ist ja interessant - aber handelt es sich denn beim TE um ein notify? ::)
Aber Teufelchen ist scheinbar noch in der Walpurgisnacht... ;D
Hallo,
nicht in Walpurgisnacht. Aber nicht zu Hause zum testen.
Und über VPN und Handy sehr frickelig und fehlerbehaftet.
Zitat von: Otto123 am 02 Mai 2018, 10:14:50
Der Tip ist ja interessant - aber handelt es sich denn beim TE um ein notify? ::)
sorry, hab das vorhin nur schnell verlinkt.
auch bei https://fhem.de/commandref.html#FileLog gibt es das Attribut, der Link für ignoreRegexp (html-Anker?) zeigt zum notify.
FileLog hab ich jetzt natürlich auch nur vermutet. (evtl. passt es ja ;) )
Hallo,
ich anbei die Werte aus der Log-Datei, reduziert um doppelte Einträge.
Nur die Werte der ersten Zeile sollen nicht mehr in die Log-Datei geschrieben werden.
ROB device_info-last_time_online:
Die Datei ist sonst mit event-on-change-reading .* ausreichend klein gehalten.
2018-05-01_00:08:50 ROB device_info-last_time_online: 2018-04-30 23:59:58
2018-05-01_00:18:59 ROB 204
2018-05-01_00:33:12 ROB 400
2018-05-01_01:09:47 ROB battery-charging: false
2018-05-01_01:19:56 ROB battery-charging: true
2018-05-01_01:34:10 ROB battery-level: 92
2018-05-01_01:54:29 ROB deaktiviert. Abdeckung ist offen oder PIN-Code erforderlich
2018-05-01_02:10:44 ROB Deaktiviert. Manueller Start erforderlich
2018-05-01_02:20:55 ROB Fehler
2018-05-01_02:35:08 ROB geparkt
2018-05-01_03:11:43 ROB geparkt nach Zeitplan
2018-05-01_03:21:52 ROB lädt
2018-05-01_03:36:05 ROB lastRequestState: null sessions
2018-05-01_04:12:44 ROB lastRequestState: request_error
2018-05-01_04:22:52 ROB mähen
2018-05-01_04:36:06 ROB manuelles mähen
2018-05-01_05:13:42 ROB mower_stats-charging_cycles: 468
2018-05-01_05:23:51 ROB mower_stats-collisions: 1550
2018-05-01_05:37:05 ROB mower_stats-cutting_time: 638
2018-05-01_06:14:39 ROB mower_stats-running_time: 683
2018-05-01_06:24:48 ROB mower-error: angehoben
2018-05-01_06:38:00 ROB mower-error: eingeschlossen
2018-05-01_07:15:36 ROB mower-error: kein Fehler
2018-05-01_07:25:45 ROB mower-error: Problem Stoßsensor hinten
2018-05-01_07:38:58 ROB mower-last_error_code: angehoben
2018-05-01_07:59:26 ROB mower-last_error_code: eingeschlossen
2018-05-01_07:59:28 ROB mower-last_error_code: kein Fehler
2018-05-01_07:59:28 ROB mower-last_error_code: Problem Stoßsensor hinten
2018-05-01_07:59:33 ROB mower-override_end_time: 2018-05-01 06:29:17
2018-05-01_08:01:35 ROB mower-source_for_next_start: Mäher wurde geladen
2018-05-01_08:01:35 ROB mower-source_for_next_start: oK
2018-05-01_08:01:35 ROB mower-source_for_next_start: Wochentimer erreicht
2018-05-01_08:01:35 ROB mower-status: deaktiviert. Abdeckung ist offen oder PIN-Code erforderlich
2018-05-01_08:01:35 ROB mower-status: Deaktiviert. Manueller Start erforderlich
2018-05-01_08:01:35 ROB mower-status: Fehler
2018-05-01_08:02:03 ROB mower-status: geparkt
2018-05-01_08:02:05 ROB mower-status: geparkt nach Zeitplan
2018-05-01_08:02:05 ROB mower-status: lädt
2018-05-01_08:02:10 ROB mower-status: mähen
2018-05-01_08:02:10 ROB mower-status: manuelles mähen
2018-05-01_08:02:10 ROB mower-status: suche Ladestation
2018-05-01_08:03:11 ROB mower-timestamp_last_error_code: illegal year
2018-05-01_08:03:11 ROB mower-timestamp_next_start: illegal year
2018-05-01_08:04:12 ROB null sessions
2018-05-01_08:04:12 ROB radio-connection_status: Gerät ist in Reichweite
2018-05-01_08:04:12 ROB radio-connection_status: Gerät ist nicht in Reichweite
2018-05-01_08:05:13 ROB radio-quality: 80
2018-05-01_08:05:13 ROB radio-state: gut
2018-05-01_08:05:13 ROB radio-state: schwach
2018-05-01_08:05:13 ROB send command to gardena cloud
2018-05-01_08:05:13 ROB suche Ladestation
2018-05-01_08:05:13 ROB the command is processed
Wer kann mir mit einer Rexex behilflich sein?
Momentan habe ich nur folgendes für die Log-Datei:
defmod FileLog_ROB FileLog ./log/ROB-%Y-%m.log ROB
sowas vielleicht?
attr FileLog_ROB ignoreRegexp device_info-last_time_online:.*
Hatte das Problem auch und Antwort #4 hat geholfen.
Man muss natürlich auch was lesen.
Notify aus Eventmonitor erstellt,
Definition als ignoreRegexp übernommen
"Hilfs"-Notify gelöscht
Mit dem Attribut viel einfacher als über die Definition fürs Logfile.
Hallo,
ich bin irgendwie zu doof.
attr FileLog_ROB ignoreRegexp device_info-last_time_online:.*
funktioniert bei mir leider nicht.
Und die Lösung von rabehd verstehe ich nicht und mit Hinweis auf #4 https://fhem.de/commandref.html#ignoreRegexp (https://fhem.de/commandref.html#ignoreRegexp) bekomme ich auch nicht den Bogen zum Notify hin.
rabehd kannst Du bitte mal schreiben was für ein Notiyf aus Eventmonitor erstellt hast. Und wie Du dann die Eiträge im Log erstellst.
Danke
Hi,
https://wiki.fhem.de/wiki/Event_monitor
Zwischenfrage: Dein FHEM ist halbwegs ist aktuell?
Kann es sein, dass das regEx so aussehen muss?
ROB:device_info-last_time_online:.*
Gruß Otto
Hallo Otto,
ich mache meistens am Wochenende ein Update, dadurch ist FHEM eigentlich aktuell.
Ich habe jetzt über die Oberfläche alle Werte außer den zu ignorierenden Wert eingetragen.
ignoreRegexp funktionierte leider nicht
Und wenn ich ein Notify anlege bekomme ich als Einträge nur Hex-Werte die ich leider nicht deuten kann.
Aber vielen Dank für Eure Hilfe ist ein super Forum.
Hallo teufelchen,
sorry aber das sprengt jetzt die Vorstellungskraft :D
Du könntest uns mit einem list Deines Versuches vom FileLog auf die Sprünge helfen.
ZitatUnd wenn ich ein Notify anlege bekomme ich als Einträge nur Hex-Werte die ich leider nicht deuten kann.
Und auch mit dem Ergebnis musst Du ein praktisches Beispiel (list vom angelegten notify) liefern.
Gruß Otto
Zitatrabehd kannst Du bitte mal schreiben was für ein Notiyf aus Eventmonitor erstellt hast. Und wie Du dann die Eiträge im Log erstellst.
Ich fass in einem FileLog die Meldungen bestimmter Geräte zusammen. Es sind dabei auch Einträge aufgetaucht, die ich dort nicht haben wollte.
Mit dem Hinweis auf "ignoreRegexp" brauchte ich nur den richtigen Regex-Eintrag zu finden.
Dafür bin ich in den Eventmonitor und habe "gewartet" bis der Eintrag erschein den ich nicht im meinem Log haben will. Die Zeile habe ich markiert und ein notify "create"iert. Diese notify reagiert genau auf den Eintrag den ich im Log-File nicht haben will. Also habe ich im notify den Reges rauskopiert und als "ignoreRegexp"-Attribut im Device des FileLog eingetragen.
Gelöst.
Mit folgenden Code wird der Eintrag im Log unterbunden:
attr FileLog_ROB ignoreRegexp ROB:device_info-last_time_online:.*
@rabehd: Super Idee mit Notify. Bei mir wurden die Werte jedoch als Werte HASH(0x4787d28)
HASH(0x4927dc8)
ausgegeben die ich so nicht deuten kann. Für andere Probleme aber eine geniale Idee.
Glückwunsch!
Die Lösung stand irgendwie schon in #12 8)
Gruß Otto
Moin,
wenn ich mehrere Werte mit dem Attribut "ignoreRegexp" vom loggen ausschliessen möchte, so meine ich gelesen zu haben, das diese komma-separiert einzugeben sind.
Also: attr <device> ignoreRegexp 2047.969,651.350,327.670,2047.688,190.820
Leider funktioniert das scheinbar nur bedingt, denn wenn diese Werte auftreten, werden sie dennoch ins FileLog geschrieben. Ich habe zwar den Eindruck, das es weniger geworden ist, aber leider nicht komplett.
Ideen ?
In der Doku steht:
ZitatignoreRegexp regexp
It is hard to create a regexp which is _not_ matching something, this attribute helps in this case, as the event is ignored if matches the argument. The syntax is the same as for the original regexp.
Da steht regExp - nicht komma separiert :o
Gruß Otto
Danke, werde ich versuchen
Leider ohne Erfolg.... Werte werden immer noch ins Log geschrieben... :-[
Ohne weiter Info können wir dich zwar bedauern aber nicht mal ansatzweise helfen.
Wie sieht Dein regExp aus?
Wie sehen die Events aus die nicht geloggt werden sollen?
Gruß Otto
Ich hatte das ursprüngliche Attribut ein paar doch Zeilen vorher gepostet. ;)
Ich habe jetzt die Kommas durch Blanks ersetzt.
attr <device> ignoreRegexp 2047.969 651.350 327.670 2047.688 190.820
Aber dazu hatte ich schon gesagt das ist kein regExp. :o
Das sind einfach Werte.
http://regexp-evaluator.de/tutorial/
sowas wäre ein regExp, mit der Annahme, dass Deine Werte irgendwo in der Eventzeile auftauchen.
.*2047.969.*|.*651.350.*|.*327.670.*|.*2047.688.*|.*190.820.*
Aber um genauer zu helfen, wie schon gefragt:
ZitatWie sehen die Events aus die nicht geloggt werden sollen?
Gruß Otto
Ach so, ok. Hatte ich wohl missverstanden bzw. zu einfach gedacht mit dem regexp.
Dann werde ich, wenn ich zuhause bin, mal diesen Regexp-Evaluator testen, komme momentan nicht an meinen Server, da Stromausfall@home..... :-[
Somit kann ich das betreffende Event momentan leider nicht liefern.
Zitat von: Otto123 am 13 September 2018, 09:56:22
sowas wäre ein regExp, mit der Annahme, dass Deine Werte irgendwo in der Eventzeile auftauchen.
.*2047.969.*|.*651.350.*|.*327.670.*|.*2047.688.*|.*190.820.*
Aber um genauer zu helfen, wie schon gefragt:
Gruß Otto
Danke Otto, so funktioniert es perfekt !!