Attivatori per programmi esterni
La cabina segnala verso l'esterno i passaggi della sua sessione: a un indirizzo in rete o a un programma sul proprio computer. Così si collega apparecchiatura per cui non esiste una sezione dedicata.
Si attiva nell'area di amministrazione « Comando luci e accessori » > « Attivatori per programmi esterni ». Questo capitolo descrive che cosa arriva e come utilizzarlo.
A che cosa serve#
Alcuni compiti concreti che si risolvono così:
- Comandare una luce ad anello o un flash dotato di software proprio. Alzare durante il conto alla rovescia, spegnere nel momento dello scatto.
- Commutare una presa appena inizia una sessione e spegnerla dopo la schermata finale - tramite una domotica.
- Passare avanti le immagini finite: copiare, rinominare, depositare in una cartella, consegnare a un programma di fotoritocco.
- Contare quante sessioni e quante stampe si sono accumulate, senza interrogare la cabina.
- Macchina del fumo, giochi di luce, cannone spara coriandoli - tutto ciò che reagisce a un segnale.
- Far girare un display in parallelo, per esempio un secondo schermo nella stanza accanto che mostra che cosa sta accadendo.
La cabina non attende alcuna risposta e non ne valuta nessuna. Si limita a segnalare.
Impostazione in tre passi#
- Stabilire la destinazione. Un indirizzo in rete oppure un programma sul computer della cabina. Per un programma va indicato il percorso completo con l'estensione.
- Spuntare gli eventi. Viene segnalato solo ciò che è spuntato. Chi vuole prima scoprire che cosa arriva e quando, spunta tutto e toglie in seguito ciò che non serve.
- Provare. Il pulsante « Prova evento » invia un singolo evento con valori di esempio e mostra il comando effettivamente partito - e, in caso di errore, la sua causa.
Le due strade#
Indirizzo in rete#
La cabina richiama un indirizzo e vi aggiunge i valori come parametri:
http://127.0.0.1:8000?event_type=session_start¶m1=photo
event_type indica l'evento, da param1 a param4 i valori aggiuntivi. I caratteri speciali sono codificati, come è consueto per gli indirizzi internet.
In alternativa si può inviare un POST con JSON:
{"event_type": "session_start", "param1": "photo"}
Il primo formato si adatta agli script esistenti e agli apparecchi semplici, il secondo ai ricevitori scritti di recente.
Programma su questo computer#
La cabina avvia il programma indicato e passa i valori come argomenti in ordine fisso - prima il nome dell'evento, poi i valori aggiuntivi:
Mio-Script.bat session_start photo
Il programma gira senza finestra visibile. La sua cartella di lavoro è quella in cui si trova; i file vicini si richiamano quindi con il solo nome.
Riferimento: i nove eventi#
Nell'ordine della sessione. Un valore che un evento non trasmette resta vuoto ma mantiene il suo posto.
La sessione inizia#
L'ospite ha scelto la modalità di ripresa, la sessione è creata.
| Valore | Contenuto |
|---|---|
| 1 | Modalità di ripresa: photo, gif, boomerang o ai_portrait |
Mio-Script.bat session_start photo
Il conto alla rovescia inizia#
Arriva prima di ogni singolo scatto, quindi quattro volte con un layout a quattro immagini.
| Valore | Contenuto |
|---|---|
| 1 | Durata del conto alla rovescia - in secondi, a scelta in millisecondi |
Mio-Script.bat countdown_start 3
Scatto#
Il momento della ripresa. Arriva anch'esso prima di ogni singolo scatto, immediatamente prima che l'immagine nasca.
Questo evento non trasmette valori aggiuntivi.
Mio-Script.bat capture_start
Foto ricevuta dalla fotocamera#
La fotocamera ha consegnato un'immagine e questa si trova sul disco. Arriva solo con una fotocamera o mirrorless collegata, non con una webcam - lì l'immagine nasce nell'interfaccia.
| Valore | Contenuto |
|---|---|
| 1 | Percorso completo del file originale della fotocamera |
Mio-Script.bat file_download "C:\...\sessions\20260918\dslr_raw\shot_01.jpg"
L'elaborazione inizia#
Tutti gli scatti sono presenti, l'immagine finita viene ora calcolata: scontorno, filtro, layout. A seconda delle impostazioni ci vogliono alcuni secondi.
| Valore | Contenuto |
|---|---|
| 1 | I file di partenza, separati da punto e virgola |
| 2 | Percorso in cui nascerà l'immagine finita |
Mio-Script.bat processing_start "C:\...\shot_01.jpg;C:\...\shot_02.jpg" "C:\...\final.jpg"
Il percorso di destinazione è già fissato prima di ogni calcolo. Uno script può quindi prepararsi invece di frugare nella cartella. Il file stesso in quel momento non esiste ancora.
Compare la schermata finale#
L'immagine finita è in mostra, l'ospite decide su stampa e condivisione.
Questo evento non trasmette valori aggiuntivi.
Mio-Script.bat sharing_screen
Ordine di stampa inviato#
Una stampa è stata avviata - dall'ospite o automaticamente.
| Valore | Contenuto |
|---|---|
| 1 | Percorso del file che viene stampato |
| 2 | Numero di copie |
| 3 | Nome della stampante |
Mio-Script.bat printing "C:\...\final.jpg" 2 "DS-RX1"
Viene segnalato che l'ordine ha lasciato la cabina. Se la carta esca davvero lo sa soltanto la stampante.
Caricamento completato#
Un'immagine è arrivata alla destinazione cloud.
| Valore | Contenuto |
|---|---|
| 1 | Percorso del file caricato |
| 2 | Indirizzo all'immagine, se la destinazione ne fornisce uno |
| 3 | Estensione del file, per esempio jpg o mp4 |
| 4 | Identificativo della destinazione |
Mio-Script.bat file_upload "C:\...\final.jpg" "https://.../s/abc" jpg Matrimonio
La sessione termina#
La sessione torna alla schermata iniziale - dopo la schermata finale, allo scadere del timer o perché l'ospite ha annullato.
Questo evento non trasmette valori aggiuntivi.
Mio-Script.bat session_end
Che cosa arriva e quando#
Un passaggio completo con un layout a due scatti, stampa e caricamento:
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 Matrimonio
session_end
Con una webcam mancano le righe file_download. Se l'ospite annulla, session_end arriva senza le righe precedenti. Stampa e caricamento arrivano solo se sono attivi e l'ospite li avvia.
Leggere correttamente i valori#
In un file batch#
I valori sono disponibili come %~1, %~2 e così via. La tilde ne fa parte: i valori che contengono spazi, segni di uguale, virgole o punti e virgola vengono passati fra virgolette, e %~2 le rimuove. Con %2 resterebbero nel testo.
@echo off
if /i "%~1"=="printing" (
rem %~2 = file, %~3 = numero, %~4 = stampante
echo Vengono stampate %~3 copie su %~4
)
I valori semplici senza caratteri speciali - per esempio una durata del conto alla rovescia - arrivano senza virgolette e si leggono anche con %2.
In PowerShell#
param([string]$Evento, [string]$Valore1, [string]$Valore2, [string]$Valore3, [string]$Valore4)
Secondi o millisecondi#
Di serie la durata del conto alla rovescia esce in secondi. Alcuni apparecchi si aspettano millisecondi - per questo nell'area di amministrazione c'è la spunta « Indicare la durata del conto alla rovescia in millisecondi ». 3 diventa allora 3000.
Se un'animazione del conto alla rovescia resta spenta o finisce subito, quasi sempre la causa è questa unità.
Esempi pronti#
I file si possono scaricare, mettere in una cartella propria e indicare come destinazione nell'area di amministrazione. Sono pensati come punto di partenza e possono essere modificati.
Registrare ogni evento#
Scrive ogni chiamata con ora, evento e tutti i valori in un file di testo accanto allo script. Il primo passo per tutto il resto.
Scarica ausloeser-protokoll.bat
Comandare un apparecchio tramite la porta seriale#
Invia un comando al conto alla rovescia e uno allo scatto a un apparecchio su COM3 - lo schema secondo cui lavorano le luci ad anello e i comandi simili. Comandi e porta si inseriscono in cima allo script.
Copiare e rinominare le immagini finite#
Deposita ogni immagine finita anche in una cartella di destinazione, con data e ora nel nome. Utile per un fotografo che lavora in parallelo.
Scarica ausloeser-kopieren.ps1
Un piccolo ricevitore per la via di rete#
Un programma che ascolta su un indirizzo e mostra ogni evento. Per provare la via di rete prima di collegare l'apparecchio vero e proprio. Richiede un ambiente Python installato.
Scarica ausloeser-empfaenger.py
Domotica#
Sistemi come Home Assistant, ioBroker o Node-RED accettano una chiamata via rete. Il loro indirizzo si indica come destinazione, per esempio:
http://192.168.1.50:8123/api/webhook/photobooth
Lì scatta poi un'automazione. L'evento sta in event_type, e poiché i valori arrivano come parametri, inizio e fine della sessione si distinguono senza creare un indirizzo per ogni evento.
Se il sistema si aspetta JSON invece dei parametri, il formato si cambia nell'area di amministrazione.
Ricerca guasti#
Non arriva proprio nulla#
Controllare in quest'ordine:
- « Usare gli attivatori » è attivo e salvato?
- L'evento in questione è spuntato?
- Per un programma, il campo contiene il percorso completo con l'estensione?
- Che cosa dice il pulsante « Prova evento »? Mostra il comando che parte e, in caso di errore, la sua causa.
- È consentito scrivere nella cartella in cui lo script vuole creare il suo file?
Lo script gira ma non fa nulla#
Uno script che cerca file vicini nella cartella della cabina non li trova - gira nella propria cartella. I percorsi all'interno dello script vanno quindi indicati per intero oppure riferiti a %~dp0, la cartella dello script stesso.
I valori sono nel posto sbagliato#
Quasi sempre la differenza fra %2 e %~2. Vedi sopra « Leggere correttamente i valori ».
La sessione dell'ospite si blocca#
Non deve accadere, e in tal caso non dipende dall'attivatore: la cabina attende al massimo il tempo impostato e poi prosegue, anche se la destinazione non risponde. Il tempo massimo si può accorciare se è coinvolto un apparecchio lento.
Un evento arriva più volte#
Di solito è corretto: conto alla rovescia e scatto arrivano prima di ogni singola ripresa. Con un layout a quattro immagini, dunque quattro volte.