FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Mundus am 21 Juli 2019, 22:00:26

Titel: Frage zum RegEx im FileLog
Beitrag von: Mundus am 21 Juli 2019, 22:00:26
Hi,

ich habe das FileLog Internals:
   CFGFN     
   DEF        ./log/ThermHum_MQTT2-%Y.log ThermHum_MQTT2:battery|ThermHum_MQTT2:humidity|ThermHum_MQTT2:temperature|ThermHum_MQTT2:temperature:.*
   FD         65
   FUUID      5d2909dd-f33f-23be-0803-2238f9da56e0fa01
   NAME       FileLog_ThermHum_MQTT2
   NOTIFYDEV  ThermHum_MQTT2
   NR         4695
   NTFY_ORDER 50-FileLog_MQTT2_shellyht_58FAEC
   REGEXP     ThermHum_MQTT2:battery|ThermHum_MQTT2:humidity|ThermHum_MQTT2:temperature|ThermHum_MQTT2:temperature:.*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/ThermHum_MQTT2-2019.log
   logfile    ./log/ThermHum_MQTT2-%Y.log
   READINGS:
     2019-07-21 15:55:45   linesInTheFile  253
Attributes:
   logtype    text
   room       MQTT

erstellt.
Wie ihr sehen könnt, habe ich die Temperaturabfrage doppelt eingefügt. Leider löst ThermHum_MQTT2:temperature nie aus, das RegEx ThermHum_MQTT2:temperature:.* schon. Leider verstehe ich das nicht und würde gerne wissen, warum das so ist.

Die RegEx mit humidity und battery lösen aus und füllen artig das Log.

Die Log-Einträge sehen z.B. so aus:
2019-07-21_09:43:36 ThermHum_MQTT2 temperature: 23.25
2019-07-21_09:43:36 ThermHum_MQTT2 humidity: 83.0
2019-07-21_09:48:57 ThermHum_MQTT2 humidity: 76.5
2019-07-21_10:41:12 ThermHum_MQTT2 temperature: 23.00
2019-07-21_10:41:12 ThermHum_MQTT2 humidity: 71.5
2019-07-21_12:31:53 ThermHum_MQTT2 humidity: 66.5
2019-07-21_15:55:45 ThermHum_MQTT2 temperature: 23.12
2019-07-21_15:55:45 ThermHum_MQTT2 humidity: 61.5


Vielleicht könnt ihr mir helfen und erklären, warum ThermHum_MQTT2:temperature nicht auslöst.

Gruß

Mundus
Titel: Antw:Frage zum RegEx im FileLog
Beitrag von: amenomade am 21 Juli 2019, 22:58:38
Eigentlich bin ich überrascht, dass humidity und battery auslösen...
Zitat von: CommandRefDer regexp muss mit dem kompletten String übereinstimmen und nicht nur teilweise

Nur mit .* ist es der Fall.

Ich würde es so schreiben:
ThermHum_MQTT2:(battery|humidity|temperature).*
Titel: Antw:Frage zum RegEx im FileLog
Beitrag von: Mundus am 21 Juli 2019, 23:11:29
Das LogFile wurde automatisch bei der Anlage des MQTT2 Device erstellt und ohne die Syntax-Zusätze .*

Genau wie du schreibst, verstehe ich nicht, wieso humidity bzw. battery auslöst und temperature nicht. Einen Schreibfehler (-außer natürlich dem fehlenden .*- ;)) habe ich bislang auch nicht ausgemacht...
Titel: Antw:Frage zum RegEx im FileLog
Beitrag von: amenomade am 21 Juli 2019, 23:22:14
Dann war bestimmt die automatisch angelegte Log nur mit Devicename definiert. So geht es auch.

Wenn Du aber mit Events arbeiten möchtest, ist der Zustatz notwendig.
Titel: Antw:Frage zum RegEx im FileLog
Beitrag von: Mundus am 21 Juli 2019, 23:25:06
Zitat von: amenomade am 21 Juli 2019, 23:22:14
Dann war bestimmt die automatisch angelegte Log nur mit Devicename definiert. So geht es auch.
Ja, jetzt wo du es schreibst, dämmert es bei mir ::) Die Anpassungen habe ich manuell hinzugefügt. Leider fehlt mir noch das Verständnis, warum battery und humidity auslösen, die der Temperatur aber nicht.

Die Schreibweise von dir habe ich aber zwischenzeitlich schon übernommen.