Hallo,
bisher löse ich meine Kamera über ein Shellscript auf dem Raspi aus.
Nun möchte ich das gerne direkt aus fhem erledigen.
Folgendes funktioniert:
{system("sudo raspistill -mm matrix -n -q 30 -t 500 -o /home/pi/photos/test.jpg >> $currlogfile 2>&1 &")}
Nun möchte ich aber den Dateinamen abhängig von Datum und Uhrzeit festlegen. Hier scheitere ich an der richtigen Syntax.
Folgendes geht nicht:
{system("sudo raspistill -mm matrix -n -q 30 -t 500 -o /home/pi/photos/$(date +"%Y-%m-%d_%H%M").jpg >> $currlogfile 2>&1 &")}
Es kommt folgende Meldung:
Global symbol "%m" requires explicit package name
Hat jemand einen Tipp?
Du unterbrichst deinen string bei der date-formatierung.
Ersetze an der Stelle die " durch ' (oder maskiere mit \) und es könnte/sollte klappen.
Gruß
Claudiu
Geht leider nicht.
In beiden Fällen ist die Rückmeldung im Logfile:
sh: 1: Syntax error: ")" unexpected
Du wolltest ja auch nur einen Tipp, und keine fertige Lösung :-)
Du musst bedenken du interpretierst i.M. alles zwischen " " als normalen Perl-String, das heisst auch das Perl versucht jedes $ usw. z.B. als variable usw. aufzulösen.
Das musst du entsprechend maskieren falls Perl das nicht tun soll.
z.B. ein weiterer Fehler: mach mal ein \ vor dein $(
Ok, das nächste mal frage ich gleich nach einer fertigen Lösung :))
Vielen Dank für deine Erklärung. Jetzt klappt es. Im notify musste ich dann noch die % verdoppeln, hab ich aber durch die Forumsuche gefunden.
Im notify sieht es jetzt so aus:
{system("sudo raspistill -o /home/pi/photos/\$(date +\"%%Y%%m%%d-%%H%%M%%S\").jpg >> $currlogfile 2>&1 &")}/code]
Hi heha,
ich versuche mit dem Code:
define test notify Pin16:on {system("sudo raspistill -mm matrix -n -q 30 -t 500 -o /home/pi/fotos/test.jpg")}
über einem PIR Sensor ein Foto zu Speichern.
Der PIR Sensor funktioniert und ich bekomme auch beim Auslösen per Pushbullet eine Nachricht.
In der Konsole geht dieser Code auch: raspistill -mm matrix -n -q 30 -t 500 -o /home/pi/fotos/test.jpg
Recht für fhem in dem /home/pi/fotos/ ordner zum Schreiben habe ich gesetzt.
Zusätzlich habe ich auch in der /etc/group mit root:x:0:fhem versucht fhem eventuell die fehlenden Rechte zu geben.
Leider ohne Erfolg.
Das Logfile gibt das aus:
sudo: no tty present and no askpass program specified
2015.09.03 22:17:22 3: test return value: -1