Datum- und Uhrzeit-Variable beim Speichern von "system" Befehl?

Begonnen von nicor2k, 13 Januar 2016, 17:40:54

Vorheriges Thema - Nächstes Thema

nicor2k

Hallo! Ich würde beim Speichern eines Bildes gerne die aktuelle Uhrzeit und das Datum in den Dateinamen speichern - das klappt aber irgendwie nicht.

Mein Befehl:

system("fswebcam /home/pi/webcam/bild-$a, $d $b $Y $H:$M:$S.jpg")



Ich habe die Platzhalter von hier übernommen: http://fhem.de/commandref_DE.html#FB_CALLLIST

Zitat
%a - Der abgekürzte Wochentagname
%b - Der abgekürzte Monatsname
%S - Die Sekunden als Dezimalzahl
%M - Die Minuten als Dezimalzahl
%H - Die Stunden als Dezimalzahl
%d - Der Tag im Monat als Dezimalzahl
%m - Der Monat als Dezimalzahl
%Y - Das Jahr als Dezimalzahl (4-stellig).

Es gibt hierfür noch weitere Platzhalter. Weitere Informationen dazu findet man in der Manpage von strftime() oder der Dokumentation des entsprechenden Perl Interpreters.

Standardwert ist "%a, %d %b %Y %H:%M:%S" (entspricht "So, 07 Jun 2015 12:50:09")


Ich hatte es zuerst mit % Werten versucht, und die Variablen dann mit $ probiert, klappt aber auch nicht :(
Hat jemand eine Idee?



Ich habe gerade im Log nachgesehen, kann mit der Fehlermeldung aber nichts anfangen...

Zitat
Global symbol "$Y" requires explicit package name at (eval 13503) line 3.
Global symbol "$H" requires explicit package name at (eval 13503) line 3.
Global symbol "$M" requires explicit package name at (eval 13503) line 3.
...

nicor2k

Ok, ich habe es jetzt etwas anders gemacht, aber vielleicht hilft es jemandem. Dazu muss man allerdings PHP lauffähig haben, das geht aber mit nur einer Zeile zu installieren.

Statt:

system("fswebcam /home/pi/webcam/bild-$a, $d $b $Y $H:$M:$S.jpg")

rufe ich jetzt diesen Code auf:

system("php /var/www/bild.php")



Die PHP Datei hat bisher nur den folgenden Code: Zur Datumsberechnung und zum Erstellen des Bildes (Achtung: Dafür muss der Apache User auf die Kamera zugreifen dürfen, sonst klappt's nicht!)

<?php
$name = 'bild-'.date("d.m.Y-H:i:s").'.jpg';
echo exec('fswebcam -r 640x360 /var/www/bilder/'.$name);
?>


rudolfkoenig

Die Beschreibung bei FB_CALLIST ist fuer ein FHEM-Perl-Ausdruck irrelevant. Relevant ist die Dokumentation in http://fhem.de/commandref.html#perl , und da steht:
Zitat
To make date and time handling easier, the variables $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst are available in the perl oneliners (see also perldoc -f localtime). Exceptions: $month is in the range of 1 to 12, and $year is corrected by 1900 (as I would expect). Additionally the variable $hms contains the time in the HH:MM:SS format.


nicor2k

Hallo Rudolf,

das geht natürlich noch leichter, danke Dir! :)