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.
...
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);
?>
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.
Hallo Rudolf,
das geht natürlich noch leichter, danke Dir! :)