Zum Inhalt
RAWCaptureBooth Handleiding
Versie 3.18.0

Triggers voor externe programma's

De fotobox meldt stappen uit haar verloop naar buiten: aan een adres in het netwerk of aan een programma op de eigen computer. Daarmee wordt apparatuur gekoppeld waarvoor geen eigen gedeelte bestaat.

Inschakelen gebeurt in het beheergedeelte "Licht- en toebehorenbesturing" > "Triggers voor externe programma's". Dit hoofdstuk beschrijft wat daar binnenkomt en hoe ermee te werken is.

Waar dit goed voor is#

Een paar taken uit de praktijk die zich zo laten oplossen:

  • Een ringlamp of flitsinstallatie aansturen die eigen software meebrengt. Bij het aftellen opkomen, op het moment van de opname uitschakelen.
  • Een stopcontact schakelen zodra een sessie begint, en na het eindscherm weer uit - via domotica.
  • Afgewerkte foto's doorgeven: kopiëren, hernoemen, in een map leggen, aan een fotobewerking overdragen.
  • Meetellen hoeveel sessies en afdrukken bij elkaar zijn gekomen, zonder de fotobox daarnaar te vragen.
  • Rookmachine, lichtorgel, confettikanon - alles wat op een signaal reageert.
  • Een display laten meelopen, bijvoorbeeld een tweede scherm in de kamer ernaast dat toont wat er gebeurt.

De fotobox verwacht geen antwoord en verwerkt er geen. Ze meldt alleen.

Instellen in drie stappen#

  1. Doel vastleggen. Ofwel een adres in het netwerk, ofwel een programma op de computer van de fotobox. Bij een programma hoort het volledige pad inclusief bestandsextensie in het veld.
  2. Gebeurtenissen aanvinken. Alleen wat aangevinkt is wordt gemeld. Wie eerst wil ontdekken wat wanneer binnenkomt, vinkt alles aan en haalt later weg wat niet nodig is.
  3. Testen. De knop "Gebeurtenis testen" verstuurt één gebeurtenis met voorbeeldwaarden en toont de opdracht die werkelijk is uitgegaan - bij een fout bovendien de oorzaak.

De twee wegen#

Adres in het netwerk#

De fotobox roept een adres aan en hangt de waarden als parameters eraan:

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

event_type noemt de gebeurtenis, param1 tot en met param4 de extra waarden. Bijzondere tekens zijn gecodeerd, zoals gebruikelijk bij internetadressen.

In plaats daarvan kan een POST met JSON uitgaan:

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

Het eerste formaat past bij bestaande scripts en eenvoudige apparaten, het tweede bij nieuw geschreven ontvangers.

Programma op deze computer#

De fotobox start het opgegeven programma en geeft de waarden als argumenten in vaste volgorde mee - eerst de naam van de gebeurtenis, daarna de extra waarden:

Mijn-Script.bat session_start photo

Het programma draait zonder zichtbaar venster. De werkmap is de map waarin het staat; buurbestanden zijn dus met alleen hun naam aan te roepen.

Overzicht: de negen gebeurtenissen#

In de volgorde van het verloop. Een waarde die een gebeurtenis niet meegeeft blijft leeg, maar houdt haar plaats.

Sessie start#

De gast heeft de opnamemodus gekozen, de sessie is aangemaakt.

WaardeInhoud
1Opnamemodus: photo, gif, boomerang of ai_portrait
Mijn-Script.bat session_start photo

Aftellen begint#

Komt vóór elke afzonderlijke opname, bij een layout met vier foto's dus vier keer.

WaardeInhoud
1Duur van het aftellen - in seconden, desgewenst in milliseconden
Mijn-Script.bat countdown_start 3

Ontspannen#

Het moment van de opname. Komt eveneens vóór elke afzonderlijke opname, vlak voordat de foto ontstaat.

Deze gebeurtenis draagt geen extra waarden.

Mijn-Script.bat capture_start

Opname van de camera binnengekomen#

De camera heeft een foto geleverd en die staat op de schijf. Komt alleen bij een aangesloten foto- of systeemcamera, niet bij een webcam - daar ontstaat de foto in de interface.

WaardeInhoud
1Volledig pad naar het onbewerkte camerabestand
Mijn-Script.bat file_download "C:\...\sessions\20260918\dslr_raw\shot_01.jpg"

Verwerking begint#

Alle opnamen zijn binnen, de afgewerkte foto wordt nu berekend: uitsnijden, filter, layout. Afhankelijk van de instellingen duurt dat enkele seconden.

WaardeInhoud
1De bronbestanden, gescheiden door puntkomma's
2Pad waaronder de afgewerkte foto zal ontstaan
Mijn-Script.bat processing_start "C:\...\shot_01.jpg;C:\...\shot_02.jpg" "C:\...\final.jpg"

Het doelpad staat al vast voordat er gerekend wordt. Een script kan zich dus voorbereiden in plaats van de map af te zoeken. Het bestand zelf bestaat op dat moment nog niet.

Eindscherm verschijnt#

De afgewerkte foto is te zien, de gast beslist over afdrukken en delen.

Deze gebeurtenis draagt geen extra waarden.

Mijn-Script.bat sharing_screen

Printopdracht verzonden#

Een afdruk is gestart - door de gast of automatisch.

WaardeInhoud
1Pad naar het bestand dat wordt afgedrukt
2Aantal afdrukken
3Naam van de printer
Mijn-Script.bat printing "C:\...\final.jpg" 2 "DS-RX1"

Gemeld wordt dat de opdracht de fotobox heeft verlaten. Of het papier er werkelijk uit komt, weet alleen de printer.

Upload voltooid#

Een foto is bij het clouddoel aangekomen.

WaardeInhoud
1Pad naar het geüploade bestand
2Adres naar de foto, voor zover het doel er een levert
3Bestandsextensie, bijvoorbeeld jpg of mp4
4Kenmerk van het doel
Mijn-Script.bat file_upload "C:\...\final.jpg" "https://.../s/abc" jpg Bruiloft

Sessie eindigt#

Het verloop keert terug naar het startscherm - na het eindscherm, na afloop van de tijdklok of omdat de gast heeft afgebroken.

Deze gebeurtenis draagt geen extra waarden.

Mijn-Script.bat session_end

Wat wanneer binnenkomt#

Een volledige doorloop met een layout van twee opnamen, afdruk en 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 Bruiloft
session_end

Bij een webcam ontbreken de file_download-regels. Breekt de gast af, dan komt session_end zonder de regels ervoor. Afdruk en upload komen alleen wanneer ze aanstaan en de gast ze aanzet.

De waarden goed uitlezen#

In een batchbestand#

De waarden staan beschikbaar als %~1, %~2 enzovoort. De tilde hoort erbij: waarden met spaties, isgelijktekens, komma's of puntkomma's worden tussen aanhalingstekens doorgegeven, en %~2 haalt die er weer af. Met %2 zouden ze in de tekst staan.

@echo off
if /i "%~1"=="printing" (
    rem %~2 = bestand, %~3 = aantal, %~4 = printer
    echo Er worden %~3 afdrukken op %~4 gemaakt
)

Eenvoudige waarden zonder bijzondere tekens - bijvoorbeeld een afteltijd - komen zonder aanhalingstekens binnen en zijn ook met %2 te lezen.

In PowerShell#

param([string]$Gebeurtenis, [string]$Waarde1, [string]$Waarde2, [string]$Waarde3, [string]$Waarde4)

Seconden of milliseconden#

Standaard gaat de afteltijd in seconden uit. Sommige apparaten verwachten milliseconden - daarvoor staat in het beheergedeelte het vinkje "Duur van het aftellen in milliseconden opgeven". 3 wordt dan 3000.

Blijft een aftelanimatie donker of is ze meteen voorbij, dan ligt het bijna altijd aan deze eenheid.

Kant-en-klare voorbeelden#

De bestanden zijn te downloaden, in een eigen map te zetten en in het beheergedeelte als doel in te vullen. Ze zijn bedoeld als vertrekpunt en mogen worden aangepast.

Elke gebeurtenis meeschrijven#

Schrijft elke aanroep met tijd, gebeurtenis en alle waarden in een tekstbestand naast het script. De eerste stap voor al het andere.

ausloeser-protokoll.bat downloaden

Een apparaat via de seriële poort aansturen#

Stuurt bij het aftellen en bij het ontspannen elk een opdracht naar een apparaat op COM3 - het patroon waarmee ringlampen en vergelijkbare besturingen werken. Opdrachten en poort worden bovenin het script ingevuld.

ausloeser-seriell.bat downloaden

Afgewerkte foto's kopiëren en hernoemen#

Legt elke afgewerkte foto ook in een doelmap, met datum en tijd in de naam. Handig voor een fotograaf die er parallel mee doorwerkt.

ausloeser-kopieren.ps1 downloaden

Een kleine ontvanger voor de netwerkweg#

Een programma dat op een adres luistert en elke gebeurtenis toont. Om de netwerkweg uit te proberen voordat het eigenlijke doelapparaat wordt aangesloten. Vereist een geïnstalleerde Python-omgeving.

ausloeser-empfaenger.py downloaden

Domotica#

Systemen als Home Assistant, ioBroker of Node-RED nemen een aanroep via het netwerk aan. Hun adres wordt als doel ingevuld, bijvoorbeeld:

http://192.168.1.50:8123/api/webhook/photobooth

Daar wordt dan een automatisering gestart. De gebeurtenis staat in event_type, en omdat de waarden als parameters meekomen, zijn sessiestart en sessie-einde te onderscheiden zonder voor elke gebeurtenis een eigen adres aan te maken.

Verwacht het systeem JSON in plaats van parameters, dan wordt het formaat in het beheergedeelte omgezet.

Foutopsporing#

Er komt helemaal niets binnen#

Op volgorde nagaan:

  • Staat "Triggers gebruiken" aan en is het opgeslagen?
  • Is de betreffende gebeurtenis aangevinkt?
  • Staat bij een programma het volledige pad inclusief bestandsextensie in het veld?
  • Wat zegt de knop "Gebeurtenis testen"? Die toont de opdracht die uitgaat en bij een fout de oorzaak.
  • Mag er geschreven worden in de map waar het script zijn bestand wil aanmaken?

Het script draait, maar doet niets#

Een script dat in de map van de fotobox naar buurbestanden zoekt, vindt ze niet - het draait in zijn eigen map. Paden binnen het script dus volledig opgeven of op %~dp0 betrekken, de eigen map.

Waarden staan op de verkeerde plaats#

Bijna altijd het verschil tussen %2 en %~2. Zie hierboven bij "De waarden goed uitlezen".

Het verloop voor de gast hapert#

Dat mag niet gebeuren, en het ligt dan niet aan de trigger: de fotobox wacht hoogstens de ingestelde tijdslimiet en gaat dan door, ook als het doel niet antwoordt. De tijdslimiet kan korter wanneer er een traag apparaat in het spel is.

Een gebeurtenis komt meerdere keren#

Dat is meestal juist zo: aftellen en ontspannen komen vóór elke afzonderlijke opname. Bij een layout met vier foto's dus vier keer.

Bijgewerkt: 18.09.2026 · Versie 3.18.0