Harici programlar için tetikleyiciler
Fotoğraf kabini akışının adımlarını dışarıya bildirir: ağdaki bir adrese veya kendi bilgisayarındaki bir programa. Böylece ayrı bir bölümü olmayan teknik bağlanabilir.
Bu, yönetim alanında "Işık/aksesuar kontrolü" > "Harici programlar için tetikleyiciler" altında açılır. Bu bölüm oraya neyin ulaştığını ve bununla nasıl çalışılacağını anlatır.
Ne işe yarar#
Bununla çözülebilecek uygulamadan birkaç görev:
- Kendi yazılımı olan halka ışığı veya flaş sistemini kontrol etmek. Geri sayımda açmak, çekim anında veya iptal durumunda kapatmak.
- Bir oturum başlar başlamaz bir prizi açmak ve kapanış ekranından sonra yeniden kapatmak - bir ev otomasyonu üzerinden.
- Hazır fotoğrafları iletmek: kopyalamak, yeniden adlandırmak, bir klasöre koymak, bir görüntü düzenleme programına vermek.
- Fotoğraf kabinine sormadan kaç oturum ve baskı yapıldığını saymak.
- Sis makinesi, ışık orgu, konfeti topu - bir sinyale tepki veren her şey.
- Paralel bir görüntü çalıştırmak, örneğin yan odada o anda ne olduğunu gösteren ikinci bir ekran.
Fotoğraf kabini yanıt beklemez ve yanıtları değerlendirmez. Yalnızca bildirir.
Üç adımda kurulum#
- Hedefi belirleyin. Ya ağdaki bir adres ya da fotoğraf kabininin bilgisayarındaki bir program. Bir programda alana dosya uzantısıyla birlikte tam yol girilir; "Program seç" düğmesi onu yazmak yerine bulur.
- Olayları işaretleyin. Yalnızca işaretli olanlar bildirilir. Önce neyin ne zaman geldiğini öğrenmek isteyen, önce hepsini işaretler ve daha sonra gerekmeyenleri kaldırır.
- Test edin. "Olayı test et" düğmesi tek bir olayı örnek değerlerle gönderir ve gerçekten gönderilen komutu gösterir - bir hata durumunda ayrıca nedenini.
İki yol#
Ağdaki adres#
Fotoğraf kabini bir adresi çağırır ve değerleri parametre olarak ekler:
http://127.0.0.1:8000?event_type=session_start¶m1=photo
event_type olayı, param1 ile param4 arası ek değerleri belirtir. Özel karakterler internet adreslerinde olduğu gibi kodlanır.
İsteğe bağlı olarak bunun yerine JSON ile bir POST gönderilir:
{"event_type": "session_start", "param1": "photo"}
İlk biçim mevcut betiklere ve basit cihazlara, ikincisi yeni yazılan alıcılara uyar.
Bu bilgisayardaki program#
Fotoğraf kabini belirtilen programı başlatır ve değerleri sabit sırayla argüman olarak verir - önce olay adı, ardından ek değerler:
Mein-Skript.bat session_start photo
Program görünür bir pencere olmadan çalışır. Çalışma dizini bulunduğu klasördür - komşu dosyalar yani yalnızca adlarıyla çağrılabilir.
Başvuru: on bir olay#
Akış sırasına göre. Bir olayın iletmediği değer boş kalır ama yerini korur.
Oturum başlıyor#
Misafir çekim modunu seçti, oturum oluşturuldu.
| Değer | İçerik |
|---|---|
| 1 | Çekim modu: photo, gif, boomerang veya ai_portrait |
Mein-Skript.bat session_start photo
Geri sayım başlıyor#
Her tek çekimden önce gelir, dört fotoğraflı bir düzende yani dört kez.
| Değer | İçerik |
|---|---|
| 1 | Geri sayımın süresi - saniye olarak, isteğe bağlı olarak milisaniye olarak |
Mein-Skript.bat countdown_start 3
Geri sayım bitiyor veya iptal ediliyor#
Geri sayım bitti. Her "Geri sayım başlıyor"dan sonra tam olarak bir kez gelir - ya sıfırda, deklanşörden hemen önce, ya da geri sayım daha önce iptal edildiği için.
| Değer | İçerik |
|---|---|
| 1 | Sıfıra ulaşıldığında completed; iptalde aborted |
Mein-Skript.bat countdown_stop completed
Misafir iptal ettiğinde veya oturum sıfıra ulaşılmadan başka bir nedenle bittiğinde geri sayım iptal edilir. aborted'dan sonra capture_start gelmez - geri sayımda açılmış bir halka ışık burada yeniden kapanmalıdır.
Deklanşör#
Çekim anı. Yine her tek çekimden önce, fotoğraf oluşmadan hemen önce gelir.
Bu olay ek değer taşımaz.
Mein-Skript.bat capture_start
Çekim kameradan geldi#
Kamera bir görüntü teslim etti ve görüntü diskte duruyor. Yalnızca bağlı bir fotoğraf veya aynasız kamerada gelir, web kamerasında gelmez - orada görüntü ancak arayüzde oluşur.
| Değer | İçerik |
|---|---|
| 1 | Değiştirilmemiş kamera dosyasının tam yolu |
Mein-Skript.bat file_download "C:\...\sessions\20260918\dslr_raw\shot_01.jpg"
İşleme başlıyor#
Tüm çekimler hazır, bitmiş görüntü şimdi hesaplanıyor: arka plan ayırma, filtre, düzen. Ayara bağlı olarak birkaç saniye sürer.
| Değer | İçerik |
|---|---|
| 1 | Kaynak dosyalar, noktalı virgülle ayrılmış |
| 2 | Bitmiş görüntünün oluşacağı yol |
Mein-Skript.bat processing_start "C:\...\shot_01.jpg;C:\...\shot_02.jpg" "C:\...\final.jpg"
Hedef yol hesaplamadan önce belirlenmiştir. Bir betik yani klasörü aramak yerine hazırlanabilir. Dosyanın kendisi bu anda henüz yoktur.
Çekilişte kazanç#
Bir oturum çekilişte kazandı. Oturumun ilk tamamlanmasında bildirilir; çekimin tekrarlanması yeniden bildirmez.
| Değer | İçerik |
|---|---|
| 1 | Ödülün adı |
| 2 | Kazanç kodu, örneğin K7P-4XM |
Mein-Skript.bat prize_won "Ücretsiz içecek" K7P-4XM
Kapanış ekranı görünüyor#
Bitmiş görüntü görülebilir, misafir baskıya ve paylaşıma karar verir.
Bu olay ek değer taşımaz.
Mein-Skript.bat sharing_screen
Baskı işi gönderiliyor#
Bir baskı başlatıldı - misafir tarafından veya otomatik olarak.
| Değer | İçerik |
|---|---|
| 1 | Basılan dosyanın yolu |
| 2 | Baskı adedi |
| 3 | Yazıcının adı |
Mein-Skript.bat printing "C:\...\final.jpg" 2 "DS-RX1"
İşin fotoğraf kabininden çıktığı bildirilir. Kâğıdın gerçekten çıkıp çıkmadığını yalnızca yazıcı bilir.
Yükleme tamamlandı#
Bir görüntü bulut hedefine ulaştı.
| Değer | İçerik |
|---|---|
| 1 | Yüklenen dosyanın yolu |
| 2 | Hedef sağlıyorsa görüntünün adresi |
| 3 | Dosya uzantısı, örneğin jpg veya mp4 |
| 4 | Hedefin tanımlayıcısı |
Mein-Skript.bat file_upload "C:\...\final.jpg" "https://.../s/abc" jpg Hochzeit
Oturum bitiyor#
Akış başlangıç ekranına döner - kapanış ekranından sonra, zamanlayıcı dolduktan sonra veya misafir iptal ettiği için.
Bu olay ek değer taşımaz.
Mein-Skript.bat session_end
Ne zaman ne gelir#
İki çekimli bir düzen, baskı ve yüklemeyle eksiksiz bir geçiş:
session_start photo
countdown_start 3
countdown_stop completed
capture_start
file_download C:\...\shot_01.jpg
countdown_start 3
countdown_stop completed
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
Web kamerasında file_download satırları yoktur. Misafir iptal ederse session_end önceki satırlar olmadan gelir. İptal bir geri sayıma denk gelirse session_end'den hemen önce ayrıca countdown_stop aborted gelir. Baskı ve yükleme yalnızca açıksa ve misafir onları başlatırsa gelir.
Değerleri doğru okuma#
Bir toplu iş dosyasında#
Değerler %~1, %~2 vb. olarak kullanılabilir. Tilde gereklidir: Boşluk, eşittir işareti, virgül veya noktalı virgül içeren değerler tırnak içinde verilir ve %~2 bunları yeniden kaldırır. %2 ile metinde yer alırlardı.
@echo off
if /i "%~1"=="printing" (
rem %~2 = Datei, %~3 = Anzahl, %~4 = Drucker
echo Es werden %~3 Ausdrucke auf %~4 gemacht
)
Özel karakter içermeyen basit değerler - örneğin bir geri sayım süresi - tırnaksız gelir ve %2 ile de okunabilir.
PowerShell'de#
param([string]$Ereignis, [string]$Wert1, [string]$Wert2, [string]$Wert3, [string]$Wert4)
Saniye veya milisaniye#
Geri sayım süresi fabrika ayarında saniye olarak gönderilir. Bazı cihazlar milisaniye bekler - bunun için yönetim alanında "Geri sayım süresini milisaniye olarak ilet" onay kutusu vardır. 3 o zaman 3000 olur.
Bir geri sayım animasyonu karanlık kalıyorsa veya hemen bitiyorsa, neredeyse her zaman bu birimden kaynaklanır.
Hazır örnekler#
Dosyalar indirilebilir, ayrı bir klasöre konabilir ve yönetim alanında hedef olarak girilebilir. Başlangıç noktası olarak düşünülmüştür ve değiştirilebilir.
Her olayı kaydet#
Her çağrıyı zaman, olay ve tüm değerlerle betiğin yanındaki bir metin dosyasına yazar. Diğer her şey için ilk adım.
ausloeser-protokoll.bat dosyasını indir
Seri port üzerinden bir cihazı kontrol etme#
Geri sayımda ve deklanşörde COM3'teki bir cihaza birer komut gönderir ve iptal edilen bir geri sayımdan sonra onu yeniden kapatır - halka ışıkların ve benzer kontrol birimlerinin çalıştığı düzen. Komutlar ve bağlantı betiğin üstüne girilir.
ausloeser-seriell.bat dosyasını indir
Hazır fotoğrafları kopyalama ve yeniden adlandırma#
Her hazır fotoğrafı ayrıca adında tarih ve saat bulunan bir hedef klasöre koyar. Paralel olarak çalışmaya devam eden bir fotoğrafçı için yararlıdır.
ausloeser-kopieren.ps1 dosyasını indir
Ağ yolu için küçük bir alıcı#
Bir adresi dinleyen ve her olayı gösteren bir program. Asıl hedef cihaz bağlanmadan önce ağ yolunu denemek için. Kurulu bir Python çalışma ortamı gerektirir.
ausloeser-empfaenger.py dosyasını indir
Ev otomasyonu#
Home Assistant, ioBroker veya Node-RED gibi sistemler ağ üzerinden bir çağrı alır. Hedef olarak onların adresi girilir, örneğin:
http://192.168.1.50:8123/api/webhook/fotobox
Orada o zaman bir otomasyon tetiklenir. Olay event_type içinde durur ve değerler parametre olarak geldiği için her olay için ayrı bir adres oluşturmadan oturum başlangıcı ile oturum sonu ayırt edilebilir.
Sistem parametre yerine JSON bekliyorsa biçim yönetim alanında değiştirilir.
Sorun giderme#
Hiçbir şey ulaşmıyor#
Sırayla kontrol edin:
- "Tetikleyicileri kullan" açık ve kaydedilmiş mi?
- İstenen olay işaretli mi?
- Bir programda alanda dosya uzantısıyla birlikte tam yol var mı?
- "Olayı test et" düğmesi ne diyor? Gönderilen komutu ve bir hata durumunda nedenini gösterir.
- Betiğin dosyasını oluşturmak istediği klasöre yazılabiliyor mu?
Betik çalışıyor ama hiçbir şey yapmıyor#
Fotoğraf kabininin klasöründe komşu dosyalar arayan bir betik onları bulamaz - kendi klasöründe çalışır. Bu yüzden betik içindeki yolları ya tam olarak belirtin ya da %~dp0 ile kendi klasörüne bağlayın.
Değerler yanlış yerde duruyor#
Neredeyse her zaman %2 ile %~2 arasındaki farktır. Yukarıda "Değerleri doğru okuma" altına bakın.
Misafirin akışı takılıyor#
Bu olmamalıdır ve o zaman tetikleyiciden kaynaklanmaz: Fotoğraf kabini en fazla ayarlanan zaman sınırı kadar bekler ve ardından, hedef yanıt vermese de devam eder. Yavaş bir cihaz söz konusuysa zaman sınırı kısaltılabilir.
Bir olay birden çok kez geliyor#
Bu çoğunlukla doğrudur: Geri sayım başlangıcı, geri sayım sonu ve deklanşör her tek çekimden önce gelir. Dört fotoğraflı bir düzende yani dört kez.