Home Assistant (HA, ev asistanı) için ESPHome Cihaz Kurulumu

 

Home Assistant Kurulumu konulu yazının sonunda "Home Assistant uygulamasını kurduk. Şimdi biraz asistanla oynama vakti. Daha sonra cihaz kurulumunu ve esphome cihazlarını anlatacağım." demiştim. Sıra geldi ESPHome sistemi ile bir cihaz kurmaya.

Kuruluma geçmeden önce, ESPHome ile ilgili birkaç söz söylemekte fayda var. ESPHome, Nabu Casa adlı şirket tarafından geliştirilen açık kaynak kodlu bir sistem. Adından da anlaşılacağı üzere, ESP8266 ve ESP32 işlemcileri -ve bu işlemcileri kullanan geliştirme kartları- için tasarlanmış bir sistem. ESP işlemcileri yanında,  Raspberry Pico da destekleniyor. Ev otomasyonu için yüzlerce sensör için ve otomasyon katmanları için örnekleri bu sitede bulmak mümkün. ESPHome, HA tarafından destekleniyor.

İmdi diyelim ki elimizde ESP8266 tabanlı bir NodeMCU kartı var ve bir de BMP280 basınç ve sıcaklık sensörü kartı.

 

  

 

DİKKAT! BMP280 sensörü normalde 3,3v ile çalışır. Üzerinde BMP280 sensörü bulunan kartlar, eğer üzerinde bir voltaj regülatörü barındırmıyorsa 3,3v ile çalışırken, üzerinde bir voltaj regülatörü olan kartlar 5v ile çalışırlar. Lütfen elinizde bulunan sensör kartının kaç volt ile çalıştığına dikkat edin!

BMP280 sensör kartının SDA ve SCL pinlerini NodeMcu'nun hangi portlarına bağlayacağımıza karar vermek gerekiyor.  Biz, çalışmamızda SDA'yı GPIO02'ye, SCL'yi ise GPIO03 numaralı pine bağlayacağız. GND pinini G'ye, Vcc pinini ise -benim kartım 5v ile çalışan tipte olduğu -ve NodeMcu'yu normal çalışma esnasında USB'den değil de harici bir besleme kaynağı ile besleyeceğim- için NodeMcu'nun VU pinine bağlayacağım.

HA'ı kurup çalıştırdığınızı farzediyorum. HA'ın ana ekranının sağ tarafındaki bölmeden ESPHome kısmına tıklıyorum ve yeni bir ESPHome cihazı kurabilmek için ESPHome ekranında sağ alt köşedeki + NEW DEVICE kısmına tıklıyorum.

 

 

Karşıma gelen New Device ekranının alt tarafındaki CONTINUE'yu tıklayarak devam ediyorum.

 

  

Create configuration kutucuğunda önce kuracağımız cihaza bir isim veriyoruz. Burada uyulması gereken birkaç kural var: İsim verirken sadece küçük harfleri, 0'dan 9'a kadar olan sayıları ve tire işaretini (-) kullanabiliyoruz. Alt tire (yani _ ) işareti kullanmıyoruz. İsmi belirledikten sonra NEXT'e tıklayarak ilerliyoruz.

 

Bir sonraki "Select your device type" ekranında kullanacağımız kartı seçmemiz gerekiyor. Biz, NodeMCU kullanacağımız için en alttaki "Pick specific board"a tıklıyoruz ve açılan menüden NodeMCU'yu seçip NEXT'e tıklıyoruz.

 

   

 

İstediğimiz konfigürasyonun oluşturulduğunu belirten aşağıdaki ekranda SKIP'e basarak işlemi burada bitiriyoruz. Zira, henüz BMP280 kartımızın bilgilerini, Wifi bilgilerini vs. girmedik.

 

Tekrar HA'daki ESPHome ekranımıza döndüğümüzde "balkon" adlı bir cihazın oluşturulduğunu ve cihazın OFFLINE (çevrim dışı) olduğunu görüyoruz. (Neden acaba? Kamu yararına çalışan bir dernek açıklasa da öğrensek :) ) Cihaza ait pencerenin al tarafındaki EDIT'e tıklıyoruz ve karşımıza balkon.yaml dosyası açılıyor.

 

Bu ekrandaki encryption key'ini kopyalayıp bir not defterine yapıştırıyoruz. Zira bu key daha sonra bize gerekli olacak. WiFi ayarlarımızda  wifi ssid'si ve şifresi ! secret olarak belirtiliyor ve HA'ın SEVRET kısmında evinizin WiFi ssid'si ve şifresi gizli olarak bulunuyor.

 

Bu dosyada bâzı ilaveler gerekli. ESPHome'un ana sayfasına gidip BMP280'i arattığımızda veya Environmental kısmında BMP280'i tıkladığımızda karşımıza gelen ekranda BMP280'in kullanımı için gerekli kodlar bulunuyor.

 

 

 Bu kısmı  balkon.yaml dosyasına ilave etmek üzere kopyalıyoruz.

Burada belirtmek istediğim önemli bir husus var. Evinizde WiFi kullanan cihazlara birer statik IP adresi belirleyip verin. Böylece ileride DHCP'nin dahili IP adresini değiştirmesi ile ortaya çıkabilecek olumsuzluklardan korunmuş olursunuz. İmdi bütün topladığımız verileri ve tavsiyeleri balkon.yaml dosyasına aktaralım. Görüldüğü gibi, BMP280 ve NodeMCU ile oluşturacağım cihaz için 192.168.1.14 IP adresini statik olarak belirledim. Benim yolvericimin (router) IP'si 192.168.1.1 olduğu için gateway olarak bu IP'yi kullanıorum. Yukarıda, SDA'yı GPIO02'ye, SCL'yi ise GPIO03 numaralı pine bağlayacağımızı belirtmiş idik. Bu bilgileri de #i2c bilgileri kısmında belirttim. En altda da ESPHome sitesinden BMP280 için kopyaladığım bilgiler yer alıyor. Buradaki address kısmı BMP280 sensörünün i2c adresini belirtiyor. Bu bilgileri yazdıktan sonra balkon.yaml dosyamızı kaydediyoruz.

 

 

Şimdi sıra bu bilgileri NodeMCU'ya yazılacak hâle getirmeye geldi. ESPHome ekranımızda balkon cihazına ait kutucuğun sağ alt tarafındaki üç noktaya tıklayınca açılan menüden Install'i seçiyoruz. Karşımıza gelen ekandan SADECE ve MUTLAKA "Plug into this computer"i seçiyoruz. Bir önemli husus daha: ESPHome cihazlarını kurarken ilk kurulumun muhakkak kablo üzerinden yapılması gerekiyor. Daha sonraki güncelleme ve değişiklikleri WiFi üzerinden de yapabilirsiniz.

 

 

 

Şimdi çay içme zamanı; zira aşağıdaki ekranda "preparing download" yazısının yanındaki bir küçük çizgi dakikalarca yuvarlaklar çizdirerek sizi bekletecek. Bu işlemin uzunluğu kullandığınız RPI'ın modeline ve RAM'ine göre değişiklik gösterebilmektedir. Ben, RPI3 kullanıyorum ve bu süre 10-15 dakika sürüyor. Sabır... Çaya devam... Derken "Download project" yazısı çıkıyor.  Buraya tıklayarak balkon.bin dosyasını bilgisayarınızda bilindik bir yere kaydediyorsunuz.

  

İşte işin bundan sonraki kısmında işler biraz çetrefilli bir hâl alabiliyor. .bin uzantılı dosyayı kaydettikten sonra herhengi bir ESP programlayıcı ile bu dosyayı NodeMCU'ya yazabileceğiniz gibi, "Open ESPHome Web"e tıklayarak webserial yöntemiyle de yazma işlemini yapmanız mümkün. "Open ESPHome Web"e tıkladınız ve karşınıza UNSUPPORTED mesajı olan bir ekran geldi. Bu, kullandığınız internet tarayıcının webserial yöntemini desteklemediğini belirtiyor. (Brave böyle.) Ama Chrome ile çalışıyorsanız alt tarafında CONNECT yazan bir ekranla karşılaşırsınız.

   

 

NodeMCU'yu USB üzerinden bilgisayarınıza bağlayın ve CONNECT'e tıklayın. NodeMCU'yu bağladığınız portu seçip Bağlan'a tıklayın.

 

 

 

Sonra açılan ekrandan Dosya Seç'e tıklayın ve daha önce kaydettiğiniz balkon.bin dosyasını seçerek INSTALL'a tıklayın.

 

  

 

 Önce NodeMCU'nun flash belleği silinecek, sonra programlanacak ve iş bitince "Configuration installed!" mesajı ile işin başarıyla tamamlandığı mesajı gelecektir. CLOSE'ye tıklayın. Ama NodeMCU'yu bilgisayarınızın USB portundan çıkarmayın.

   

Şimdi ESPHome ekranına bakarsanız, balkon cihazına ait kutunun üst tarafında ONLINE iletisi ile cihazınızın çevrim içi olduğunu göreceksiniz.

 

 

ESPHome cihazının Home Assistant (HA) ana ekranında görüntülenmesi

ESPHome cihazını kurduk, cihaz, WiFi ağımıza bağlandı, peki ama bu verileri Home Assistant'ın (HA) ana ekranında nasıl göreceğiz?

Bunun için HA ekranının sol tarafındaki Settings'e (Ayarlar) tıklıyoruz. Gelen ekranda Devices&Services ( Cihazlar ve Servisler) kısmına tıklıyoruz. Gelen yeni ekranda ise ekranın sağ alt köşesindeki + ADD INTEGRATIONS butonuna tıklıyoruz. Karşımıza gelen ekranda, arama kısmına esphome yazıyor ve çıkan ESPHome ikonuna tıklıyoruz.

   

Çıkan ESPHome kutucuğundaki Host* yazan yere, kurduğumuz ESPHome cihazının IP adresini yazıyoruz. Port kısmına dokunmuyoruz ve SUBMIT'e tıklıyoruz. Bir sonraki kutucukta, Encryption key* kısmına ise, cihazı ilk kurarken balkon.yaml dosyasında olan ve kopyaladığınız encryption key'i yapıştırıyor ve yeniden SUBMIT'e tıklıyoruz.

 

 

Bir sonraki kutucukta Success! mesajı ile entegrasyonumuzun başarılı olduğu belirtiliyor ve bu cihazın hangi odaya, yere ait olduğunu yazmamız isteniyor. Area* kısmına tıklayarak cihazı istediğimiz ev bölümüe atıyoruz. VE FINISH'e tıklayarak işlemi bitiriyoruz.

 

   

 

Şimdi, HA'ın sol tarafındaki kısımdan Settings ve Devices&Services kısmına tıkladığımızda, ESPHome kutucuğumuzda balkon adlı cihazımız diğer ESPHome cihazlarımızla birlikte görünecektir. Balkon cihazının sağ tarafındaki > işaretine tıkladığımızda "balkon" isimli cihazımızın özellikleri gösterilecektir. Aşağıdaki ekranda da görüldüğü gibi balkon adlı cihazın 1 cihazı ve 2 entities (varlığı) olduğu görülüyor; ki bu varlıklar basınç ve sıcaklık değerleridir. "1 device" yazısına tıkladığımızda karşımıza Sensors diye bir başka kutucuk açılacaktır. Burada ADD TO DASHBOARD kısmına tıkladığımızda artık "balkon" adlı cihazın verileri HA'ın ana ekranında görünüyor olacaktır. (NOT: Bu yazıyı hazırlayabilmek için, BMP280 kartı olmayan bir NodeMCU kullandığım için aşağıdaki Sensors kutucuğunda basınç ve sıcaklık değerleri unknown (bilinmeyen) olarak görünüyor. Siz, sensörü bağladığınız zaman bu değerler görünecektir.)

 

   

 

ESPHome hizmeti ile cihaz kurulumu bu kadar.. ESPHome ana sayfasında yüzlerce sensör ve diğer uygulama örnekleri mevcut.