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
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]
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