• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs Mai 2025.
    Thema: "Grün"

    Nur noch bis zum 31.05.2025 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
  • Unlauterer Verkäufer wieder unterwegs!

    Liebe Mitglieder,
    Florian Franzek, der seit Jahren mit verschiedensten Usernamen in allen möglichen Foren und auf etlichen Verkaufsplattformen auftritt,
    ist wieder hier im Forum und versucht, ehrliche Käufer zu betrügen.
    Wir können wenig tun, außer bei Bekanntwerden einer weiteren Registrierung eines Accounts für seine Machenschaften, diese umgehend zu sperren.
    Ich empfehle, bei Kontakt umgehend die Polizei einzuschalten.

WERBUNG

DIY: Wireless-Funk-Transmitter mit dem Raspberry PI

Hallo,

ich habe WFT 0.2 bei mir auch mal ausprobiert, allerdings erstmal nur über LAN.

Was mir aufgefallen ist: das ganze funktioniert nicht, wenn zusätzlich zur Kamera ein USB-Stick mit DCIM-Ordner angeschlossen ist. Dann mountet gphotofs automatisch immer den.

mit gphoto2 kann mit mit der --camera="Canon EOS 5D (...)"-Angabe auf die richtigen Fotos zugreifen (auch wenn in manual steht, dass zusätzlich der port angegeben werden muss). Bei gphotofs wird der port hingegen tatsächlich benögtigt. Der port ändert sich leider mit jedem mal kabel-stecken.

Ich werde für meine Zwecke (nur dir JPG-Dateien auf den Stick kopieren) also die gphoto2 --auto-detect Ausgaben analysieren müssen und dann die Parameter für gphotofs setzen.

Ich wollte das nur mal schreiben, falls jemand ähnlich Probleme hat, wenn ein USB-Stick (oder zwei Kameras) angeschlossen sind.

Gruß,
fantav2
 
Klar, dass er den USB-Stick auch erkennt und damit arbeiten möchte.
Die Frage ist aber, warum soll dieser stecken? :confused:

Das Projekt basiert auf der Idee, einen WFT für die Arbeit im Fotostudio zu haben. Da brauch ich beim besten Willen keinen USB Stick an der Kamera bzw dem PI ;)

Wie ist das bei Dir, wenn Du mittels gphoto2 bereits auf den Kameraspeicher zugreifst und danach ein Foto machst?

Wird das dann mit angezeigt?
Das ist nämlich eines der Probleme bei gphotofs. Das liest beim mount immer den Speicherinhalt der Karte ein und wird zur laufzeit nicht aktualisiert. Aus dem Grunde habe ich eben den zyklischen umount/usbreset mit eingebaut.

Habe ich es aber richtig verstanden, dass WFT v0.2 bei Dir funktioniert wenn Du es so betriebst wie angedacht?
 
Hallo,

ja es funktioniert zumindest im modus smb wie angedacht. Auch als autoboot (init.d) und auch recht robust. (Noch nicht länger mit gearbeitet.)

Meine Idee war, dass ich (nur) die JPGs zusätzlich auf einen USB-Stick schreibe, der mit dem DCIM-Order auf jedem Fernseher etc. angezeigt werden kann.

Sobald ich aber meinrn WLAN-Dtick habe und erfahrungen unterwegs gemacht habe verzichte ich vielleicht darauf.

Was ich zusätzlich plane ist eine geotaggong funktion. Ein vorhandener miniHomer (es geht auch mit billigeren Geräten) funktioniert mit gpsd bereits grundsätzlich.

Ich möchte nun während des syncs eingreifen und die Koordinsten in fie Exifs schreiben. Mal gucken, wie schnell das geht.

Ich benötige den WFT nämlich nicht für Studioarbeit, sondern will ihn eher so einsetzen, dass meine Feature-Gier, die seit der 6D lodert, gestillt wird ;)

Also sync auf das iPad, geotagging und ggf weiterer Spielkram. (Fernauslöser bringt bei der 5D mangels Fokussiermöglichkeit leider nichts).

Dein Script gefällt mir übrigens gut!

Gruß
FantaV2
 
Hallo noch einmal,

den letzten Eintrag habe ich von unterwegs geschrieben, aber jetzt kann ich noch auf deine Fragen eingehen.

pi@raspberrypi ~ $ gphoto2 -L
Detected a 'Canon:EOS 5D (normal mode)'.
Es gibt keine Datei im Verzeichnis »/«.
Es gibt keine Datei im Verzeichnis »/DCIM«.
Es gibt 66 Dateien im Verzeichnis »/DCIM/100EOS5D«.
#1 IMG_9633.CR2 rd 10490 KB image/x-canon-raw
#2 IMG_9633.JPG rd 1013 KB image/jpeg
#3 IMG_9634.CR2 rd 10840 KB image/x-canon-raw
#4 IMG_9634.JPG rd 1431 KB image/jpeg

#65 IMG_9665.CR2 rd 12738 KB image/x-canon-raw
#66 IMG_9665.JPG rd 2028 KB image/jpeg


pi@raspberrypi ~ $ gphoto2 -p 2
Detected a 'Canon:EOS 5D (normal mode)'.
Downloading 'IMG_9633.JPG' from folder '/DCIM/100EOS5D'...

*** Fehler ***
canon_usb_set_file_attributes: canon_usb_dialogue failed
Speichere Datei als IMG_9633.JPG
pi@raspberrypi ~ $ ls *.JPG
IMG_9633.JPG



Mache Foto mit der 5D



pi@raspberrypi ~ $ gphoto2 -L
Detected a 'Canon:EOS 5D (normal mode)'.
Es gibt keine Datei im Verzeichnis »/«.
Es gibt keine Datei im Verzeichnis »/DCIM«.
Es gibt 68 Dateien im Verzeichnis »/DCIM/100EOS5D«.
#1 IMG_9633.CR2 rd 10490 KB image/x-canon-raw
#2 IMG_9633.JPG rd 1013 KB image/jpeg

#66 IMG_9665.JPG rd 2028 KB image/jpeg
#67 IMG_9666.CR2 rd 11195 KB image/x-canon-raw
#68 IMG_9666.JPG rd 1587 KB image/jpeg



pi@raspberrypi ~ $ gphoto2 -p 68
Detected a 'Canon:EOS 5D (normal mode)'.
Downloading 'IMG_9666.JPG' from folder '/DCIM/100EOS5D'...

*** Fehler ***
canon_usb_set_file_attributes: canon_usb_dialogue failed
Speichere Datei als IMG_9666.JPG

pi@raspberrypi ~ $ ls *.JPG
IMG_9633.JPG IMG_9666.JPG

sind die Ausgaben der 40D für dich auch interessant?

Wenn ich mit der --shell auf die Kamera gehe aktualisiert sich die Liste auch nicht, falls du das meintest.

Ich experimentiere gerade mit gphoto2 direkt, ob sich da was mit dem --wait-event machen lässt. Die Bilder sollen bei mir auf der CF-Karte bleiben, sonst ginge --wait-event-and-download vermutlich relativ simpel.

Schönen Rest-Sonntag,

Fantav2
 
Zuletzt bearbeitet:
Hi Fantav2,

danke für den Output.
Was mir spontan ins Auge sticht ist natürlich der unschöne USB-Fehler, obwohl es trotzdem zu gehen scheint. Bei meiner 50D war das leider nicht der Fall, weswegen ich auf den USB-Reset gestossen bin.

Allerdings hatte mit dann aber auch das generelle Handling von gphoto2 missfallen, daher bin ich wieder zurück zu gphotofs. Ich wollte auf keinen Fall die Daten immer erst lokal auf dem PI speichern, habe aber auch keinen Weg gesehen das bei gphoto2 zu umgehen (Focus lag/liegt auf Transfer via rsync/ssh).

Die Ausgabe von der 40D brauche ich nicht, aber danke für das Angebot.


Schön zu wissen dass mein script bei Dir gut läuft, danke fürs Feedback. :top:
 
Hallo,

ich habe mich heute mit der GPS-Integration befasst.

Bei meiner (nicht sonderlich robusten) Lösung mit gphoto2 direkt (ohne gphotofs) funktioniert das mit einem hook-Skript jetzt schon relativ gut.

allerdings gefällt mir dein Skript mit rsync mittlerweile immer besser. Ich hatte die Hoffnung, dass ich irgendwie auf --wait-event reagieren kann, aber das bekomme ich leider nicht hin. So muss ich auch pollen und damit ist der Witz an der Lösung dahin. Außerdem habe ich den Eindruck, dass --wait-event bei Kameras, die das nicht anders unterstützen, auch pollt.

Siehst du bei deinem Skript an irgend einer Stelle die Möglichkeit, jede (jpg-)Datei vor dem synchronisieren noch einmal zu bearbeiten? (mit gpsbabel die gps-koordinaten setzen)

Ich befürchte, dass das gar nicht einfach funktionieren kann, da du die Daten gar nicht lokal zwischen speicherst und dabei eine Eingriffsmöglichkeit hast, oder?

Wenn ich eine Möglichkeit finde, die GPS-Sache sauber in dein Script einzubauen stelle ich den Code natürlich auch gerne zur Verfügung. Nachteil an GPS ist, dass man 3 USB-Ports (Kamera, WLAN, GPS) braucht und somit einen (vermutlich aktiven) Hub.

Viele Grüße,
fantav2
 
fantav2 schrieb:
...Siehst du bei deinem Skript an irgend einer Stelle die Möglichkeit, jede (jpg-)Datei vor dem synchronisieren noch einmal zu bearbeiten? (mit gpsbabel die gps-koordinaten setzen)...

Ja, ich sehe da gleich drei Möglichkeiten.

Zunächst wäre die Variante es direkt an der Quelle zu machen, und zwar zwischen Zeile 290-291.
Dort könntest via "<DEIN_CMD> <OPTIONEN> $infile" das Bild noch vor dem Transfer manipulieren.
Code:
290        # datei kopieren
             <DEIN_CMD> <OPTIONEN> $infile
291        if [ $DEBUG -eq 1  ]; then printf "DBG:   ... Aktion: rsync -$OPT1 $infile $WORK_DIR_OUT \n">>$OUT; fi
292        rsync -$OPT1 $infile $WORK_DIR_OUT

Variante 2 wäre es statt in der Quelle, auf dem Ziel zu machen. Würde zumindest bei der Benutzung von smb oder ftp einfach zu machen sein.
Das könntest dann in Zeile 311-312 einfügen, dann allerdings in der Form "<DEIN_CMD> <OPTIONEN> $WORK_DIR_OUT/$actfile"

Variante 3 würde tatsächlich erstmal eine lokale Kopie auf dem PI erzeugen und diese dann manipulieren bevor der rsync zuschlägt.
Das wären ein paar mehr Änderungen (auch wieder Z290-Z291):
Code:
290        # datei kopieren
291        if [ $DEBUG -eq 1  ]; then printf "DBG:   ... Aktion: rsync -$OPT1 $infile $WORK_DIR_OUT \n">>$OUT; fi
             cp $infile /tmp/$actfile
             <DEIN_CMD> <OPTIONEN> /tmp/$actfile
292        rsync -$OPT1 /tmp/$actfile $WORK_DIR_OUT
             rm /tmp/$actfile

Klar soweit? :D


BTW: Poste doch mal Dein Script, Dein Ansatz würde mich auch interessieren.
 
Zuletzt bearbeitet:
So, mein Script.

was mir nicht gefällt ist die USB-Fehlermeldung. Außerdem lädt er manchmal die RAW-Datei mit runter, wenn ich während die Schleife läuft und er nichts macht ein Foto in RAW+JPG macht.

Scheinbar speichert er zuerst die JPG-Datei (ist ja auch kleiner) und dann die RAW-Datei. Wenn zwischendurch die Dateiliste abgefragt wird, ist die JPG z.B. an Position 7 ... Sobald die RAW-Datei jedoch geschrieben ist sortiert die Cam um und die JPG steht an Position 8. Hole ich nun die Datei 7 ist es plötzlich die RAW. Da würde das Verhalten von gphotofs, das während des Zugriffs nicht aktualisiert, helfen ;)

Ich bin insg. noch recht unglücklich. Ich glaube ich teste doch mal die einfachste aller Varianten: gphoto2 in der Version 2.5 auf den raspberry bringen und dann alles ohne loop mit gphoto2 --capture-tethered --keep (Dateien sollen bei mir auf der Kamera bleiben) ... und einem Hook-Skript, das gps und copy auf das zielmedium übernimmt. Wäre in ein Paar zeilen erledigt und hat nur den Nachteil, dass überflüssigerweise die RAW-datei auf den raspberry kopiert wird.

ich verwende übrigens zum kopieren aufs ipad (shuttersnitch) mittlerweile als filesystem davfs2, also webdav. bei ftp hatte ich gelegentlich abstürze, scheinbar versteht sich shuttersnitch mit passive ftp nicht sonderlich gut, aber curlftpfs kann wohl nur passiv.


jetzt aber mein skript, ist vielleicht bezüglich der gps-zeile interessant:


Code:
#!/bin/bash
# run.sh

polling_interval=2
actual_folder=$(pwd)

while true;
 do

cd $actual_folder

./myscript.sh

echo "Ende des Durchlaufs!"

sleep $polling_interval

done


#!/bin/bash
#myscript.sh

type="image/jpeg"

function parseFileNumbers() {
while read line
do
	echo ${line:1} | awk '{printf "%s %s\n",$2,$1}'
done 
}

temp_folder=/home/pi/tmpfiles
local_folder=/home/pi/Pictures

#Temp aufräumen!
rm $temp_folder/* 

#Datei-Liste von der Kamera holen und ggf. filtern
gphoto2 -L | grep "#" | grep $type | parseFileNumbers > $temp_folder/files_cam.list

#Datei-Liste aus dem lokalen Verzeichnis holen
cd $local_folder
ls -1 *.JPG > $temp_folder/files_local.list 

#Neue Dateien ermitteln
cat $temp_folder/files_cam.list | egrep -v -f $temp_folder/files_local.list > $temp_folder/files_added.list

echo neue dateien
cat $temp_folder/files_added.list

#neue Dateien holen!
file_numbers=$(cat $temp_folder/files_added.list | while read line; do echo $line | awk '{printf "%s", $2}';echo -n ",";done)

cd $local_folder
gphoto2 -p=$file_numbers --hook-script=/home/pi/myscript/hook.sh



#!/bin/bash
#hook.shls

self=`basename $0`

case "$ACTION" in
    download)
        echo "$self: DOWNLOAD to $ARGUMENT"
        if [[ $ARGUMENT == *.JPG ]]
        then
   	  cd /home/pi/Pictures
          gpspipe -r | dd count=20 |  gpsbabel -i nmea -f - -o exif,frame=300,overwrite -F $ARGUMENT
          cp $ARGUMENT /media/shuttersnitch
        else
          echo "Die Datei $ARGUMENT wird geloescht, sie wurde versehentlich herunter geladen."
          rm $ARGUMENT 
        fi
        ;;
esac

exit 0
 
... und einem Hook-Skript, das gps und copy auf das zielmedium übernimmt. Wäre in ein Paar zeilen erledigt und hat nur den Nachteil, dass überflüssigerweise die RAW-datei auf den raspberry kopiert wird.
Naja aber das kostet ja nicht so viel zeit.... ausserdem könntest du ja die datei dann auf dem raspberry wieder entfernen? klar ist es nicht ganz so hübsch, aber irgendwie find ich auch die rsync lösung hübscher, deshalb hab ich mein script auch aufgegeben...

ich verwende übrigens zum kopieren aufs ipad (shuttersnitch) mittlerweile als filesystem davfs2, also webdav. bei ftp hatte ich gelegentlich abstürze, scheinbar versteht sich shuttersnitch mit passive ftp nicht sonderlich gut, aber curlftpfs kann wohl nur passiv.
kannst du das filesystem direkt in shuttersnitch auswählen? hab mich damit noch nicht so direkt beschäftigt, aber wäre ja ne interessante lösung wenn es damit stabiler läuft... leider hab ich gerade nicht so viel zeit mich um meinen raspberry als wft zu kümmern.. :(
 
bei shuttersnitch wird an der stelle, wo die ftp-daten mit port 260000 stehen auch webdav mit 8080 aufgelistet. auf älteren screenshots hatte ich das nicht gefunden, vielleicht ist das feature neu.

allerdings habe ich das gefühl, dass der bei webdav seltener nachguckt, ob was neues da ist. gefühlt dauert es ca 5sek länger, bis ein neues foto angezeigt wird. für mich aber nicht schlimm.
 
Ich habe ein Problem, wenn ich die Kamera verbinde wird sie im grafischen modus angezeigt und ich kann auf sie zugreifen, aber ich kann irgendwie nicht auf die kamera per Konsole/SSH zugreifen.
 
Was für eine Cam ist es denn?

Wie meinst per ssh/console zugreifen?
Hast du die schritte wie in meiner README befolgt bzw. gab es da irgendwo Probleme?

Beschreibe mal was bzw. wie genau du es probierst und welche Fehlermeldungen du erhälst.
 
Ich probiere zurzeit das erstmal die kamera mit usb zu verbinden und dann mit konsole oder ssh die dateien auszulesen, weil es probleme gibt jenachdem welche Kamera angeschlossen wurde Canon 1000D klappt aber 650D nicht, da die Kameras nicht komplett funktionieren hab ich das WTF Programm noch nicht instaliert, denn man kann ja nicht auf beide Kameras zugreifen.
 
Hmm, verstehe immernoch nicht was du Da machst.
Versuch mal bitte konkret die folgenden Fragen zu beantworten, das würde mir helfen zu verstehen wie Dein Aufbau und die Vorgehensweise ist.

- Welchen PI verwendest Du?
- Unter welchem Useraccount arbeitest Du?
- Sind die Pakete gphotofs und gphoto2 installiert?
Fall Du diese verwendest:
- Hast Du den User in die entsprechenden wie Gruppen wie plugdev aufgenommen?
- Hast Du die fuse.conf angepasst?

- Wie lautet Dein Befehl in der Konsole um auf die Kamera zuzugreifen?
- Wie lautet die Fehlermeldung?
- Wie lautet Dein Befehl um via ssh auf die Kamera zuzugreifen?
- Wie lautet da die Fehlermeldung?
 
Zuletzt bearbeitet:
Hmm, verstehe immernoch nicht was du Da machst.
Versuch mal bitte konkret die folgenden Fragen zu beantworten, das würde mir helfen zu verstehen wie Dein Aufbau und die Vorgehensweise ist.

- Welchen PI verwendest Du?
Model B

- Unter welchem Useraccount arbeitest Du?
pi

- Sind die Pakete gphotofs und gphoto2 installiert?
ja

Fall Du diese verwendest:
- Hast Du den User in die entsprechenden wie Gruppen wie plugdev aufgenommen?
das ist der vorkonfigurirte Nutzer, weiß ich nicht

- Hast Du die fuse.conf angepasst?
Nein

- Wie lautet Dein Befehl in der Konsole um auf die Kamera zuzugreifen?
?
Ich kopiere die Bilder zurzeit nur auf die Festplatte, dafür nutze ich: (liegt in einer .sh Datei)
Code:
mv /media/kamera/DCIM/100Canon/*.JPG /home/
die Kamera wurde nach media/kamera/ gemountet

- Wie lautet die Fehlermeldung?
no such file or directory

- Wie lautet Dein Befehl um via ssh auf die Kamera zuzugreifen?
exakt der gleiche, ich greife auf die sh datei zu

- Wie lautet da die Fehlermeldung?
Die gleiche wie über Konsole.
 
Ok, jetzt wirds etwas klarer.

Also zunächst steht eine ".sh"-Datei idR. für ein Shell-Script, während ssh für Secure Shell steht und eine Möglichkeit ist, sich an einem anderen System anzumelden.
Deine Beschreibung hat sich für mich so gelesen dass Du via ssh auf die Kamera zugreifen möchtest, aber scheinbar sind hier nur die Begriffe durcheinander geraten.

So, also um auf die Antworten einzugehen:


huui-buu schrieb:
das ist der vorkonfigurirte Nutzer, weiß ich nicht
Prüfen und ggfs. korrigieren.
Den Benutzer zur Gruppe fuse hinzufuegen : "usermod -a -G fuse <USER>"
Den Benutzer zur Gruppe plugdev hinzufuegen : "usermod -a -G plugdev <USER>"
In der Datei /etc/fuse.conf den Parameter "user_allow_other" aktivieren

wobei <USER> dann eben pi heissen muss.

huui-buu schrieb:
die Kamera wurde nach media/kamera/ gemountet
Mit welchem Befehl?
Wem gehört der Mountpoint? Lese/Schreibrechte für Benutzer pi vorhanden?

Was steht noch in Deinem Shellscript?
 
Auf dem PI läuft AFAIK per default kein vold (zumindest beim raspbian), d.h. Laufwerke/Medien werden nicht automatisch gemountet.
Allerdings ist gut möglich dass es unter X.11 einen Prozess gibt der dass dann übernimmt.

Bei Deinem Eintrag in der fstab würde ein automatischer Mount von /dev/sda1 nur dann erfolgen, wenn Du
a.) rebootest
b.) den Befehl "mount -a" ausführst

Arbeitest Du mit einem Terminal unter X.11?

Wenn Du den automount nicht möchtest, dann solltest Du in der fstab hinter users noch ein noauto schreiben, die Optionen jeweils durch Komma trennen!
 
WERBUNG
Zurück
Oben Unten