Snapshot in FTP senden mit vorgegeben Dateinamen

Zuallererst : Ich habe noch kein Kameramodell ausgewählt.

Aber ich habe folgendes vor:

  • über den Alarmeingang soll ein Snapshot auf einem Netzlaufwerk oder per FTP abgelegt werden
  • dieser Snapshot soll einen bestimmen Namen haben. Und zwar jeder Snapshot einen eigenen.

Ich habe jetzt in der WIKI gelesen das es eine Befehl gibt der den Dateinamen ändert
snap_name` : Fixed File Name for All Alarm Snapshots (leave empty for auto-name by time stamp)

Ich würde also erst das CGI mit dem Befehl auslösen und dann den Alarmeingang beschalten. Würde das so funktionieren ?

Hallo @Axel_S_aus_L ,

und willkommen im Forum!

Über die WebUI würde es nicht gehen. Dort kann man nur auswählen Namen aus Zeitstempel oder fester Name. Per CGI Befehl oder MQTT Update ist das aber kein Problem. Man muss nur vor der Alarmauslösung kurz den festen Namen aktualisieren. Man kann also bei jeder manuell ausgelösten Aufnahme den Namen vorgeben.

Hallo @m.polinowski

Vielen Dank für die Antwort. CGI wäre auch mein Mittel der Wahl gewesen. Leider werde ich aus der Doku nicht richtig schlau wie der Befehl genau auszusehen hat. Gibt es da genauere Doku ?

Von MQTT habe ich noch nie gehört. Aber ich fange auch grade erst an mich damit zu beschäftigen.

Das wäre das hier:

snap_name_mode : Set Filename to [off] time stamp, or [on] fixed file name set snap_name and snap_timer_name

snap_name : Fixed File Name for All Alarm Snapshots (leave empty for auto-name by time stamp)

Man muss also beim Modus on setzen, um die Bennenung per Zeitstempel zu deaktivieren und dann beim Namen den Namen hinterlegen den man für den nächsten Alarmschnapschuss haben möchte.

http://192.168.2.168/param.cgi?cmd=getalarmsnapattr&-usr=admin&-pwd=instar

Damit liest man aus was gerade bei der Kamera hinterlegt ist. Und setzen tut man es mit dem SET Befehl:

http://192.168.2.168/param.cgi?cmd=setalarmsnapattr&-snap_chn=11&-snap_count=6&-email_snap_count=6&-ftp_snap_count=6&-snap_name=MeinSnapshotName&-usr=admin&-pwd=instar

Da geht der Spass erst richtig los :slightly_smiling_face:

Vielen Dank nochmal für die ausführliche Darstellung.

Das sieht alles sehr gut aus. Ich muss das mal am lebenden Objekt austesten. Leider ist meine Kamera der Wahl (IN-5907 HD) grad nicht lieferbar.

Da, befürchte ich, müsste man sich nach Gebrauchtware umsehen. Die HD Serie wird nicht mehr hergestellt. Auch bei der Full HD Serie werden jetzt nach und nach Modelle verschwinden und durch höher auflösende ersetzt.

Ah ok… Gebraucht wird nicht gehen. Zum Anfang vielleicht eine zum austesten. Ich brauche die für eine industrielle Anwendung und dann min 2 Stück, später dann 4.
Und die Kamera soll bzw. muss einen Alarmeingang haben. Da käme dann ja nur die 9010 in Frage.

Wenn man einen Server hat der CGI Befehle oder MQTT Updates versendet, braucht man nicht unbedingt verkablen. Man kann auch direkt über die beiden Netzwerkschnittstellen einen Alarm auslösen.

Das funktioniert auch bei einem Snapshot der über CGI ausgelöst wird ? Ich habe irgendwo in einem Forum gelesen das das nicht funktioniert. Und ich habe hier mit einer Fxxxxm rumprobiert und da wird ein CGI-Snapshot auch nicht gespeichert.

Bei der Kamera aktiviert man Alarmaktionen - wenn dann ein Auslöser reinkommt (Bewegungserkennung, Audioerkennung, Alarmeingang oder CGI Befehl) werden alle Aktionen abgearbeitet.

Das versteh ich nicht. Du meinst du hast den INSTAR Befehl bei einer Kamera eines anderen Herstellers probiert? Das würde nicht funktionieren. Die Hersteller haben alle ihre eigenen APIs.

Ich habe natürlich den Befehl für die entsprechende Kamera verwendet. Das Bild wurde auch im Browser angezeigt. Der Support hat mir bestätigt das das Bild in diesem Fall nicht gespeichert wird.

Das mit den Alarmaktionen leuchtet mir ein. Das wäre ein Alternative. Können alle Kameras die Funktionen die wir oben beschreiben haben ?

Es gibt beides - einen Befehl um den aktuellsten Snapshot abzugreifen und einen Befehl um die Alarmaktionen auszulösen. Letzterer würde den Snapshot auf der internen SD Karte ablegen, per FTP oder Email versenden (je nachdem was als Alarmaktion aktiviert wurde).

Der CGI Befehl zum Auslösen eines Alarms ist seit der HD (720p) Serie bei allen Modellen mit dabei. MQTT gibt es seit der Full HD (1080p) Serie und bietet das gleiche über ein schöneres Protokoll/Schnittstelle.

Zur Info : Ich habe mir eine IN-5907 HD über Ebay gekauft. Damit werde ich jetzt erstmal mit testen. So wie es aussieht kann meine Steuerung auch MQTT.
Bin gespannt ob alles so funktioniert wie ich mir das vorstellen

Nur zur Erinnerung: Wenn Du das mit der Kamera ausprobieren wolltest, hättest Du Dir eine Kamera für Full HD kaufen sollen.

au man … egal… erstmal mit der Kamera vertraut machen und schauen was so geht. So wie es aussieht kann ich meine Anwendung auch über CGI lösen.

Mittlerweile habe ich bei meinem Kunden 3 Kamera installiert und steuere über CGI-Skript die Kameras an.

Ich schicke also ein Skript mit dem Bildnamen und anschließend ein weiteres mit dem Auslösebefehl. Klappt soweit ziemlich gut.

Jetzt habe ich festgestellt das das Skript mit dem Bildnamen nicht immer verarbeitet wird. Habe ich eine Wartezeit von ca. 20 Sekunden zwischen den Skripten klappt es immer.

Ist das irgendwie über die Firmware nachvollziehbar ? Hat das evtl. etwas mit dem Speichern der Datei auf dem FTP-Server zu tun ?

Hier im Netzwerk habe ich gerade sogar 30s bis das Bild auf den FTP Server hochgeladen wurde. Erst danach kann dann das nächste Bild hochgeladen werden.

Bei dem Ereignissen um 10:19 habe ich 20s gewartet zwischen den Auslösern gewartet. Es kommen 2 Bilder auf die SD Karte. Aber nur eines kommt beim FTP Server an.

Um 10:22 habe ich 2 Bilder auf der SD und dem FTP Server - Wartezeit war hier 30s.

D.h. wenn ich schneller als mit diesem Minimal-Intervall - das m.E. nach Netzwerklimitierungen gegeben ist - Alarme auslöse, werden einfach keine Bilder auf dem FTP Server erstellt werden.

Oberhalb dieses Intervalls werden Bilder erstellt und bekommen auch den richtigen - per CGI veränderten - Namen vergeben.

Hallo.
Ich sehe erst heute das es hier eine Antwort gab.
Das mit der Wartezeit auf den FTP-Server ist natürlich ziemlich unschön. Da hätte ich jetzt nicht mit gerechnet.
Wie könnte man das denn umgehen ? Gibt es einen Befehl mit dem ich den Inhalt der SD-Karte auf den FTP-Server kopieren kann ? :wink: Und anschließend einen Befehl um die Karte zu löschen ?

Man kann die Bilder per HTTP kopieren - das komplette SD Verzeichnis kann auf IP-Address:Port/sd/ aufgerufen werden:

wget --user admin --password instar http://192.168.2.117/sd/20220402/images000/A22040201413600.jpg

Connecting to 192.168.2.117:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Basic realm="sd/20220402/images000/A22040201413600.jpg"
Connecting to 192.168.2.117:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 147278 (144K) [image/jpeg]
Saving to: ‘A22040201413600.jpg’

Da die SD Karte als Ringspeicher ausgelegt ist gibt es leider keinen Befehl, um gezielt eine Datei zu löschen. Da gibt es nur den sdfrmt Befehl: