ESPHome tabanlı Nesnelerin İnterneti (IoT) platformu
(esphome.io)- ESPHome, ESP32, ESP8266, BK72xx, RP2040 gibi kartları akıllı ev cihazlarına dönüştüren bir platform; cihazlar C++ yerine YAML yapılandırmasıyla ayarlanır
- Yerel kontrol ve kablosuz güncellemeleri destekleyerek bulut bağımlılığını azaltır; sensör, ekran ve bileşenleri birleştirerek çeşitli cihazlar oluşturmayı sağlar
- DIY kullanıcılarından profesyonel entegratörlere ve Made for ESPHome sertifikalı ürünler üreten üreticilere kadar geniş bir hedef kitleye sahiptir
- Desteklenen ortamlar arasında Espressif ESP32·ESP8266, Raspberry Pi RP2040, Nordic Semiconductor nRF52, Realtek RTL87xx, Beken BK72xx ve bazı bileşenler için host platformu da bulunur
- Başlamak için en kolay yol Home Assistant üzerinden ilerlemektir; ileri düzey kullanıcılar komut satırı kılavuzundan veya önceden yapılandırılmış projelerden başlayabilir
YAML ile yapılandırılan yerel akıllı ev cihazları
- ESPHome, ESP32, ESP8266, BK72xx, RP2040 ve desteklenen diğer kartları akıllı ev cihazlarına dönüştürür
- Karmaşık C++ kodu yerine cihazları YAML yapılandırma dosyalarıyla ayarlama yaklaşımını kullanır
-
Başlıca özellikler
- Kod yazmadan yapılandırma: Karmaşık C++ olmadan basit YAML yapılandırması kullanır
- Kablosuz güncellemeler: Cihazlara fiziksel olarak erişmeden güncelleme yapılabilir
- Modüler tasarım: Yüzlerce sensör, ekran ve diğer bileşeni destekler
- Yerel kontrol: Buluta bağımlı olmadan yerelde çalışır
-
İlgili kaynaklar
Kullanıcı kitlesi ve başlangıç yolları
-
Kimler kullanıyor
- DIY kullanıcıları: Belirli ihtiyaçlara uygun sensörler, anahtarlar ve ekranlar üretir
- Akıllı ev meraklıları: Uygun fiyatlı özel cihazlarla ev otomasyon sistemlerini genişletir
- Profesyonel entegratörler: Müşteriler için yerel kontrollü akıllı cihazlar dağıtır
- Üreticiler: Standartlaştırılmış firmware ile Made for ESPHome sertifikalı ürünler üretir
-
Desteklenen mikrodenetleyiciler ve çalışma ortamları
- Espressif ESP32·ESP8266: Birçok IoT projesinde kullanılan ESP32·ESP8266 mikrodenetleyicilerini destekler
- RP2040: Raspberry Pi’nin RP2040 mikrodenetleyicisini destekler
- Diğer çipler: Nordic Semiconductor nRF52, Realtek RTL87xx, Beken BK72xx’i destekler
- Masaüstü host platformu: Birçok ESPHome bileşeni masaüstü bilgisayarlarda da çalıştırılabilir
-
Nasıl başlanır
- Home Assistant uygulaması üzerinden başlamak en kolay yoldur: Home Assistant Guide
- Komut satırıyla çalışmayı tercih eden ileri düzey kullanıcılar ayrı bir kılavuzdan yararlanabilir: Command Line Guide
- Yaygın kullanım senaryolarına önceden yapılandırılmış projelerden başlanabilir: Browse Projects
1 yorum
Hacker News yorumları
ESPHome'u yöneten kişilerden biriyim. Sorunuz varsa bildirin
Geçen cumartesi ESPHome'un artık Open Home Foundation'a ait olduğunu duyurduk
Open Home Foundation, akıllı evler ve içinde yaşayan herkes için gizliliği, seçim özgürlüğünü ve sürdürülebilirliği korumayı amaçlayan bir kuruluş: https://www.openhomefoundation.org/blog/announcing-the-open-...
Ucuz bir mikrodenetleyiciyi doğrudan tarayıcıdan sesli asistana, Bluetooth proxy'ye veya medya oynatıcıya dönüştürebilirsiniz
Espressif SDK'nın derinlerine inip sıcaklık sensörü ve MQTT eklenmiş kablosuz anahtarın neredeyse tamamını gerçekleştirmiştim; ESPHome'u keşfeder keşfetmez yaptığım tüm iş gereksiz hale geldi
Yazdığım özelliklerin hepsi zaten vardı, üstüne çok daha fazlası da eklenmişti
Espressif'in Zigbee özelliği olan bazı cihazları var gibi görünüyor; ileride doğrudan Zigbee cihazları yapmanın bir yolu açılır mı merak ediyorum
Ancak istediğim şey ESPHome'un kapsamına girer mi, temiz biçimde uygulanabilir mi pek emin değilim: cihazın içinde hızlı geri bildirim döngüleri ve daha karmaşık yerleşik algoritmalar çalıştırabilmek
Örneğin bir ışık sensörünün ampulü kontrol etmesini, neredeyse fark edilmeyecek kadar küçük değişikliklerle parlaklığı sürekli ayarlamasını ve Kalman filtresi gibi bir şey kullanarak günün saatine uygun sabit aydınlık ve renk sıcaklığını korumasını istiyorum
Ortamı ve güç kullanımını optimize etmek için hava temizleyici, havalandırma, ısıtma, nemlendirme, nem alma ve soğutmayı da sürekli kontrol etmek istiyorum. Havalandırma CO2/TVOC'yi düşürür ama PM2.5'i ve dış hava sıcaklığını içeri alır; ısıtma-soğutma, havalandırma ve nem karmaşık biçimde birbirine bağlıdır
Yardımcı ısıtıcı temel ısıtmadan çok daha pahalıdır ama çok soğuk günlerde gereklidir; evde olmadığınızda öncelikler değişir, bu yüzden evdeyken yaşanabilir bir nem, yokken ise nemin en aza indirilmesini isterim
İkinci olarak, ESPHome ile yalnızca Wi-Fi değil Zigbee cihazları da yapabilmek güzel olurdu
Logları Wi-Fi üzerinden görmek bu kadar basit olabilir mi diye düşündürüyor
TV kumandasıyla ses sistemini kontrol etmek için mini bir kızılötesi alıcı/verici yaptım; yapılandırması çok kolaydı ve Home Assistant entegrasyonu da harika
ESPHome ile 20'den fazla cihaz çalıştırıyorum; bunların yaklaşık dörtte üçü Home Assistant ağına dahil, yaklaşık 6 tanesi ise bağımsız olarak ESPHome'un MQTT üzerinden diğerleriyle iletişim kuracağı şekilde ayarlı
İçini ESP32 ile değiştirdiğim ucuz bir Çin yapımı hava istasyonu, yağmur suyu tankı izleme, serada toprak nemi, evin çeşitli noktalarında sıcaklık-nem, mutfak ve çocuk odalarında hava kalitesi gibi şeyleri izliyorum
ESPHome gerçekten değeri az bilinen bir proje. Kelimenin tam anlamıyla 5 dakikada, 10 dolarlık donanımla, programlama yapmadan evinizde kendi nesnelerin interneti cihazınızı yapıp arazinin herhangi bir yerinden gerçek zamanlı veri alabilirsiniz
Bir fikir akla geldiğinde donanımın elinizin altında olması muazzam bir özgürlük
Şaşırtıcı derecede kararlılar; sprinkler kontrolcüsü gibi modüller bağımsız çalışacak şekilde programlanabildiğinden güç olduğu sürece çalışmaya devam ediyor
Home Assistant'ın microSD kartının bozulduğunu ancak aylar sonra fark ettim, çünkü hidroponik ekipmanım normal çalışmaya devam ediyordu
En çok zaman alan şey, su geçirmez Sockitbox içinde röleyi sürmek için DC/DC dönüştürücüye kablolama yapmaktı
Vidalı klemens breakout kartını yakınınızda bulundurmak da çok işe yarıyor: https://www.amazon.com/whiteeeen-Development-Expansion-ESP-W...
CloudFree de ESPHome ile yeniden programlanabilen hazır nesnelerin interneti parçaları bulmak için iyi: https://cloudfree.shop/
Daha önce 3 dolarlık Wittycloud ESP8266 ile güneş enerjisi analiz verilerini çekip Home Assistant'ta tüketimi görmek için ESPHome kullanmıştım
Ama USB adaptörü dışında hâlâ zarif bir güç besleme yöntemi bulamadım. Dış mekân sensörleri için temiz bir pil yöntemi olsa güzel olurdu
Epey gelişmiş çipler kullanıyor gibi görünüyor
Daha da tasarruf etmek isterseniz ESP8266 4 dolara kadar düşebiliyor; gerçekten şaşırtıcı bir seviye
Örneğin kirada olan evime birinin izinsiz giriş izi bırakmadan girmesi durumu
Belgelerde çeşitli seçenekler var ama hareket/varlık algılamaya mı yoksa ikili varlık algılayıcıya mı yönelmeliyim bilmiyorum. Hangi sensörün daha iyi ve maliyet açısından daha verimli olduğunu merak ediyorum
ESPHome’un en iyi yanı güçlü ve aktif topluluğu
Bizim geliştirdiğimiz açık kaynak donanımlı hava kalitesi monitörü [1] için topluluktan bir üye gelişmiş bir ESPHome entegrasyonu [2] geliştirdi
Bu entegrasyonda temel açık kaynak firmware’de bulunan tüm özellikler vardı; hatta bazen yeni özellikleri uygulamada bizden daha hızlıydı
Bir anlamda bu tür açık kaynak rekabeti, yazılım sürümümüzü daha iyi hâle getirmemize yardımcı oldu ve bizi motive etti
[1] https://www.airgradient.com/
[2] https://github.com/MallocArray/airgradient_esphome
İlgili kaynak olarak, ticari donanımlar için ESPHome cihaz yapılandırmaları koleksiyonu var: https://devices.esphome.io/
ESPHome’un da çoğu zaman çalıştırılabildiği cihazlar için Tasmota yapılandırmaları koleksiyonu da var: https://templates.blakadder.com/
Biraz konu dışı ama ESPHome’u seviyorum ve evdeki birkaç IoT tabanlı sıcaklık sensöründe kullanıyorum
Ancak WAF, yani eş kabulü açısından hep takıldığım nokta; ESP32, sensörler ve birbirine girmiş kabloları düzgün görünen bir kutuya koyup gizlemek
Herkesin elektronik parçaları saklamak için ne kullandığını merak ediyorum
Apollo ürünleri oldukça göze batmayacak şekilde iyi tasarlanmış: https://apolloautomation.com/products/sensor-stand?pr_prod_s...
Sıcaklık sensörü için genelde bu firmware’in desteklediği hazır ürünleri seçiyorum: https://github.com/pvvx/ATC_MiThermometer
Üstelik pille 1 yıldan uzun süre çalışabiliyor
Cam kap ya da şeffaf plastik ürün kullanırsanız parçalar kirlenmeden içini de görebilirsiniz
Duvara monte ederken kartı kapağın iç tarafına vidalayın, sonra kapağı duvara sabitleyin. Böylece yalnızca kabı kapaktan çıkararak kolayca erişebilirsiniz
Dezavantajı, göz önünde bir yerde durursa çirkin görünebilmesi
Genelde Thingiverse’te kabaca uyan mevcut bir tasarım buluyorum. Yaygın parçalar kullanırsanız tam oturan bir model bulma ihtimaliniz de daha yüksek
Arayıp da cevabını bulamadığım bir sorum var
Bir septik tank alarm sistemim var; şamandıralı anahtar tankın 3/4 dolduğunu algıladığında sesli ve görsel alarm devreye giriyor
Alarm çaldığında kapanan bir çift NO kuru kontak var
Bu kontağın kapalı mı açık mı olduğunu nasıl izlemem gerektiğini merak ediyorum. GPIO piniyle yapılabilir gibi geliyor ama arayınca işe yarar bir cevap bulamadım
Vazgeçip bir RIB01BDC [0] paket rölesiyle Raspberry Pi’yi açıp, septik tank kontağı kapanınca e-posta göndermesini sağlamayı düşünüyorum
[0] https://www.functionaldevices.com/product/rib01bdc/
Mikrodenetleyicinin GPIO pinini periyodik olarak okumasını sağlarsanız, yüksekse kontak açık ve alarm çalmıyor demektir; düşükse kontak kapalı ve alarm çalıyor demektir
GPIO/kontak/direnç/VCC yapılandırması, devrenin bir tarafını yüksek mantık seviyesine çeken bir pull-up devresi görevi görür; direnç de kontak kapandığında akan akımı sınırlar
Mikrodenetleyici GPIO pini için dahili pull-up ayarını destekliyorsa ek donanım olmadan pini doğrudan kontağa bağlayabilirsiniz
Tersine, dahili pull-down ayarı varsa VCC’yi kontağa, GPIO’yu da diğer tarafa doğrudan bağlayarak düzeni ters çevirebilirsiniz. Kullanılabilir özellikler ve akım sınırlaması için mikrodenetleyici belgelerine bakmalısınız
Septik tank izleme konusunda istediğiniz bilgiye bağlı olarak bu da kullanışlı bir seçenek olabilir
ESPHome ve M5StickC ile bir giriş-çıkış kayıt saati yaptım
İşe giriş/çıkış basıldığında Home Assistant zamanı Google Sheet’e gönderiyor ve çok kararlı çalışıyor
İlginç bir nokta olarak, ESP32 bazı pinlerde kapasitif dokunma algılamayı destekliyor; böylece iletken yüzeyleri akıllı ev düğmesine veya giriş cihazına dönüştürebiliyorsunuz
ESPHome’da da iyi destekleniyor: https://esphome.io/components/binary_sensor/esp32_touch.html
Üzerinde çalışmayı düşündüğüm küçük bir proje var
Evimin yakınındaki durağın otobüs varış saatlerini yerel ulaşım API’siyle sorgulayıp, önemli 3 otobüsün saatlerini tek bir büyük ekranda ya da otobüs başına 3 küçük ekranda göstermek istiyorum
Yüksek çözünürlüklü olması gerekmiyor ama uzaktan bile ailemin tek bakışta görebileceği kadar büyük ve parlak olmasını isterim. Örneğin 7 segment göstergeyle 3 haneli otobüs numarasını ve varışa kalan dakika için 4 haneyi göstermek gibi
Wi‑Fi üzerinden güncellenebilir olmalı; Arduino/Raspberry Pi gibi düşük güç tüketimli bir cihazın bağlı olması da sorun değil. AA pille çalışabilirse daha da iyi olur
İlk kısmı yapabilirim ama ikinci kısmı hiç bilmiyorum, lehimleme de hiç yapmadım. Bilen biri yön gösterirse iyi olur
Piksel ızgarasına çizim yapan display bileşeni https://esphome.io/components/display/, metin renderer’ı, adreslenebilir LED sürücüsü https://esphome.io/components/light/neopixelbus üzerine görüntü matrisi oluşturan addressable_light platformu https://esphome.io/components/display/addressable_light, ucuz 8x32 LED panel https://www.google.com/search?q=8x32+ws2812b gibi şeyleri birleştirebilirsin
Daha fazla alana ihtiyaç olursa birkaç tane yapabilir ya da panelleri birbirine ekleyebilirsin
Elbette tekerleği yeniden icat etmeye gerek yok; şu tür bir rehberi de izleyebilirsin: https://community.home-assistant.io/t/led-matrix-with-esphom...
Özellikle Ulanzi gibi mevcut donanımı yeniden kullanma yoluna gidersen çok fazla lehim gerekmez; doğru veri bağlantısı ve güç beslemesi asıl kritik noktalar
ESP32’yi Arduino ile programlayabilir, alışık olduğun kütüphaneleri ve Wi‑Fi işlemlerini aynen kullanabilirsin
Adafruit’ten RGB matris satın alabilirsin; ayrıca bunu doğrudan sürebilen ESP32 kartları da sattıkları için pratikte tak-çalıştır düzeyinde, neredeyse hiç donanım bilgisi gerekmiyor
Kendin yapmak istiyor ama rehberliğe ihtiyaç duyuyorsan, istediğine benzer Wi‑Fi bağlantılı bir metin gösterge cihazının hem donanımını hem yazılımını belgeleyen şu projeye bakabilirsin: https://github.com/BlueAndi/esp-rgb-led-matrix
Kişisel olarak kullanmıyorum ama gerçekten harika bir fikir gibi görünüyor
Daha önce bir sensör kartı yapıp firmware’ini kendim yazmıştım; ESPHome’u kolayca yapılandırıp o kartta çalıştırabiliyor muyum bakmam gerekecek
Ancak kendi firmware’imde zaten olan özelliklerden mutlaka ihtiyaç duyduğum şey pull yöntemiyle OTA güncellemeleri
Şu anda firmware’i bir klasöre kopyaladığımda evdeki tüm sensörler HTTP sunucusu üzerinden otomatik olarak o firmware’e güncelleniyor
ESPHome’da her sensöre güncellemeyi ayrı ayrı itmek gerekiyor; onlarca cihaz varsa bu zahmetli
Basit bir backend ile iletişim kuran firmware’i kendim yazmak daha kolay ve hızlı görünüyordu
ESP32 cihazlarına kodun nasıl sığdığını da merak ediyorum. 4MB flash’lı bir cihazda OTA istiyorsan pratikte program sınırı yaklaşık 1MB
GPIO, ADC, UART, Wi‑Fi, HTTPS, HTTPS sunucusu, interrupt’lar, FreeRTOS, MQTT, NVS, çip bilgisi, log, OTA ve standart kütüphane fonksiyonlarını çağıran basit bir program bile 1MB sınırını zaten aşıyor. Tek bir scanf bile 30KB kullanıyor
Tüm logları kapatıp derleyince yaklaşık 800KB’lık bir programa kadar küçültebiliyorsun, ama program mantığı olmadığı halde sınıra epey yakın
Bir dahaki sefere uzaktan izleme cihazına ihtiyaç duyarsam tekrar bakmayı düşünüyorum
Güncellemek istemediğim bir cihaz varsa YAML dosyasına beklenmedik bir anahtar kelimeyi geçici olarak ekleyip derleme ve güncellemenin başarısız olmasını sağlıyorum
Evin çeşitli yerlerinde sıcaklık probları bağlı epey ESP cihazım var; bakımını yapmam gereken kod azalsın diye ESPHome’a taşımaya çalışıyorum
Özellikle ilk başta tarayıcıdan flash’layıp sonrasında kablosuz güncelleyebilmek güzel