Home Assistant'ta Komut Dosyaları: Kullanımları, Modları ve Pratik Örnekler

Son Güncelleme: 17/03/2026
Yazar: isaac
  • Home Assistant'taki komut dosyaları, mantığı yürütülme zamanından ayırarak, yeniden kullanılabilir eylem dizileri tanımlamanıza olanak tanır.
  • Komut dosyalarının birden fazla kez çağrıldığında nasıl davranacağını kontrol eden farklı yürütme modları (tekli, yeniden başlatma, sıraya alma, paralel) vardır.
  • Değişkenlerin ve alanların kullanımı, komut dosyalarını karmaşık entegrasyonlar ve yeniden kullanım için ideal, yapılandırılabilir parçalara dönüştürür.
  • Otomasyonlar, sahneler, gruplar ve bölgelerle birlikte komut dosyaları, sağlam, güvenli ve bakımı kolay bir ev otomasyon sistemi oluşturmanıza olanak tanır.

Home Assistant'taki komut dosyaları

Eğer bir süredir Home Assistant kullanıyorsanız, otomasyonlar, sahneler ve gruplar kavramlarına muhtemelen zaten aşinasınızdır, ancak bunların ne anlama geldiği konusunda o kadar net olmayabilirsiniz... Home Assistant'ta komut dosyaları ve bunları kullanmanın ne zaman faydalı olduğuBu gerçekten üzücü, çünkü doğru kullanıldıklarında ev otomasyon sisteminizden en iyi şekilde yararlanmanızı sağlayan en güçlü araçlardan biridirler.

Bu yazıda, komut dosyalarının ne olduğunu, otomasyonlardan nasıl farklı olduklarını ve hem komut dosyaları hem de komut dosyaları nasıl yapılandırıldığını inceleyeceğiz. Home Assistant komut dosyası sözdizimini kullanan YAML'ye benzer grafiksel arayüz.Bu, farklı yürütme modlarını, değişkenlerin nasıl aktarılacağını, bunların bitmesini nasıl bekleyeceğinizi (veya beklemeyeceğinizi) ve bunları sahneler, gruplar ve bölgelerle nasıl entegre edeceğinizi içerir. Amaç, bu okumanın sonunda, bunları günlük çalışmalarınızda nasıl kullanacağınıza dair net ve pratik bir anlayışa sahip olmanızdır.

Home Assistant'ta komut dosyası nedir ve ne için kullanılır?

Home Assistant'ta bir komut dosyası temelde şudur: Sizin belirlediğiniz sırayla yürütülen eylemler dizisiBunlar kendiliğinden tetiklenmez: arayüzden, başka bir otomasyondan, başka bir komut dosyasından veya bir servis aracılığıyla "açtığınızda" (komut dosyasını çağırdığınızda) çalışırlar.

Komut dosyası entegrasyonu bir Her komut dosyası için, script.name_you_choose türünde bir varlık.Bu varlık, pratik amaçlar açısından, tıpkı light.turn_on veya switch.turn_off gibi bir hizmeti etkinleştirebileceğiniz, devre dışı bırakabileceğiniz veya eylemlerden çağırabileceğiniz bir şey gibi davranır.

Komut dosyalarının en güzel yanı, tekrarlayan mantığı kapsüllemenize olanak sağlamalarıdır: aynı şeyi tekrar tekrar kopyalamak yerine çeşitli otomasyonlardaki adımların sırasıTekrar kullanılabilir bir komut dosyası oluşturup tüm bunlardan çağırabilirsiniz. Bu, yapılandırmayı basitleştirir, hataları azaltır ve kurulumunuzun bakımını çok daha kolay hale getirir.

Basit bir örnek: "Gece modu"nu (ışıkları kapatma, perdeleri indirme, ısıtmayı ayarlama ve yumuşak aydınlatma sahnesini etkinleştirme) yöneten bir komut dosyanız olabilir ve ardından Bu komut dosyasını farklı otomasyonlardan çağırın.Belirli bir saatte veya herkesin uykuya daldığını fark ettiğinizde fiziksel bir düğmeye basarak.

Daha teknik bir bakış açısıyla, komut dosyaları şunlara dayanmaktadır: YAML tabanlı Home Assistant komut dosyası sözdizimiOtomasyonla aynı felsefeyi kullanır, ancak tetikleyiciler olmadan. Tetiklenme zamanını siz belirlersiniz; komut dosyası yalnızca neyin yapılacağını ve nasıl yapılacağını tanımlar.

Komut dosyaları, otomasyonlar, sahneler, gruplar ve bölgeler arasındaki farklar

Home Assistant'ı ilk kullanmaya başladığınızda, komut dosyaları, otomasyonlar, sahneler, gruplar ve bölgeler genellikle benzer şeyler yapıyor gibi göründükleri için kafanız karışabilir. Ancak her birinin kendine özgü bir amacı vardır. ev otomasyon ekosistemi içinde çok özel bir rol.

Otomasyonlar "ne zaman" sorusunun cevabını belirler: bir veya daha fazla tetikleyiciye (zaman, hareket algılama, durum değişikliği, olay vb.), isteğe bağlı koşullara ve bir dizi eyleme sahiptirler. Buna karşılık, Senaryolar "ne" ve "nasıl" sorularının cevaplarını tanımlar.Yani, eylemlerin sırası, ancak bunların ne zaman gerçekleştirildiği değil.

Bu sahneler ise bir dizi cihazı belirli bir durumda bırakacak şekilde tasarlanmıştır. Somut nihai durum: hangi ışıklar yanıyor, hangi parlaklık ve renkte, hangi perdeler açık. Hâlâ artış veya azalışlar, hangi klimanın aktif olduğu vb. durumlar söz konusu. Koşullu mantık veya döngüler içermiyorlar; sadece önceden tanımlanmış bir durumu "çiziyorlar".

Gruplar ve bölgeler farklı bir ligde faaliyet gösterir: bir grup, benzer varlıkları (örneğin, tek bir ışık grubundaki birkaç ışık) bir araya getirir. Bunları tek bir üniteymiş gibi açıp kapatabilirsiniz.Bölgeler genellikle varlık ve coğrafi konum belirleme (ev, iş, spor salonu bölgeleri) için kullanılır, böylece bir cihazın veya kişinin bir alanın içinde mi yoksa dışında mı olduğunu anlayabilirsiniz.

Genellikle sorulan soru şudur: "Hangisini kullanmak daha iyidir: gruplar, bölgeler mi yoksa sahneler mi?" Aslında bunlar birbirleriyle rekabet etmezler; birbirlerini tamamlarlar. Sahneler durumları tanımlar, gruplar ortak kontrolü basitleştirir ve bölgeler konum tespiti için kullanılır.Komut dosyaları, karmaşık iş akışlarını düzenlemenin temel aracıdır; otomasyonlar ise bunların ne zaman uygulanacağına karar vermekten sorumludur.

  Şifre Olmadan Bitlocker'ın Kilidini Açma | Seçenekler

Komut dosyası ne zaman kullanılır, otomasyon ne zaman kullanılır?

Yeni başlayanlar için sıkça sorulan bir soru, ne zaman komut dosyası (script) kullanılması gerektiği ve ne zaman otomasyonun daha iyi olduğudur. Genel olarak cevap şudur: Otomasyonlar olaylara tepki vermek için idealdir. (Bir kapı açılır, gece çöker, biri eve gelir) ve komut dosyaları, bu olaylara yanıt olarak çalıştırmak istediğiniz mantığı paketlemek için mükemmeldir.

Hareket algılandığında ışığı açmak gibi çok basit bir şeye ihtiyacınız varsa, muhtemelen bir veya iki işlem gerçekleştiren basit bir otomasyonla halledebilirsiniz. Ancak işlemler uzarsa, birden fazla servis çağrısı, bekleme, iç koşullar vb. içerirse, olağan yaklaşım şudur: Bu kısmı ayrı bir betiğe çıkarın. ve otomasyonun sadece aramayı halletmesine izin verin.

Komut dosyalarının öne çıktığı bir diğer durum ise, aynı eylem dizisini birden fazla yerde tekrar kullanmak istediğiniz zamandır. Bu mantığı üç ayrı otomasyonda tekrarlamak yerine, Bir komut dosyası oluşturursunuz ve bunu üç yerden çağırırsınız.Bir şey değiştirmeye karar verirseniz, sadece betiği güncelleyin ve işiniz bitti.

Harici cihazlarla veya biraz karmaşık hizmetlerle etkileşim kurarken de çok kullanışlıdırlar; bu tür durumlarda özelliğe ihtiyacınız olur. birkaç zincirleme adım, yeniden deneme, bekleme veya durum kontrolüTüm bunların tek bir betikte merkezileştirilmesi, sistemin hata ayıklaması ve bakımı konusunda büyük kolaylık sağlar.

Özetlemek gerekirse: eğer asıl ihtiyacınız "X olduğunda bir şey yap" ise, otomasyonla başlayın; eğer istediğiniz "bu akışı karmaşık hale getirmek ve birden fazla yerden çağrılabilmesini sağlamak" ise, Bunu bir komut dosyası olarak ayarlayın ve tekrar kullanın..

Komut dosyaları oluşturma yöntemleri: grafik arayüz ve YAML

Home Assistant, komut dosyaları oluşturmanıza iki şekilde olanak tanır: web arayüzünden (yerleşik komut dosyası düzenleyici) veya YAML dosyalarında manuel olarak. Her iki seçenek de tamamen geçerlidir ve özellikle de komut dosyalarını kullanmak istiyorsanız genellikle oldukça iyi bir şekilde birlikte çalışırlar. Görsel konforu gelişmiş esneklikle birleştirin..

Arayüzde, komut dosyaları bölümüne giderek sıfırdan yeni bir komut dosyası oluşturabilirsiniz. Düzenleyici, ad, açıklama ve simge tanımlamanıza ve "blok" stilinde eylemler eklemenize olanak tanır (ışığı açma, X saniye bekleme, servis çağırma, şablon çalıştırma vb.). YAML sözdizimine henüz aşina olmayanlar için, Bu seçenek en kullanıcı dostu olanıdır ve biçimlendirme hatalarına en az eğilimlidir..

Eğer tam kontrol istiyorsanız, komut dosyalarını her zaman configuration.yaml dosyanıza veya !include ile dahil edilen ayrı bir dosyaya yazabilirsiniz, örneğin. Komut dosyalarınız için WSL kullanmakYAML'de komut dosyası takma adını, sırasını, modlarını, alanlarını tanımlarsınız... ve tüm gücünden yararlanabilirsiniz. Jinja şablonları da dahil olmak üzere Home Assistant komut dosyası sözdizimi. Gelişmiş mantık için.

Yöntem ne olursa olsun, Home Assistant dahili olarak aynı yürütme mantığını kullanır. Kullanıcı arayüzü tarafından oluşturulan bir komut dosyası ile saf YAML ile tanımlanan bir komut dosyası arasında güç açısından hiçbir fark yoktur; fark, şu gerçeğe dayanmaktadır: Kullanıcı arayüzü (UI) daha görsel bir ortam sağlarken, YAML metin üzerinde daha doğrudan kontrol imkanı sunar..

Anlaşılması gereken önemli nokta, bir komut dosyasının "sıralamasının" sırayla gerçekleştirilecek eylemlerin bir listesi olduğu ve zaten bildiğiniz otomasyon seçeneklerinin (wait_template, choose, repeat, vb.) komut dosyaları içinde de mevcut olduğudur. son derece ayrıntılı otomasyon akışları.

Home Assistant'ta komut dosyası yürütme modları

Home Assistant'taki komut dosyalarının en önemli (ve genellikle gözden kaçan) kısımlarından biri de yürütme "modudur". Bu mod, komut dosyasının nasıl davranacağını belirler. Zaten çalışırken başlatmaya çalıştığınızdaBu durum, birden fazla otomasyondan çağrıldığında veya kullanıcı biraz sabırsız olup işlemi art arda birkaç kez çalıştırdığında sıkça yaşanır.

Home Assistant dört ana mod sunar: tekli, yeniden başlatma, kuyruğa alma ve paralelHer birinin kendine özgü koşulları vardır ve beklediğiniz davranışa en uygun olanı seçmek önemlidir.

kip tek En basit yöntem şu: Eğer komut dosyası zaten çalışıyorsa ve tekrar çalıştırmayı denerseniz, yeni bir çalıştırma başlatmaz. Bunun yerine, Home Assistant bir uyarı verir ve yeni denemeyi görmezden gelir. Bu, şu durumlarda faydalıdır: Senaryoyu kopyalamanın bir anlamı yok.Örneğin, çakışmasını istemediğiniz bir "her şeyi kapat" komut dosyası.

kip yenidenKomut dosyası hala çalışırken tekrar başlatıldığında, mevcut yürütme hemen durdurulur ve baştan yeniden başlatılır. Bu mod, önceliğin şu olduğu durumlarda idealdir: Son emir, emreden emir olsun.Örneğin, bir odanın aydınlatmasını ve iklimini bir profile göre ayarlayan bir komut dosyası düşünün ve her yeni çağrının bir öncekini geçersiz kılmasını istiyorsunuz.

  Kilitli LG telefonumu nasıl sıfırlayabilirim, sıfırlayabilirim veya geri yükleyebilirim?

kip Kuyruğa İşlemleri sıraya alır: komut dosyası çalışırken gelen her çağrı bir sıraya kaydedilir ve bir önceki işlem tamamlandığında yürütülür. Home Assistant, işlemlerin tamamlandığından emin olur. alındıkları sıraya göreBu özellik, işlemlerin üst üste gelmemesi gereken ancak hepsinin işlenmesi gereken durumlarda, örneğin aynı cihazı birden fazla hızlı istekle kontrol etmek gibi durumlarda çok kullanışlıdır.

Son olarak mod paralel Bu, her yeni çağrının bağımsız bir yürütme oluşturmasına olanak tanır, böylece Aynı komut dosyasının birden fazla iş parçacığı aynı anda çalıştırılabilir.Bu yöntem dikkatli kullanılmalıdır çünkü tüm bu iş parçacıkları aynı varlıkları manipüle ederse beklenmedik davranışlara neden olabilir, ancak engellemeyen görevler veya farklı kaynaklar üzerinde işlem yapan görevler için çok güçlüdür.

Komut dosyalarında değişken ve alan kullanımı

Komut dosyalarına değişkenler aktardığınızda, bu dosyalar ekstra bir esneklik kazanır. Sabit bir komut dosyası yerine, örneğin hangi ışığın açılacağını, hangi parlaklık seviyesinin kullanılacağını belirten bir "fonksiyon" gibi bir şeye sahip olabilirsiniz. Bir cihaz ne kadar süreyle açık tutulmalıdır?.

Bu işlem grafik arayüz üzerinden yapılır. komut dosyasına "alanlar" eklemekKomut dosyası düzenleyicisinde, üç noktalı menüyü açıp şu seçeneği belirleyebilirsiniz: Özel girişler tanımlamak için "Alan ekle" seçeneğini kullanın.Bunu yaptığınızda, her alan için ad, tür (metin, sayı, varlık seçici vb.) ve diğer seçenekleri yapılandırabileceğiniz bir Alanlar bölümü görünür.

Bu alanlar daha sonra tanımladığınız anahtar kullanılarak komut dosyası şablonlarında kullanılır. Örneğin, "parlaklık_seviyesi" (elbette bu şekilde daha doğru yazılır) adında bir alan oluşturursanız, eylemler içinde buna şu şekilde referans verebilirsiniz: Bu değeri kullanarak bir hizmeti ayarlayan bir şablon.Tıpkı bir ışığın parlaklığı gibi.

İlginç olan şu ki, bu komut dosyası arayüzün diğer bölümlerinden (örneğin, bir otomasyondan) kullanıldığında, Bu alanlar, düzenleyicide yapılandırılabilir giriş alanları olarak görünecektir.Bu sayede aynı betiği farklı parametrelerle yeniden kullanabilir ve mantığı tekrarlamadan işlem yapabilirsiniz.

Editörde tanımlanan alanlara ek olarak, bir komut dosyasına değişkenler de aktarabilirsiniz. eylem verileri içinde Çağırdığınızda. Bu, hem script.name varlığını doğrudan çağırdığınızda hem de script.turn_on hizmetini kullandığınızda çalışır ve gönderdiğiniz tüm anahtarlar, alan olarak tanımlanmamış olsalar bile, komut dosyası şablonlarında değişken olarak kullanılabilir olacaktır.

Komut dosyalarını çağırma: script.NAME ve script.turn_on

Home Assistant'ta bir eylemden komut dosyası çalıştırmanın iki ana yolu vardır: komut dosyasını doğrudan çağırmak. komut dosyası varlığı (örneğin, script.night_mode) Ya da genel servis betiği olan `script.turn_on`'u kullanarak ve hedef olarak varlığı belirterek.

İlk bakışta aynı gibi görünseler de, temel fark bekleme davranışında yatmaktadır. Komut dosyasını "doğrudan" çağırdığınızda (komut dosyası eylemi olarak kullanarak), onu çağıran otomasyon veya komut dosyası... Çağrılan komut dosyasının yürütülmesinin tamamlanmasını bekleyin. Sonraki adımlarınıza geçmeden önce.

Bu modda, çağrılan komut dosyası bir hata nedeniyle başarısız olursa ve işlem iptal edilirse, Bu işlemi başlatan komut dosyası veya otomasyon da iptal edilir.Bu, her şeyin atomik bir blok gibi davranması gerektiğinde çok kullanışlı bir davranıştır: ya her şey doğru şekilde yürütülür ya da üst düzey işlem iptal edilir.

Ancak, hizmeti kullanırsanız script.turn_on, bir veya daha fazla komut dosyasını çalıştırmak için kullanılır.Arayan kişi onların işlerini bitirmelerini beklemez. Sadece (sizin listelediğiniz sırayla) başlamalarını ister ve ardından takılmadan kendi işlemlerine devam eder.

Bu ikinci durumda, çağrılan komut dosyalarında oluşabilecek herhangi bir hata söz konusudur. Bu durum, aramayı yapan kişiyi etkilemez.Bu, "arka planda çalıştırma" modellerine kapı açar: Otomasyonunuz kendi görevlerine devam ederken, ağır işleri (örneğin, veri kaydetme, birden fazla cihazı ayarlama vb.) yapan bir komut dosyası başlatırsınız.

İlginç bir yöntem, script.turn_on'u daha sonraki bir bekleme işlemiyle (örneğin wait_template kullanarak) birleştirmektir. Arka plandaki komut dosyasının belirli bir duruma ulaşmasını bekleyin, ancak her şeyi çökertecek bir hata oluşmasına izin vermeyin.Bu, süreçleri birbirinden ayırmanın ve ev otomasyon sisteminizi ara sıra meydana gelen hatalara karşı daha dayanıklı hale getirmenin incelikli bir yoludur.

  DÜZELTME – Windows 10'da bu dosyayı görüntüleme izniniz yok

Komut dosyaları, güvenlik ve en iyi uygulamalar

Karmaşık bir ev otomasyon sisteminde, komut dosyaları yalnızca ışıkları açmak veya panjurları hareket ettirmekle kalmaz; aynı zamanda hassas cihazları kontrol edebilir, verileri açığa çıkarabilir veya harici hizmetlerle etkileşim kurabilir. Bu nedenle, komut dosyalarının doğru şekilde uygulanması önemlidir. Home Assistant'ta komut dosyaları tasarlarken iyi güvenlik uygulamaları.

Komut dosyalarınız uzak servislere, API'lere bağlanıyorsa veya token'ları ve kimlik bilgilerini işliyorsa, Home Assistant'ın gizli seçeneklerini kullanmalısınız. Parolaları veya API anahtarlarını doğrudan YAML dosyasına kodlayın.Bu sayede yapılandırmayı daha temiz tutarsınız ve kod parçacıklarını paylaşıyorsanız hassas bilgilerin sızmasını önlersiniz.

Hassas işlemleri gerçekleştirmeden önce komut dosyalarınıza bazı durum kontrol mantığı eklemeniz de önerilir. Örneğin, bir cihazın beklenen durumda olup olmadığını veya belirli işlemleri gerçekleştirmeden önce cihazın beklenen durumda olup olmadığını doğrulayabilirsiniz. Güvenlik koşulları sağlanmıştır (evde kimse yok, kapılar kilitli, vb.). Fiziksel erişimi etkileyen emirler vermeden önce.

Özelleştirilmiş çözümlerin, yapay zekanın veya veri analizi sistemlerinin entegre edildiği daha gelişmiş ortamlarda siber güvenlik kritik önem kazanır. Bu senaryolarda, yaygın olarak görülen bir durumdur. Home Assistant'ı belirli geliştirmeler ve güvenlik denetimleriyle birleştirin.Bu hizmet, harici sağlayıcılar veya alanında uzman kişiler aracılığıyla sağlanabilir.

Buna paralel olarak, komut dosyalarınızın ve otomasyonlarınızın güncelliğini yitirmediğinden, silinmiş varlıklara atıfta bulunmadığından ve Garip davranışlara yol açabilecek gereksiz mantık biriktirmezsiniz.Temiz ve düzenli bir zemin, istikrarlı ve güvenli bir kurulumun sürdürülmesi için çok önemlidir.

Akıllı evlerde komut dosyaları ve veri analizi

Komut dosyalarının önemli katkı sağlayabileceği bir diğer alan ise veri toplama ve işleme alanıdır. Sonuç olarak, Home Assistant enerji tüketimi, sıcaklıklar, cihaz durumu, varlık durumu ve benzeri konularda çok fazla bilgi kaydeder ve Bu komut dosyaları, verilerin hazırlanmasında birleştirici bir unsur görevi görebilir. göndermeden veya işleme almadan önce.

Örneğin, belirli değerleri periyodik olarak toplayan ve bunları Power BI panosu veya başka bir görselleştirme aracı gibi bir iş analizi sistemine gönderen veya işleyen komut dosyaları oluşturabilirsiniz. Analiz için Python. Bu şekilde, Ev otomasyon sisteminizi, kullanım alışkanlıkları ve enerji verimliliği hakkında gerçek veriler sağlayan bir kaynağa dönüştürüyorsunuz.Bu da daha bilinçli kararlar vermenize yardımcı olur.

Bunu gelişmiş mantık veya harici yapay zeka modelleriyle birleştirirseniz, bir adım daha ileri gidebilirsiniz: komut dosyalarınız, kalıpları analiz eden, zamanlama ayarlamaları öneren veya hataları tespit eden hizmetleri çağırabilir. cihaz davranışındaki anormalliklerTüm bunlar, otomasyonlar veya ek komut dosyaları aracılığıyla Home Assistant'a entegre edilebilir.

Bu gibi senaryolarda, özel yazılım geliştirme şirketlerinin Home Assistant'ı kişiselleştirilmiş kontrol panelleri, tüketim tahmin algoritmaları veya akıllı uyarı sistemleriyle bağlayan özel çözümler sunması yaygındır. Komut dosyaları, bu bağlantıların kurulmasını sağlayan pratik mekanizma haline gelir. Home Assistant, bu harici ekosistemle iletişim kurar..

İlginç olan şu ki, iyi bir planlamayla evinizi sadece daha konforlu ve otomatik hale getirmekle kalmaz, aynı zamanda veri açısından daha verimli ve şeffaf hale de getirebilirsiniz; her şey bir sistem üzerinden yönetilir. İyi tasarlanmış komut dosyaları ve otomasyonlar, bunları doğru zamanda tetikler..

Tüm bunları gördükten sonra, Home Assistant'taki komut dosyalarının gelişmiş bir yenilikten çok daha fazlası olduğu oldukça açık: bunlar, kurulumunuzun karmaşık mantığını yapılandırmak, eylemleri yeniden kullanmak, "ne"yi "ne zaman"dan ayırmak, harici hizmetleri entegre etmek, güvenliği sağlamak ve verileri daha derinlemesine analiz için hazırlamak için kilit bir araçtır. Komut dosyaları, otomasyonlar, sahneler, gruplar ve bölgelerin mantıklı bir kombinasyonuyla, sisteminiz basit bir bağlı cihazlar koleksiyonundan karmaşık bir yapıya dönüşür. Tutarlı, esnek bir ev otomasyon platformu; kaosa dönüşmeden büyümeye hazır..

Copilot ile adım adım komut dosyaları oluşturun ve hata ayıklayın.
İlgili makale:
Copilot ile adım adım komut dosyaları oluşturma ve hata ayıklama nasıl yapılır?