FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: sash.sc am 14 März 2020, 23:13:11

Titel: Wert von Reading in bestimmtes LogFile schreiben
Beitrag von: sash.sc am 14 März 2020, 23:13:11
Hallo zusammen.

Ich wollte gerne manuell den Wert eines Reading in ein bestimmtes LogFile schreiben.
Dachte da an ein at.

dies Definition schreibt es in das Hauptlog


{Log 3, ReadingsVal("CN.playtime","playtime_H","")}


Der Wert soll dann in ein schon vorhandenes File geschrieben werden.
Und zwar in dieses.


defmod CN.playtime_FileLog_1 FileLog ./log/CN.playtime_FileLog_1.log CN.playtime:playtime_H:.*


Bis jetzt wird es stündlich geschrieben. Ich möchte aber das entsprechende Reading aber Nacht um 23:59 Uhr 1x ins Log schreiben lassen.
Jemand eine Idee ?

Danke !

Gruß
Sascha
Titel: Antw:Wert von Reading in bestimmtes LogFile schreiben
Beitrag von: frober am 15 März 2020, 09:53:17
Als myUtils z.B.


sub debuglog($) {

  my ($myState) = @_;

        my $fileName = '/opt/fhem/log/1-Bewaesserung.log';

if(open (DATEI, ">> $fileName")) {
print (DATEI Zeitstempel().$myState."\n");
close (DATEI);
       }
      else
      {
       return "Can't open $fileName: $!";
      }
}


Zeitstempel() ist bei mir die eigene sub.

sub Zeitstempel()
{
  return strftime("%Y-%m-%d %H:%M:%S ", localtime());
}



Nachtrag: 1.Code angepasst, zuviel c&p [emoji16]
Titel: Antw:Wert von Reading in bestimmtes LogFile schreiben
Beitrag von: MadMax-FHEM am 15 März 2020, 10:01:09
Warum nicht einfach ein at um 23:59 was dann den aktuellen Wert ausliest (ReadingsVal) und einfach per 'setreading Device Readingsname aktuellerWert' setzt -> Event der dann per vorhandenem FileLog ins bestehende Log genauso geschrieben wird wie die anderen auch...

Ansonsten: diese Frage gibt es bestimmt 1000mal im Forum, vielleicht ist noch eine andere Lösung dabei...

Gruß, Joachim