Gelöst:Raspi-Kamera direkt antriggern, Dateiname

Begonnen von heha, 01 September 2015, 13:19:48

Vorheriges Thema - Nächstes Thema

heha

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?

rapster

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

heha

Geht leider nicht.
In beiden Fällen ist die Rückmeldung im Logfile:

sh: 1: Syntax error: ")" unexpected

rapster

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 $(

heha

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]

lullebammel

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



Ohne Tweak kein Sieg!
Raspberry Pi Model B, COC, HM-CFGLAN Adapter, Intertechno IT-1500,ITR-3500 , Home Easy HE808S, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-LC-BI1-FM, HM-PB-2-WM552, HM-LC-Sw2-FM, HM-LC-Sw1-FM, DS18B20