Zum Inhalt
RAWCaptureBooth Anwenderhandbuch
Version 3.18.0

Auslöser für Fremdprogramme

Die Fotobox meldet Schritte ihres Ablaufs nach außen: an eine Adresse im Netzwerk oder an ein Programm auf ihrem eigenen Rechner. Damit lässt sich Technik anbinden, für die es keinen eigenen Bereich gibt.

Eingeschaltet wird das im Admin-Bereich "Licht-/Zubehör-Steuerung" > "Auslöser für Fremdprogramme". Dieses Kapitel beschreibt, was dort ankommt und wie sich damit arbeiten lässt.

Wofür das gut ist#

Ein paar Aufgaben aus der Praxis, die sich damit lösen lassen:

  • Ringlicht oder Blitzanlage steuern, die eine eigene Software mitbringt. Beim Countdown hochfahren, im Moment der Aufnahme abschalten.
  • Eine Steckdose schalten, sobald eine Sitzung beginnt, und nach dem Abschlussbildschirm wieder aus - über eine Hausautomatisierung.
  • Fertige Bilder weiterreichen: kopieren, umbenennen, in einen Ordner legen, an eine Bildbearbeitung übergeben.
  • Mitzählen, wie viele Sitzungen und Ausdrucke zusammengekommen sind, ohne die Fotobox dafür zu befragen.
  • Nebelmaschine, Lichtorgel, Konfettikanone - alles, was auf ein Signal reagiert.
  • Eine Anzeige mitlaufen lassen, etwa einen zweiten Bildschirm im Nebenraum, der zeigt, was gerade passiert.

Die Fotobox erwartet keine Antwort und wertet keine aus. Sie meldet nur.

Einrichten in drei Schritten#

  1. Ziel festlegen. Entweder eine Adresse im Netzwerk oder ein Programm auf dem Rechner der Fotobox. Bei einem Programm gehört der vollständige Pfad samt Dateiendung ins Feld.
  2. Ereignisse anhaken. Nur Angehaktes wird gemeldet. Wer erst herausfinden will, was wann kommt, hakt zunächst alles an und nimmt später weg, was nicht gebraucht wird.
  3. Testen. Der Knopf "Ereignis testen" schickt ein einzelnes Ereignis mit Beispielwerten los und zeigt den Befehl, der tatsächlich hinausgegangen ist - bei einem Fehler zusätzlich dessen Ursache.

Die beiden Wege#

Adresse im Netzwerk#

Die Fotobox ruft eine Adresse auf und hängt die Werte als Parameter an:

http://127.0.0.1:8000?event_type=session_start&param1=photo

event_type nennt das Ereignis, param1 bis param4 die Zusatzwerte. Sonderzeichen sind dabei kodiert, wie bei Internetadressen üblich.

Wahlweise geht stattdessen ein POST mit JSON hinaus:

{"event_type": "session_start", "param1": "photo"}

Das erste Format passt zu vorhandenen Skripten und zu einfachen Geräten, das zweite zu neu geschriebenen Empfängern.

Programm auf diesem Rechner#

Die Fotobox startet das angegebene Programm und übergibt die Werte als Argumente in fester Reihenfolge - zuerst der Ereignisname, danach die Zusatzwerte:

Mein-Skript.bat session_start photo

Das Programm läuft ohne sichtbares Fenster. Sein Arbeitsverzeichnis ist der Ordner, in dem es liegt - Nachbardateien lassen sich also mit bloßem Namen aufrufen.

Referenz: die neun Ereignisse#

In der Reihenfolge des Ablaufs. Ein Wert, den ein Ereignis nicht mitgibt, bleibt leer, hält aber seinen Platz.

Sitzung startet#

Der Gast hat den Aufnahmemodus gewählt, die Sitzung ist angelegt.

WertInhalt
1Aufnahmemodus: photo, gif, boomerang oder ai_portrait
Mein-Skript.bat session_start photo

Countdown beginnt#

Kommt vor jeder einzelnen Aufnahme, bei einem Vierer-Layout also viermal.

WertInhalt
1Dauer des Countdowns - in Sekunden, wahlweise in Millisekunden
Mein-Skript.bat countdown_start 3

Auslösen#

Der Moment der Aufnahme. Kommt ebenfalls vor jeder einzelnen Aufnahme, unmittelbar bevor das Bild entsteht.

Dieses Ereignis trägt keine Zusatzwerte.

Mein-Skript.bat capture_start

Aufnahme von der Kamera eingetroffen#

Die Kamera hat ein Bild geliefert und es liegt auf der Festplatte. Kommt nur bei einer angeschlossenen Foto- oder Systemkamera, nicht bei einer Webcam - dort entsteht das Bild erst in der Oberfläche.

WertInhalt
1Vollständiger Pfad zur unveränderten Kameradatei
Mein-Skript.bat file_download "C:\...\sessions\20260918\dslr_raw\shot_01.jpg"

Verarbeitung beginnt#

Alle Aufnahmen liegen vor, das fertige Bild wird jetzt gerechnet: Freistellung, Filter, Layout. Je nach Einstellung dauert das einige Sekunden.

WertInhalt
1Die Quelldateien, durch Semikolon getrennt
2Pfad, unter dem das fertige Bild entstehen wird
Mein-Skript.bat processing_start "C:\...\shot_01.jpg;C:\...\shot_02.jpg" "C:\...\final.jpg"

Der Zielpfad steht schon fest, bevor gerechnet wird. Ein Skript kann sich also vorbereiten, statt den Ordner abzusuchen. Die Datei selbst gibt es zu diesem Zeitpunkt noch nicht.

Abschlussbildschirm erscheint#

Das fertige Bild ist zu sehen, der Gast entscheidet über Druck und Weitergabe.

Dieses Ereignis trägt keine Zusatzwerte.

Mein-Skript.bat sharing_screen

Druckauftrag geht raus#

Ein Druck wurde angestoßen - vom Gast oder automatisch.

WertInhalt
1Pfad zur Datei, die gedruckt wird
2Anzahl der Ausdrucke
3Name des Druckers
Mein-Skript.bat printing "C:\...\final.jpg" 2 "DS-RX1"

Gemeldet wird, dass der Auftrag die Fotobox verlassen hat. Ob das Papier tatsächlich herauskommt, weiß nur der Drucker.

Upload abgeschlossen#

Ein Bild ist beim Cloud-Ziel angekommen.

WertInhalt
1Pfad zur hochgeladenen Datei
2Adresse zum Bild, sofern das Ziel eine liefert
3Dateiendung, etwa jpg oder mp4
4Kennung des Ziels
Mein-Skript.bat file_upload "C:\...\final.jpg" "https://.../s/abc" jpg Hochzeit

Sitzung endet#

Der Ablauf kehrt zum Startbildschirm zurück - nach dem Abschlussbildschirm, nach Ablauf des Zeitgebers oder weil der Gast abgebrochen hat.

Dieses Ereignis trägt keine Zusatzwerte.

Mein-Skript.bat session_end

Was wann kommt#

Ein vollständiger Durchgang mit einem Layout aus zwei Aufnahmen, Druck und Upload:

session_start photo
countdown_start 3
capture_start
file_download C:\...\shot_01.jpg
countdown_start 3
capture_start
file_download C:\...\shot_02.jpg
processing_start C:\...\shot_01.jpg;C:\...\shot_02.jpg  C:\...\final.jpg
sharing_screen
printing C:\...\final.jpg 1 DS-RX1
file_upload C:\...\final.jpg https://.../s/abc jpg Hochzeit
session_end

Bei einer Webcam fehlen die file_download-Zeilen. Bricht der Gast ab, kommt session_end ohne die Zeilen davor. Druck und Upload kommen nur, wenn sie eingeschaltet sind und der Gast sie auslöst.

Werte richtig lesen#

In einer Batch-Datei#

Die Werte stehen als %~1, %~2 und so weiter zur Verfügung. Die Tilde gehört dazu: Werte mit Leerzeichen, Gleichheitszeichen, Komma oder Semikolon werden in Anführungszeichen übergeben, und %~2 entfernt diese wieder. Mit %2 stünden sie im Text.

@echo off
if /i "%~1"=="printing" (
    rem %~2 = Datei, %~3 = Anzahl, %~4 = Drucker
    echo Es werden %~3 Ausdrucke auf %~4 gemacht
)

Einfache Werte ohne Sonderzeichen - etwa eine Countdown-Dauer - kommen ohne Anführungszeichen an und lassen sich auch mit %2 lesen.

In PowerShell#

param([string]$Ereignis, [string]$Wert1, [string]$Wert2, [string]$Wert3, [string]$Wert4)

Sekunden oder Millisekunden#

Die Countdown-Dauer geht ab Werk in Sekunden hinaus. Manche Geräte erwarten Millisekunden - dafür gibt es im Admin-Bereich den Haken "Countdown-Dauer in Millisekunden angeben". Aus 3 wird dann 3000.

Bleibt eine Countdown-Animation dunkel oder ist sie sofort vorbei, liegt es fast immer an dieser Einheit.

Fertige Beispiele#

Die Dateien lassen sich herunterladen, in einen eigenen Ordner legen und im Admin-Bereich als Ziel eintragen. Sie sind als Ausgangspunkt gedacht und dürfen verändert werden.

Jedes Ereignis mitschreiben#

Schreibt jeden Aufruf mit Zeit, Ereignis und allen Werten in eine Textdatei neben dem Skript. Der erste Schritt für alles Weitere.

ausloeser-protokoll.bat herunterladen

Ein Gerät über die serielle Schnittstelle steuern#

Schickt beim Countdown und beim Auslösen je einen Befehl an ein Gerät an COM3 - das Muster, nach dem Ringlichter und ähnliche Steuerungen arbeiten. Befehle und Anschluss sind oben im Skript einzutragen.

ausloeser-seriell.bat herunterladen

Fertige Bilder kopieren und umbenennen#

Legt jedes fertige Bild zusätzlich in einem Zielordner ab, mit Datum und Uhrzeit im Namen. Nützlich für einen Fotografen, der parallel weiterarbeitet.

ausloeser-kopieren.ps1 herunterladen

Ein kleiner Empfänger für den Netzwerk-Weg#

Ein Programm, das auf eine Adresse hört und jedes Ereignis anzeigt. Zum Ausprobieren des Weges über das Netzwerk, bevor das eigentliche Zielgerät angebunden wird. Benötigt eine installierte Python-Laufzeit.

ausloeser-empfaenger.py herunterladen

Hausautomatisierung#

Systeme wie Home Assistant, ioBroker oder Node-RED nehmen einen Aufruf über das Netzwerk entgegen. Als Ziel wird deren Adresse eingetragen, zum Beispiel:

http://192.168.1.50:8123/api/webhook/fotobox

Dort löst dann eine Automatisierung aus. Das Ereignis steht in event_type, und weil die Werte als Parameter mitkommen, lässt sich zwischen Sitzungsstart und Sitzungsende unterscheiden, ohne für jedes Ereignis eine eigene Adresse anzulegen.

Erwartet das System JSON statt Parametern, wird im Admin-Bereich das Format umgestellt.

Fehlersuche#

Es kommt gar nichts an#

Der Reihe nach prüfen:

  • Ist "Auslöser verwenden" eingeschaltet und gespeichert?
  • Ist das gewünschte Ereignis angehakt?
  • Steht bei einem Programm der vollständige Pfad samt Dateiendung im Feld?
  • Was sagt der Knopf "Ereignis testen"? Er zeigt den Befehl, der hinausgeht, und bei einem Fehler dessen Ursache.
  • Darf in den Ordner geschrieben werden, in dem das Skript seine Datei anlegen will?

Das Skript läuft, tut aber nichts#

Ein Skript, das im Ordner der Fotobox nach Nachbardateien sucht, findet sie nicht - es läuft in seinem eigenen Ordner. Pfade innerhalb des Skripts deshalb entweder vollständig angeben oder mit %~dp0 auf den eigenen Ordner beziehen.

Werte stehen an der falschen Stelle#

Fast immer der Unterschied zwischen %2 und %~2. Siehe oben unter "Werte richtig lesen".

Der Ablauf des Gastes stockt#

Das darf nicht passieren, und es liegt dann nicht am Auslöser: Die Fotobox wartet höchstens die eingestellte Zeitgrenze und macht dann weiter, auch wenn das Ziel nicht antwortet. Die Zeitgrenze lässt sich verkürzen, wenn ein träges Gerät im Spiel ist.

Ein Ereignis kommt mehrfach#

Das ist meistens richtig so: Countdown und Auslösen kommen vor jeder einzelnen Aufnahme. Bei einem Layout mit vier Bildern also viermal.

Stand: 18.09.2026 · Version 3.18.0