Déclencheurs pour programmes externes
Le photobooth signale les étapes de son déroulement vers l'extérieur : à une adresse sur le réseau ou à un programme sur son propre ordinateur. Cela permet de raccorder du matériel pour lequel il n'existe pas de zone dédiée.
L'activation se fait dans l'espace d'administration « Commande d'éclairage et d'accessoires » > « Déclencheurs pour programmes externes ». Ce chapitre décrit ce qui arrive et comment l'exploiter.
À quoi cela sert#
Quelques tâches concrètes que cela permet de résoudre :
- Piloter un anneau lumineux ou un flash livré avec son propre logiciel. Monter pendant le compte à rebours, éteindre au moment de la prise de vue.
- Commander une prise dès qu'une session commence, et la couper après l'écran final - via une domotique.
- Transmettre les images finies : copier, renommer, déposer dans un dossier, passer à un logiciel de retouche.
- Compter le nombre de sessions et d'impressions cumulées, sans avoir à interroger le photobooth.
- Machine à fumée, jeu de lumière, canon à confettis - tout ce qui réagit à un signal.
- Faire tourner un affichage en parallèle, par exemple un second écran dans la pièce voisine montrant ce qui se passe.
Le photobooth n'attend aucune réponse et n'en exploite aucune. Il ne fait que signaler.
Configuration en trois étapes#
- Définir la cible. Soit une adresse sur le réseau, soit un programme sur l'ordinateur du photobooth. Pour un programme, le chemin complet avec l'extension va dans le champ.
- Cocher les événements. Seul ce qui est coché est signalé. Pour découvrir d'abord ce qui arrive et quand, tout cocher et retirer ensuite ce qui n'est pas utile.
- Tester. Le bouton « Tester l'événement » envoie un seul événement avec des valeurs d'exemple et affiche la commande réellement partie - et, en cas d'échec, sa cause.
Les deux voies#
Adresse sur le réseau#
Le photobooth appelle une adresse et y ajoute les valeurs comme paramètres :
http://127.0.0.1:8000?event_type=session_start¶m1=photo
event_type indique l'événement, param1 à param4 les valeurs supplémentaires. Les caractères spéciaux sont encodés, comme il est d'usage pour les adresses internet.
Un POST avec JSON peut être envoyé à la place :
{"event_type": "session_start", "param1": "photo"}
Le premier format convient aux scripts existants et aux appareils simples, le second aux récepteurs écrits récemment.
Programme sur cet ordinateur#
Le photobooth lance le programme indiqué et transmet les valeurs comme arguments dans un ordre fixe - d'abord le nom de l'événement, ensuite les valeurs supplémentaires :
Mon-Script.bat session_start photo
Le programme s'exécute sans fenêtre visible. Son répertoire de travail est le dossier où il se trouve ; les fichiers voisins s'appellent donc par leur seul nom.
Référence : les neuf événements#
Dans l'ordre du déroulement. Une valeur qu'un événement ne transmet pas reste vide mais garde sa place.
La session démarre#
L'invité a choisi le mode de prise de vue, la session est créée.
| Valeur | Contenu |
|---|---|
| 1 | Mode de prise de vue : photo, gif, boomerang ou ai_portrait |
Mon-Script.bat session_start photo
Le compte à rebours commence#
Arrive avant chaque prise de vue, donc quatre fois pour une mise en page à quatre images.
| Valeur | Contenu |
|---|---|
| 1 | Durée du compte à rebours - en secondes, au choix en millisecondes |
Mon-Script.bat countdown_start 3
Déclenchement#
Le moment de la prise de vue. Arrive également avant chaque image, juste avant que la photo ne soit prise.
Cet événement ne transmet aucune valeur supplémentaire.
Mon-Script.bat capture_start
Photo reçue de l'appareil#
L'appareil a livré une image et elle est sur le disque. N'arrive qu'avec un appareil photo ou hybride raccordé, pas avec une webcam - l'image y naît dans l'interface.
| Valeur | Contenu |
|---|---|
| 1 | Chemin complet du fichier d'origine de l'appareil |
Mon-Script.bat file_download "C:\...\sessions\20260918\dslr_raw\shot_01.jpg"
Le traitement commence#
Toutes les prises de vue sont là, l'image finie est calculée : détourage, filtre, mise en page. Selon les réglages, cela prend quelques secondes.
| Valeur | Contenu |
|---|---|
| 1 | Les fichiers source, séparés par des points-virgules |
| 2 | Chemin où l'image finie sera créée |
Mon-Script.bat processing_start "C:\...\shot_01.jpg;C:\...\shot_02.jpg" "C:\...\final.jpg"
Le chemin cible est déjà fixé avant tout calcul. Un script peut donc se préparer au lieu de fouiller le dossier. Le fichier lui-même n'existe pas encore à ce moment.
L'écran final apparaît#
L'image finie est affichée, l'invité décide de l'impression et du partage.
Cet événement ne transmet aucune valeur supplémentaire.
Mon-Script.bat sharing_screen
Travail d'impression envoyé#
Une impression a été lancée - par l'invité ou automatiquement.
| Valeur | Contenu |
|---|---|
| 1 | Chemin du fichier imprimé |
| 2 | Nombre de copies |
| 3 | Nom de l'imprimante |
Mon-Script.bat printing "C:\...\final.jpg" 2 "DS-RX1"
Ce qui est signalé, c'est que le travail a quitté le photobooth. Si le papier sort effectivement, seule l'imprimante le sait.
Envoi terminé#
Une image est arrivée sur la cible cloud.
| Valeur | Contenu |
|---|---|
| 1 | Chemin du fichier envoyé |
| 2 | Adresse vers l'image, si la cible en fournit une |
| 3 | Extension du fichier, par exemple jpg ou mp4 |
| 4 | Identifiant de la cible |
Mon-Script.bat file_upload "C:\...\final.jpg" "https://.../s/abc" jpg Mariage
La session se termine#
Le déroulement revient à l'écran d'accueil - après l'écran final, après expiration de la minuterie ou parce que l'invité a annulé.
Cet événement ne transmet aucune valeur supplémentaire.
Mon-Script.bat session_end
Ce qui arrive et quand#
Un passage complet avec une mise en page à deux images, impression et envoi :
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 Mariage
session_end
Avec une webcam, les lignes file_download manquent. Si l'invité annule, session_end arrive sans les lignes précédentes. Impression et envoi n'arrivent que s'ils sont activés et que l'invité les déclenche.
Lire correctement les valeurs#
Dans un fichier batch#
Les valeurs sont disponibles comme %~1, %~2 et ainsi de suite. Le tilde en fait partie : les valeurs contenant des espaces, des signes égal, des virgules ou des points-virgules sont transmises entre guillemets, et %~2 les retire. Avec %2, les guillemets resteraient dans le texte.
@echo off
if /i "%~1"=="printing" (
rem %~2 = fichier, %~3 = nombre, %~4 = imprimante
echo Impression de %~3 copies sur %~4
)
Les valeurs simples sans caractères spéciaux - par exemple une durée de compte à rebours - arrivent sans guillemets et se lisent aussi avec %2.
En PowerShell#
param([string]$Evenement, [string]$Valeur1, [string]$Valeur2, [string]$Valeur3, [string]$Valeur4)
Secondes ou millisecondes#
Par défaut la durée du compte à rebours sort en secondes. Certains appareils attendent des millisecondes - pour cela, l'espace d'administration propose la case « Indiquer la durée du compte à rebours en millisecondes ». 3 devient alors 3000.
Si une animation de compte à rebours reste éteinte ou se termine aussitôt, c'est presque toujours cette unité qui est en cause.
Exemples prêts à l'emploi#
Les fichiers se téléchargent, se placent dans un dossier dédié et s'inscrivent comme cible dans l'espace d'administration. Ils servent de point de départ et peuvent être modifiés.
Journaliser chaque événement#
Écrit chaque appel avec l'heure, l'événement et toutes les valeurs dans un fichier texte à côté du script. La première étape pour tout le reste.
Télécharger ausloeser-protokoll.bat
Piloter un appareil par le port série#
Envoie une commande au compte à rebours et une au déclenchement à un appareil sur COM3 - le schéma selon lequel fonctionnent les anneaux lumineux et commandes analogues. Commandes et port se saisissent en haut du script.
Télécharger ausloeser-seriell.bat
Copier et renommer les images finies#
Dépose chaque image finie également dans un dossier cible, avec la date et l'heure dans le nom. Utile pour un photographe qui travaille en parallèle.
Télécharger ausloeser-kopieren.ps1
Un petit récepteur pour la voie réseau#
Un programme qui écoute une adresse et affiche chaque événement. Pour essayer la voie réseau avant de raccorder l'appareil cible. Nécessite un environnement Python installé.
Télécharger ausloeser-empfaenger.py
Domotique#
Des systèmes comme Home Assistant, ioBroker ou Node-RED acceptent un appel par le réseau. Leur adresse s'inscrit comme cible, par exemple :
http://192.168.1.50:8123/api/webhook/photobooth
Une automatisation s'y déclenche alors. L'événement figure dans event_type, et comme les valeurs arrivent en paramètres, le début et la fin de session se distinguent sans créer une adresse par événement.
Si le système attend du JSON plutôt que des paramètres, le format se change dans l'espace d'administration.
Dépannage#
Rien n'arrive du tout#
Vérifier dans cet ordre :
- « Utiliser les déclencheurs » est-il activé et enregistré ?
- L'événement concerné est-il coché ?
- Pour un programme, le champ contient-il le chemin complet avec l'extension ?
- Que dit le bouton « Tester l'événement » ? Il affiche la commande qui part et, en cas d'échec, sa cause.
- L'écriture est-elle autorisée dans le dossier où le script veut créer son fichier ?
Le script s'exécute mais ne fait rien#
Un script qui cherche des fichiers voisins dans le dossier du photobooth ne les trouve pas - il s'exécute dans son propre dossier. Les chemins internes doivent donc être complets ou s'appuyer sur %~dp0, le dossier du script.
Les valeurs sont à la mauvaise place#
Presque toujours la différence entre %2 et %~2. Voir plus haut « Lire correctement les valeurs ».
Le déroulement pour l'invité se bloque#
Cela ne doit pas arriver, et ce n'est alors pas dû au déclencheur : le photobooth attend au plus le délai réglé puis poursuit, même si la cible ne répond pas. Le délai peut être raccourci si un appareil lent est en jeu.
Un événement arrive plusieurs fois#
C'est généralement normal : compte à rebours et déclenchement arrivent avant chaque prise de vue. Pour une mise en page à quatre images, donc quatre fois.