Event NICHT abonnieren ...

Begonnen von PeMue, 17 April 2014, 19:05:03

Vorheriges Thema - Nächstes Thema

PeMue

Hallo zusammen,

habe jetzt schon eine Weile rumgesucht, bin aber nicht fündig geworden.
Ich habe ein 1-wire A/D-Wandler im Einsatz und bekomme auch regelmäßig Events:
2014-04-17_18:43:26 AZ_AD1 A: 1.743359375
2014-04-17_18:43:26 AZ_AD1 A: 1.743 V B: 3.804 V C: 3.691 V D: 0.076 V

Wenn ich mit
define AZ_AD1A_log FileLog ./log/az_hum1-%Y-%m.log AZ_AD1.A:.*
diese Events abboniere und in eine Datei schreibe, dann bekomme ich beide.
Wie man mehrere Events in eine Datei bekommt mit (variable1|variable2).* ist mir auch klar.
Gibt es aber auch die Möglichkeit, das erste Event nicht zu abbonieren/auszuschließen?
Irgendwie stehe ich gerade auf dem Schlauch.

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

ZitatGibt es aber auch die Möglichkeit, das erste Event nicht zu abbonieren/auszuschließen?

na klar...

define AZ_AD1A_log FileLog ./log/az_hum1-%Y-%m.log AZ_AD1.A:.*B:.*
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Vielen Dank, hätte ich auch selber drauf kommen können  :-[
Die Syntax liest sich dann so:
AZ_AD1.A:.*B:.*
Nimm Alles was AD_AD1 enthält und danach A: und danach alles bis B: und danach wieder alles. Korrekt soweit?
Wenn ich jetzt aber nur diesen Event will:
2014-04-17_18:43:26 AZ_AD1 A: 1.743359375
sprich ich möchte alle Events mit A:, aber eben nur die, die nur ein A: haben und kein B:, wie wäre da die Syntax?
Eilt nicht, die obige Lösung funktioniert, da könnte ich sogar meine Logfiles kleiner halten und alles aus einer Datei plotten. Aber trotzdem wäre es interessant für mich.

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

Zitat von: PeMue am 17 April 2014, 19:33:35
Die Syntax liest sich dann so:
AZ_AD1.A:.*B:.*
Nimm Alles was AD_AD1 enthält und danach A: und danach alles bis B: und danach wieder alles. Korrekt soweit?

Nein, nicht korrekt.

Es bedeutet: Logge die gesamte Zeile (es werden immer ganze Zeilen geloggt) nur dann, wenn sie mit "AZ_AD1.A:" beginnt und danach noch irgendwo ein "B:" enthält.

Das Ganze nennt sich regexp und dafür gibt es 728 Millionen Beschreibungen im Internet.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Ok, danke. Ich wußte, das dies reguläre Ausdrücke sind, werde aber nicht so wirklich damit warm. Aber gut, hier habe ich etwas gefunden und da gibt es auch was zum Testen.
Was ich nicht ganz verstehe ist, warum das
define AZ_AD1A_log FileLog ./log/az_hum1-%Y-%m.log AZ_AD1.A:.*[^BCD].*
nicht funktioniert. Eine mögliche Lösung wäre aber diese (zumindest sagt das der obige Tester):
define AZ_AD1A_log FileLog ./log/az_hum1-%Y-%m.log AZ_AD1.A:.*^B.*
Allerdings abonniere ich bei fhem dann gar nichts mehr  >:(

ZitatDas Ganze nennt sich regexp und dafür gibt es 728 Millionen Beschreibungen im Internet.
Vielleicht gerade deswegen  ;)

Gruß PeMue



RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

weil das ".*[^BCD]" eine falsche regexp ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Zitat von: betateilchen am 17 April 2014, 20:43:05
weil das ".*[^BCD]" eine falsche regexp ist.
Ja, das habe ich auch gemerkt  ::)
Aber bei Google Nr. 5 bis 22 bin ich bei ein paar online Tutorials (mit Aufgaben) fündig geworden. Ich gehe mal jetzt mit
define AZ_AD1A_log FileLog ./log/az_hum1-%Y-%m.log AZ_AD1.A:.{9}[^B].*
ins Rennen, was scheinbar auch funktioniert.
Ich würde obiges regex wie folgt interpretieren:
- Nimm alles, was mit AZ_AD1(ein beliebiges Zeichen)A: beginnt
- danach eins bis neun beliebige Zeichen hat
- danach kein B hat und
- danach wieder viele beliebige Zeichen hat.
Jetzt korrekt?
Wenn aber jetzt jemand meint, das Event mit Leerzeichen zu verlängern, gehe ich wieder ins Leere.
Sprich: ich habe noch nicht gefunden, wie man folgendes ausdrückt:
- nimm alle Events mit AZ_AD1(ein beliebiges Zeichen)A:
- dahinter dürfen beliebig viele andere Zeichen sein
- aber es darf kein B (oder alternativ B:) sein.

Hier gibt es übrigens ein online Test-Tool.
Ob das Thema mittlerweile noch für die Angängerfragen geeignet ist möge bitte Puschel bewerten ;)

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Puschel74

Hallo,

ZitatOb das Thema mittlerweile noch für die Angängerfragen geeignet ist möge bitte Puschel bewerten ;)

Klar ist das Anfängertauglich.
regexp sollte jeder kennen der sich mit FHEM beschäftigt.

Leider werden von einigen anscheinend nur ihre eigenen Beiträge gelesen aber blos nicht mal quer lesen und schauen was in anderen Beiträgen steht  8)
Siehe die ganzen Fragen die sich im Anfängerbereich wieder tummeln.
Aber BTT

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.