Zum Inhalt
RAWCaptureBooth Podręcznik użytkownika
Wersja 3.18.0

Wyzwalacze dla programów zewnętrznych

Fotobudka zgłasza na zewnątrz kroki swojego przebiegu: pod adres w sieci albo do programu na własnym komputerze. Pozwala to podłączyć sprzęt, dla którego nie ma osobnej sekcji.

Włącza się to w obszarze administracyjnym „Sterowanie światłem i akcesoriami" > „Wyzwalacze dla programów zewnętrznych". Ten rozdział opisuje, co tam dociera i jak z tego korzystać.

Do czego to służy#

Kilka zadań z praktyki, które da się tak rozwiązać:

  • Sterowanie lampą pierścieniową lub błyskową, która ma własne oprogramowanie. Rozjaśnianie podczas odliczania, wyłączenie w chwili zdjęcia.
  • Załączanie gniazdka, gdy tylko zaczyna się sesja, i wyłączenie po ekranie końcowym - poprzez automatykę domową.
  • Przekazywanie gotowych zdjęć: kopiowanie, zmiana nazwy, odkładanie do folderu, przekazanie do obróbki.
  • Zliczanie, ile sesji i odbitek się uzbierało, bez pytania o to fotobudki.
  • Wytwornica dymu, gra świateł, armatka konfetti - wszystko, co reaguje na sygnał.
  • Równoległy wyświetlacz, na przykład drugi ekran w sąsiednim pomieszczeniu pokazujący, co właśnie się dzieje.

Fotobudka nie oczekuje odpowiedzi i żadnej nie analizuje. Tylko zgłasza.

Konfiguracja w trzech krokach#

  1. Ustalić cel. Albo adres w sieci, albo program na komputerze fotobudki. Przy programie do pola wpisuje się pełną ścieżkę wraz z rozszerzeniem.
  2. Zaznaczyć zdarzenia. Zgłaszane jest tylko to, co zaznaczone. Kto najpierw chce ustalić, co i kiedy przychodzi, zaznacza wszystko i później usuwa to, co zbędne.
  3. Przetestować. Przycisk „Przetestuj zdarzenie" wysyła pojedyncze zdarzenie z przykładowymi wartościami i pokazuje polecenie, które faktycznie wyszło - a przy błędzie także jego przyczynę.

Dwie drogi#

Adres w sieci#

Fotobudka wywołuje adres i dołącza do niego wartości jako parametry:

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

event_type podaje zdarzenie, od param1 do param4 wartości dodatkowe. Znaki specjalne są zakodowane, jak zwykle w adresach internetowych.

Zamiast tego można wysłać POST z JSON:

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

Pierwszy format pasuje do istniejących skryptów i prostych urządzeń, drugi do nowo napisanych odbiorników.

Program na tym komputerze#

Fotobudka uruchamia podany program i przekazuje wartości jako argumenty w ustalonej kolejności - najpierw nazwa zdarzenia, potem wartości dodatkowe:

Moj-Skrypt.bat session_start photo

Program działa bez widocznego okna. Jego katalogiem roboczym jest folder, w którym leży - pliki sąsiednie można więc wywoływać samą nazwą.

Opis: dziewięć zdarzeń#

W kolejności przebiegu. Wartość, której zdarzenie nie przekazuje, pozostaje pusta, ale zachowuje swoje miejsce.

Sesja się rozpoczyna#

Gość wybrał tryb zdjęcia, sesja została utworzona.

WartośćZawartość
1Tryb zdjęcia: photo, gif, boomerang lub ai_portrait
Moj-Skrypt.bat session_start photo

Odliczanie się zaczyna#

Przychodzi przed każdym pojedynczym zdjęciem, przy układzie czterozdjęciowym zatem cztery razy.

WartośćZawartość
1Czas odliczania - w sekundach, do wyboru w milisekundach
Moj-Skrypt.bat countdown_start 3

Wyzwolenie migawki#

Chwila zdjęcia. Również przychodzi przed każdym pojedynczym zdjęciem, bezpośrednio zanim obraz powstanie.

To zdarzenie nie przekazuje wartości dodatkowych.

Moj-Skrypt.bat capture_start

Zdjęcie odebrane z aparatu#

Aparat dostarczył zdjęcie i leży ono na dysku. Przychodzi tylko przy podłączonym aparacie fotograficznym lub bezlusterkowcu, nie przy kamerze internetowej - tam obraz powstaje w interfejsie.

WartośćZawartość
1Pełna ścieżka do niezmienionego pliku z aparatu
Moj-Skrypt.bat file_download "C:\...\sessions\20260918\dslr_raw\shot_01.jpg"

Rozpoczyna się przetwarzanie#

Wszystkie zdjęcia są gotowe, teraz liczony jest obraz końcowy: wycinanie tła, filtr, układ. Zależnie od ustawień trwa to kilka sekund.

WartośćZawartość
1Pliki źródłowe, oddzielone średnikami
2Ścieżka, pod którą powstanie gotowy obraz
Moj-Skrypt.bat processing_start "C:\...\shot_01.jpg;C:\...\shot_02.jpg" "C:\...\final.jpg"

Ścieżka docelowa jest ustalona jeszcze przed liczeniem. Skrypt może się więc przygotować zamiast przeszukiwać folder. Samego pliku w tym momencie jeszcze nie ma.

Pojawia się ekran końcowy#

Gotowy obraz jest widoczny, gość decyduje o druku i przekazaniu.

To zdarzenie nie przekazuje wartości dodatkowych.

Moj-Skrypt.bat sharing_screen

Zadanie druku wysłane#

Druk został uruchomiony - przez gościa albo automatycznie.

WartośćZawartość
1Ścieżka do drukowanego pliku
2Liczba odbitek
3Nazwa drukarki
Moj-Skrypt.bat printing "C:\...\final.jpg" 2 "DS-RX1"

Zgłaszane jest, że zadanie opuściło fotobudkę. Czy papier rzeczywiście wyjdzie, wie tylko drukarka.

Przesyłanie zakończone#

Zdjęcie dotarło do celu w chmurze.

WartośćZawartość
1Ścieżka do przesłanego pliku
2Adres do zdjęcia, o ile cel go dostarcza
3Rozszerzenie pliku, na przykład jpg albo mp4
4Oznaczenie celu
Moj-Skrypt.bat file_upload "C:\...\final.jpg" "https://.../s/abc" jpg Wesele

Sesja się kończy#

Przebieg wraca do ekranu startowego - po ekranie końcowym, po upływie czasu albo dlatego, że gość przerwał.

To zdarzenie nie przekazuje wartości dodatkowych.

Moj-Skrypt.bat session_end

Co i kiedy przychodzi#

Pełny przebieg z układem z dwóch zdjęć, drukiem i przesłaniem:

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 Wesele
session_end

Przy kamerze internetowej brakuje wierszy file_download. Gdy gość przerwie, session_end przychodzi bez poprzedzających wierszy. Druk i przesyłanie przychodzą tylko wtedy, gdy są włączone i gość je uruchomi.

Prawidłowe odczytywanie wartości#

W pliku wsadowym#

Wartości dostępne są jako %~1, %~2 i tak dalej. Tylda należy do zapisu: wartości ze spacjami, znakami równości, przecinkami lub średnikami przekazywane są w cudzysłowie, a %~2 go usuwa. Przy %2 cudzysłowy zostałyby w tekście.

@echo off
if /i "%~1"=="printing" (
    rem %~2 = plik, %~3 = liczba, %~4 = drukarka
    echo Drukowane sa %~3 odbitki na %~4
)

Proste wartości bez znaków specjalnych - na przykład czas odliczania - przychodzą bez cudzysłowów i dają się odczytać także przez %2.

W PowerShell#

param([string]$Zdarzenie, [string]$Wartosc1, [string]$Wartosc2, [string]$Wartosc3, [string]$Wartosc4)

Sekundy czy milisekundy#

Fabrycznie czas odliczania wychodzi w sekundach. Niektóre urządzenia oczekują milisekund - służy do tego pole „Podawaj czas odliczania w milisekundach" w obszarze administracyjnym. Z 3 robi się wtedy 3000.

Jeśli animacja odliczania pozostaje ciemna albo kończy się natychmiast, prawie zawsze odpowiada za to ta jednostka.

Gotowe przykłady#

Pliki można pobrać, umieścić we własnym folderze i wpisać jako cel w obszarze administracyjnym. Są pomyślane jako punkt wyjścia i wolno je zmieniać.

Zapisywanie każdego zdarzenia#

Zapisuje każde wywołanie z czasem, zdarzeniem i wszystkimi wartościami do pliku tekstowego obok skryptu. Pierwszy krok do wszystkiego dalszego.

Pobierz ausloeser-protokoll.bat

Sterowanie urządzeniem przez port szeregowy#

Wysyła przy odliczaniu i przy wyzwoleniu po jednym poleceniu do urządzenia na COM3 - wzorzec, według którego działają lampy pierścieniowe i podobne sterowniki. Polecenia i port wpisuje się na początku skryptu.

Pobierz ausloeser-seriell.bat

Kopiowanie i zmiana nazwy gotowych zdjęć#

Odkłada każde gotowe zdjęcie dodatkowo do folderu docelowego, z datą i godziną w nazwie. Przydatne dla fotografa pracującego równolegle.

Pobierz ausloeser-kopieren.ps1

Mały odbiornik dla drogi sieciowej#

Program, który nasłuchuje pod adresem i pokazuje każde zdarzenie. Do wypróbowania drogi sieciowej, zanim podłączy się właściwe urządzenie docelowe. Wymaga zainstalowanego środowiska Python.

Pobierz ausloeser-empfaenger.py

Automatyka domowa#

Systemy takie jak Home Assistant, ioBroker czy Node-RED przyjmują wywołanie przez sieć. Ich adres wpisuje się jako cel, na przykład:

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

Tam uruchamia się wtedy automatyzacja. Zdarzenie znajduje się w event_type, a ponieważ wartości przychodzą jako parametry, początek i koniec sesji da się rozróżnić bez zakładania osobnego adresu dla każdego zdarzenia.

Jeśli system oczekuje JSON zamiast parametrów, format zmienia się w obszarze administracyjnym.

Szukanie usterek#

Nic w ogóle nie dociera#

Sprawdzić po kolei:

  • Czy „Używaj wyzwalaczy" jest włączone i zapisane?
  • Czy dane zdarzenie jest zaznaczone?
  • Czy przy programie w polu widnieje pełna ścieżka wraz z rozszerzeniem?
  • Co mówi przycisk „Przetestuj zdarzenie"? Pokazuje polecenie, które wychodzi, a przy błędzie jego przyczynę.
  • Czy wolno pisać w folderze, w którym skrypt chce utworzyć swój plik?

Skrypt działa, ale nic nie robi#

Skrypt, który szuka plików sąsiednich w folderze fotobudki, nie znajdzie ich - działa we własnym folderze. Ścieżki wewnątrz skryptu należy więc podawać w całości albo odnosić do %~dp0, własnego folderu.

Wartości stoją w złym miejscu#

Prawie zawsze różnica między %2 a %~2. Patrz wyżej „Prawidłowe odczytywanie wartości".

Przebieg dla gościa się zacina#

To nie powinno się zdarzyć i nie leży wtedy po stronie wyzwalacza: fotobudka czeka najwyżej ustawiony limit czasu i potem idzie dalej, nawet jeśli cel nie odpowiada. Limit można skrócić, gdy w grze jest powolne urządzenie.

Zdarzenie przychodzi wielokrotnie#

Zwykle tak właśnie ma być: odliczanie i wyzwolenie przychodzą przed każdym pojedynczym zdjęciem. Przy układzie z czterema zdjęciami zatem cztery razy.

Aktualizacja: 18.09.2026 · Wersja 3.18.0