Home Assistant’da bir otomasyon kurduğunuzda, dikkatinizin çoğunu onu çalıştırmaya odaklarsınız. Ve her şey işleyince, başka bir şeye geçersiniz. Bir otomasyonun bir sensöre ne sıklıkla bakması ya da bir cihaza ne sıklıkla istek göndermesi, özellikle kurulumunuzla hâlâ deneme yaparken, pek dikkate değer bir konuyu getirmez.
Akıllı eviniz büyüdükçe, arka planda süren bu etkinlik daha yakından bakılmayı hak eder. Kendi kurulumumu yeniden gözden geçiriyor, gereksiz taramaları azaltıyor ve otomasyonların ne zaman çalışacağı ile Home Assistant’ın neyi kaydettiğine dair daha seçici oluyorum. Sistemim artık daha soğuk çalışıyor ve daha hızlı tepki veriyor.


Otomasyonlarınız, hiç değişmeyen şeylere bakmaya devam ediyor
Bu işi kesinlikle yapmaları gerekmiyor
Zamana dayalı tetikleyiciler, Home Assistant’da bir otomasyonu çalıştırmanın pratik bir yoludur. Sorun, hiçbir şey değişmese bile programlı biçimde çalışmaya devam etmeleridir. Odanız saatlerce boş olabilir, ancak otomasyon yine de orada kimse olup olmadığını kontrol etmeye devam eder.

Bir sensörün mevcut değerini kontrol etmek tek başına pek fazla işlem gücü gerektirmez. Sorun, bu kontrollerin aynı zamanda cihazları güncellemesi, karmaşık şablonları değerlendirmesi ya da aynı komutu tekrar tekrar göndermesiyle başlar. Işıklar zaten kapalıysa, odanın hâlâ boş olması nedeniyle birkaç dakikada bir onlara kapatılmalarını söylemenin kesinlikle bir nedeni yoktur.
İyi ki Home Assistant, taban durumuna dayalı tetikleyicileri destekliyor; böylece otomasyonlarınız gerçekten bir şey değiştiğinde çalışabilir. Örneğin, birkaç dakikada bir odanın boş olup olmadığını kontrol etmek yerine, doluluk sensörü iki süredir orada kimse kalmadığını algıladığında bir otomasyonu tetikleyebilirsiniz. Benzer şekilde, bir fanı kontrol etmek için sıcaklığa dayalı bir otomasyon kullanıyorsanız, okumayı sürekli kontrol etmek yerine sıcaklığın belirli bir eşiği geçtiği anda tetiklenebilir.
Genellikle otomasyonlarımı gözden geçirirken başlangıç noktam burasıdır. Her otomasyonun neyi kontrol ettiğine ve doğrudan bir taban durum değişikliğiyle tetiklenebileceğine bakarım. Elbette zamanlı kontrollerin de kendi yer vardır; özellikle periyodik güncellemeler ya da kaçan sorunları yakalamak için.
Çevrimdışı cihazlar, sürekli dikkate ihtiyaç duymaz
Bu kaynakları bu cihazlara harcamanıza gerek yok
Bazı akıllı ev cihazları saatlerce kapalı ya da bağlantısız kalabilir. Sorun, çevrimdışı olmalarına rağmen otomasyonlarınız bu cihazlarla iletişim kurmaya çalışmaya devam ettiğinde başlar. Her birkaç saniyede bir aynı komutu göndermek hiçbir şey başarmaz ve tekrarlayan hatalar loglarınızı bozabilir.
Home Assistant, bir eylemi çalıştırmadan önce bir varlığın kullanılabilir olup olmadığını kontrol etmenizi sağlar. Bir cihaz kullanılamıyorsa ya da durumu bilinmiyorsa, otomasyon o cihaza yönelik komutları atlayabilir. Bu, özellikle birden fazla cihazı içeren rutinlerde oldukça yararlıdır. Bir cihaz çevrimdışaysa, tüm rutin ya başarısız olmak ya da ona ulaşmaya çalışmak zorunda değildir. Diğer cihazlar işlerini yapmaya devam edebilir.
Ama burada bakılmaya değer başka bir konu da var — Home Assistant’ın bu cihazları ilk başta ne sıklıkla taraması. Bir otomasyona bir kullanılabilirlik kontrolü eklemek, bir entegrasyonun bir cihaza ne sıklıkla temas etmesini değiştirmez. Bunu destekleyen entegrasyonlar için otomatik taramayı devre dışı bırakabilir ve güncellemeleri mantıklı gelen aralıklarda istemek için homeassistant.update_entity’i kullanabilirsiniz. Örneğin, bir sensörün okumasını yalnızca her 15 dakikada bir gerekiyorsa, birkaç saniyede bir güncellemenin pek nedeni yoktur.
Ama toparlanma konusunda dikkatli olmanız gerekir. Bazı entegrasyonlar, bir cihazın tekrar çevrimiçi olduğunu keşfetmek için taramaya dayanır. Taramayı tamamen durdurursanız, Home Assistant cihazın tekrar kullanılabilir olduğunu asla fark etmeyebilir. Bir sonraki güncellemeyi istemek için yavaş bir periyodik kontrol ya da akıllı priz tekrar açılması gibi başka bir tetikleyici kullanmayı tercih ediyorum. Cihaz kullanılabilir hale geldiğinde, otomasyon yine de bir şey yapması gerekip gerekmediğini kontrol edebilir.
Her güncellemede harekete geçmenize gerek yok
Bazıları güvenle görmezden gelebilir
Home Assistant’ı kullanırken öğrendiğim başka bir konu da, bir otomasyonun her şey değiştiği anda tepki vermesini her zaman istememenizdir. Sensörler mükemmel değildir ve okumaları oldukça dalgalanabilir. Örneğin, bir varlık sensörü, tam orada oturuyor olsanız bile kısa süreliğine bir odanın boş olduğunu bildirebilir. Otomasyonunuz anında tepki verirse, ışıklar sebepsizce sönebilir. Bu durum, çalışmaları sırasında okumalar yukarı ve aşağı zıplayabilen, güç tüketimini bildiren aletlerde de yaşanır.
Bunu yönetmenin basit bir yolu, bir eylemi tetiklemeden önce bir koşulun belirli bir süre boyunca doğru kalmasını sağlamaktır. Örneğin bir çamaşır makinesini alın. Güç tüketimi belirli bir eşiğin altına düştüğünde sizi bilgilendiren bir otomasyon kurabilirsiniz. Ancak çamaşır makineleri, evreler arasında kısa süreliğine önemli ölçüde güç çekmeyi bırakabilir, bu yüzden bu her olduğunda bir bildirim istemezsiniz. Bunun yerine, Home Assistant döngünün tamamlandığını kabul etmeden önce güç tüketiminin üç veya beş dakika boyunca bu eşiğin altında kalmasını talep edebilirsiniz.
Benzer şekilde, varlık sensörlerime ışıkları söndürmeden önce bir odanın boş olduğunu onaylamaları için birkaç dakika vermeyi tercih ediyorum. Bilinçli olarak küçük bir gecikme ekliyorsunuz, ancak bu otomasyonları çok daha güvenilir kılıyor. Ayrıca Home Assistant’ın veritabanında ne sakladığına daha dikkat etmeye başladım. Çok sayıda sensör sık sık güncelleniyor ve bu güncel okumaları panelimde görmek istesem de, Home Assistant’ın her değişikliğin geçmişini tutması gerektiğini düşünmüyorum.
Recorder içinde, Home Assistant’ın değişiklikleri veritabanına ne sıklıkla yazacağını kontrol etmenizi sağlayan commit_interval adında bir ayar daha var. Bu aralığı artırmak, daha fazla yazıyı gruplandırarak disk G/Ç’yi azaltabilir, ancak karşılığı, Home Assistant’ın commit yapmadan önce çökerse daha güncel güncellemeleri kaybedebilir olmasıdır.
Eski otomasyonlarınız bir göz atmayı hak ediyor
Home Assistant zaten oldukça verimli, ancak gereksiz arka plan faaliyeti akıllı eviniz büyüdükçe birikir. Eski otomasyonları gözden geçirmenin, poling’i azaltmanın ve veritabanı kaydını temizlemenin belirgin bir fark yaratabileceğini gördüm. Home Assistant’ı bir süredir çalıştırıyorsanız, otomasyonlarınızın ne yaptığını kontrol etmek değer.
Bu Gelişmeyi Toplulukta Değerlendirin
Haber hakkındaki düşüncelerinizi, donanım deneyimlerinizi ve teknik sorularınızı topluluk üyeleriyle anlık olarak tartışın.
Bu gelişme hakkında düşüncelerinizi, donanım deneyimlerinizi veya sorularınızı Topluluk Forumumuzda paylaşın.
Foruma Katıl & Yanıtla ➔




Söz sizde.
Deneyiminizi, sorularınızı ve katkılarınızı paylaşın. E-posta adresiniz yayımlanmaz.