FHEM Forum

FHEM => Automatisierung => Thema gestartet von: mi.ke am 07 Mai 2023, 16:28:57

Titel: FileLog - attr outputFormat <perlCode>
Beitrag von: mi.ke am 07 Mai 2023, 16:28:57
Zitat von: rudolfkoenig am 01 November 2019, 15:23:04outputFormat <perlCode>
      Falls gesetzt, ist die Ausgabezeile das Ergebnis der Auswertung.
      Voreinstellung ist "$TIMESTAMP $NAME $EVENT\n".
      Achtung: nur dieses Format ist kompatibel mit dem SVG-Editor.

Hi zusammen,
ich würde gerne folgendes machen, um die Datei später automatisch in Excel weiter verarbeiten zu können.
attr FileLog outputFormat "$TIMESTAMP $EVTPART1 \n"oder am liebsten
attr FileLog outputFormat "$mday.$month.$year $EVTPART1 \n"
Dabei gibt es aber Fehlermeldungen

Global symbol "$EVTPART1" requires explicit package name (did you forget to declare "my $EVTPART1"?) at (eval 55770) line 1.
auch Perlvariablen können nicht verwendet werden, wie "$year" oder "$month".

POSIX strftime z.B "%d.%m.%Y" werde bei der Eingabe aktzeptiert, aber im Log steht dann nur %d.%m.%Y und nicht 07.05.2023

Wie müsste ich den Perlcode eingeben um zum Erfolg zu kommen?

LG mi.ke









Titel: Aw: FileLog - attr outputFormat <perlCode>
Beitrag von: betateilchen am 10 Mai 2023, 12:03:41
Zitat von: mi.ke am 07 Mai 2023, 16:28:57Wie müsste ich den Perlcode eingeben um zum Erfolg zu kommen?

Vermutlich wie an allen ca. 728 Stellen in FHEM auch, an denen man perl Code eingeben kann: in geschweiften Klammern.

(ungetestet)
Titel: Aw: FileLog - attr outputFormat <perlCode>
Beitrag von: betateilchen am 10 Mai 2023, 12:09:58
Ich glaube übrigens nicht, dass es an dieser Stelle ein $EVTPART1 oder andere von FHEM bereitgestellte oneliner-Variablen überhaupt gibt. Da wird lediglich ein einfaches eval ausgeführt. Du müsstest also das Splitten und das Erzeugen der timestamp-Variablen schon selbst in den perl Code mit aufnehmen.
Titel: Aw: FileLog - attr outputFormat <perlCode>
Beitrag von: mi.ke am 10 Mai 2023, 12:32:28
Hatte mir so geholfen, dass ich den gewünschten String in userReadings erzeuge und formatieren und dann ins Log übergebe. Geht auch.
Titel: Aw: FileLog - attr outputFormat <perlCode>
Beitrag von: sn0000py am 13 September 2023, 07:17:17
Ich hänge mich hier mal ran, gibt es noch andere Variablen ausser diese 3 genannten?
Ich möchte gerne auch das Datum lesbar formatieren - aber wichtiger nur den Wert ohne dem Reading speichern.