İçeriğe geç
Teknik rehber Editör onaylı Orta 30 dk

Home Assistant otomasyonlarında mode ve max ayarlarıyla çakışan tetiklemeyi yönetme

Aynı otomasyon kısa aralıkla iki kez tetiklendiğinde ışık yanıp sönüyor, röle üst üste çekiliyor ya da bildirimler çoğalıyor. Bu rehberde single, restart, queued ve parallel modlarının gerçekte ne yaptığını, max sınırını, koşul kilidini ve trace üzerinden teşhisi adım adım ele alıyorum.

Gülay ÖztürkYapay zeka Editör: Gülay Öztürk Yayın: Güncelleme: Sürüm 1 Home Assistant 1 okunma 0 faydalı

Gerekenler

6 kalem
  • Home Assistant 2024.x veya üzeri bir kurulum (çalışan bir test otomasyonu)
  • Dosya düzenleyici veya Studio Code Server eklentisi
  • En az bir hareket/durum sensörü ve bir ışık ya da anahtar varlığı
  • Geliştirici araçlarına erişim (Şablonlar ve Durumlar sekmeleri)
  • Yedek: config klasörünün kopyası veya bir önceki yaml sürümü
  • İsteğe bağlı: input_boolean yardımcı öğesi (ortak kilit için)

Kapsam ve sorunun kaynağı

Home Assistant'ta bir otomasyonun tetikleyicisi iki kez üst üste çalıştığında varsayılan davranış sessizdir: ikinci çalıştırma hiç başlamaz ve bunu ancak trace ekranında görürsünüz. Buna karşılık mode ayarını bilmeden yazılmış otomasyonlarda, özellikle delay içeren bloklarda şu tablo çıkar:

  • Işık otomasyonu 2 dakikalık gecikmeyle kapanıyor, ikinci hareket geldiğinde süre uzamıyor ve ışık ortada sönüyor.
  • Röle çıkışı olan bir otomasyon art arda tetiklenince kontak üst üste çekiliyor, endüktif yükte ark süresi uzuyor.
  • Bildirim otomasyonu aynı olay için üç mesaj gönderiyor.

Bu yazı yazılım tarafıyla sınırlı. YAML, şablon ve trace üzerinden gidiyoruz; tesisata dokunmuyoruz.

Yapay zeka ile çizilmiş şematik illüstrasyon: Home Assistant otomasyonlarında mode ve max ayarlarıyla çakışan tetiklemeyi yönetme

Görsel yapay zeka ile oluşturuldu.

Modların gerçekten yaptığı iş

mode dört değer alır. Otomasyonun alias satırının hemen altına yazılır.

mode Davranış Tipik kullanım
single Çalışırken gelen tetiklemeyi atlar (varsayılan) Röle darbesi, tek seferlik iş
restart Çalışanı durdurur, yeni tetiklemeyle baştan başlar Gecikmeli ışık, zaman aşımı sayacı
queued Tetiklemeleri sıraya alır, tek tek çalıştırır Bildirim, dosya yazma
parallel Her tetiklemeyi eşzamanlı başlatır Bağımsız kanallar

max yalnızca queued ve parallel için anlamlıdır; diğer iki modda yok sayılır. max_exceeded ise sınır aşıldığında ne olacağını belirler: silent, warning veya error. Hata ayıklarken warning seçin, günlükte iz bırakır.

automation:
- alias: "Koridor isigi hareket"
id: koridor_hareket
mode: restart
max_exceeded: warning
triggers:
- trigger: state
entity_id: binary_sensor.koridor_hareket
to: "on"
actions:
- action: light.turn_on
target:
entity_id: light.koridor
- delay: "00:02:00"
- action: light.turn_off
target:
entity_id: light.koridor

Bu blokta restart seçilmesinin nedeni şu: ikinci hareket geldiğinde 2 dakikalık sayaç sıfırdan başlar, ışık koridorda kimse kalmadığında söner. single ile yazsaydınız ikinci tetikleme tamamen yok sayılır, süre uzamazdı.

Eski sürümlerden gelen platform: ve service: anahtarları hâlâ çalışır; yeni dosyalarda trigger, condition, action üçlüsünü kullanmak trace okunabilirliğini artırıyor.

Adım adım çakışan otomasyonu düzeltme

  1. Ayarlar > Otomasyonlar ekranında sorunlu otomasyonun son tetiklenme zamanına bakın. Saniyeler içinde iki kayıt varsa çakışma gerçek.
  2. Otomasyonu açın, sağ üstteki üç noktadan Traces (İzler) ekranına girin. Üstteki çalıştırma listesinde ikinci satır "skipped" ya da "already running" ise mod yanlış seçilmiş demektir.
  3. Otomasyonun amacını tek cümleyle yazın:
Faydalı buldum Henüz değerlendirilmedi

Rehberler topluluk üyelerince yazılır ve editörlerce incelenir; yine de bilgilendirme amaçlıdır. Elektrik, batarya, gaz ve tesisat işlerinde yetkili bir uzmana danış. Hatalı veya tehlikeli bir yönlendirme görürsen “Raporla” ile bildir.

Emin misin?