FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: heha am 01 September 2015, 13:19:48

Titel: Gelöst:Raspi-Kamera direkt antriggern, Dateiname
Beitrag von: heha am 01 September 2015, 13:19:48
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?
Titel: Antw:Raspi-Kamera direkt antriggern, Dateiname
Beitrag von: rapster am 01 September 2015, 14:55:55
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
Titel: Antw:Raspi-Kamera direkt antriggern, Dateiname
Beitrag von: heha am 01 September 2015, 16:27:35
Geht leider nicht.
In beiden Fällen ist die Rückmeldung im Logfile:

sh: 1: Syntax error: ")" unexpected
Titel: Antw:Raspi-Kamera direkt antriggern, Dateiname
Beitrag von: rapster am 01 September 2015, 17:46:46
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 $(
Titel: Gelöst:Antw:Raspi-Kamera direkt antriggern, Dateiname
Beitrag von: heha am 01 September 2015, 19:09:17
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]
Titel: Antw:Gelöst:Raspi-Kamera direkt antriggern, Dateiname
Beitrag von: lullebammel am 03 September 2015, 22:25:29
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