FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: FHEm2005 am 24 Februar 2014, 12:08:21

Titel: Commandref FileLog; Dedeutung der Wildcard .* in einem speziellen Fall
Beitrag von: FHEm2005 am 24 Februar 2014, 12:08:21
Ich versuche gerade eine Zeile aus der Commandref und dort im Begriff FileLog zu verstehen und komme nicht weiter:

unter define steht  folgende Zeile:

define wzlog FileLog ./log/wz-%Y-%U.log wz:(measured-temp|actuator).*

Deren Sinn ist mir fast gänzlich klar: Eine Filelog mit Namen wzlog wird definiert, welches für jede Woche eine neue Datei anlegt. Die zu loggenden Daten werden von dem Gerät wz geliefert und dort sollen von den readings ausschließlich die Werte  measured-temp und actuator gespeichert werden.

... und wozu ist die Wildcard .* in diesem Falle da?

Angenommen, ich hätte nur diese beiden Werte im readings, wozu dann noch Wildcards? Wenn ich in den readings actuator1-4 hätte, wäre das für mich verständlich, aber so??  Wenn ich die Wildcard weglassen, wird nichts gespeichert.

Viele Grüße
Eberhard

(Ich wünschte ich wäre ein Perl-Experte....)
Titel: Antw:Commandref FileLog; Dedeutung der Wildcard .* in einem speziellen Fall
Beitrag von: betateilchen am 24 Februar 2014, 12:30:29
Fast alles richtig interpretiert.

wz:(measured-temp|actuator).*

Der "wildcard" ist allerdings kein wildcard (also in dem Sinne, wie Du es vielleicht beim Auflisten von Dateinamen kennst und verwendest), sondern eine regexp die besagt, "egal, was im Event noch nach dem measured-temp ODER dem actuator noch an Text folgt, logge den Event"

Ein zu loggender Event hört nämlich nicht nach measured-temp oder actuator auf, sondern nach den Suchbegriffen kommt immer noch der Messwert. Also zum Beispiel


wz:measured-temp 17.0
wz:actuator 33%


Die gesamte regexp fängt übrigens bei "wz" an und endet beim "*" - das ist ein kompletter Begriff: wz:(measured-temp|actuator).*

Für Details zu regexp kannst Du google oder wikipedia befragen, da gibt es jede Menge Erklärungen. Das Verständnis von regexp ist eine wichtige Voraussetzung, um sich das Leben mit/in fhem nicht unnötig schwer zu machen.

Titel: Antw:Commandref FileLog; Dedeutung der Wildcard .* in einem speziellen Fall
Beitrag von: FHEm2005 am 24 Februar 2014, 12:34:14
Hallo Betateilchen,

Du hast meinen heutigen Tag gerettet!

ZitatDas Verständnis von regexp ist eine wichtige Voraussetzung, um sich das Leben mit/in fhem nicht unnötig schwer zu machen.
DAS habe ich leider bereits schon erfahren müssen.

Vielen Dank.

Gruß
Eberhard