Platform Internet of Things (IoT) berbasis ESPHome
(esphome.io)- ESPHome adalah platform yang mengubah board seperti ESP32, ESP8266, BK72xx, dan RP2040 menjadi perangkat smart home, dengan konfigurasi perangkat menggunakan YAML alih-alih C++
- Mendukung kontrol lokal dan pembaruan nirkabel untuk mengurangi ketergantungan pada cloud, serta memungkinkan pembuatan berbagai perangkat dengan menggabungkan sensor, display, dan komponen
- Cakupan penggunanya luas, dari pengguna DIY hingga integrator profesional dan produsen yang membuat produk bersertifikasi Made for ESPHome
- Lingkungan yang didukung mencakup Espressif ESP32·ESP8266, Raspberry Pi RP2040, Nordic Semiconductor nRF52, Realtek RTL87xx, Beken BK72xx, hingga platform host untuk sebagian komponen
- Untuk mulai menggunakan, jalur lewat Home Assistant adalah yang paling mudah, sementara pengguna tingkat lanjut dapat memulai dari panduan command line atau proyek yang sudah dikonfigurasi sebelumnya
Perangkat smart home lokal yang dikonfigurasi dengan YAML
- ESPHome mengubah ESP32, ESP8266, BK72xx, RP2040, dan board lain yang didukung menjadi perangkat smart home
- Perangkat dikonfigurasi menggunakan file konfigurasi YAML, bukan kode C++ yang kompleks
-
Fitur utama
- Konfigurasi tanpa coding: menggunakan konfigurasi YAML sederhana tanpa C++ yang rumit
- Pembaruan nirkabel: dapat diperbarui tanpa akses fisik ke perangkat
- Desain modular: mendukung ratusan sensor, display, dan komponen lainnya
- Kontrol lokal: berjalan secara lokal tanpa bergantung pada cloud
-
Sumber daya terkait
Cakupan pengguna dan jalur memulai
-
Siapa yang menggunakannya
- Pengguna DIY: membuat sensor, switch, dan display yang disesuaikan dengan kebutuhan tertentu
- Penggemar smart home: memperluas sistem otomasi rumah dengan perangkat kustom berbiaya rendah
- Integrator profesional: menerapkan perangkat smart home dengan kontrol lokal untuk pelanggan
- Produsen: membuat produk bersertifikasi Made for ESPHome dengan firmware terstandar
-
Mikrokontroler dan lingkungan eksekusi yang didukung
- Espressif ESP32·ESP8266: mendukung mikrokontroler ESP32·ESP8266 yang digunakan di banyak proyek IoT
- RP2040: mendukung mikrokontroler RP2040 dari Raspberry Pi
- Chip lainnya: mendukung Nordic Semiconductor nRF52, Realtek RTL87xx, dan Beken BK72xx
- Platform host desktop: banyak komponen ESPHome juga dapat dijalankan di komputer desktop
-
Cara memulai
- Memulai melalui aplikasi Home Assistant adalah jalur yang paling mudah: Home Assistant Guide
- Pengguna tingkat lanjut yang lebih suka bekerja lewat command line dapat menggunakan panduan terpisah: Command Line Guide
- Kasus penggunaan umum dapat dimulai dari proyek yang sudah dikonfigurasi sebelumnya: Browse Projects
1 komentar
Opini Hacker News
Saya salah satu orang yang memimpin ESPHome. Kalau ada pertanyaan, silakan beri tahu
Sabtu lalu kami mengumumkan bahwa ESPHome kini dimiliki oleh Open Home Foundation
Open Home Foundation adalah organisasi yang berupaya menjaga privasi, pilihan, dan keberlanjutan untuk smart home dan semua orang yang tinggal di dalamnya: https://www.openhomefoundation.org/blog/announcing-the-open-...
Anda bisa mengubah mikrokontroler murah langsung dari browser menjadi asisten suara, proxy Bluetooth, atau pemutar media
Saya sudah menggali dalam-dalam Espressif SDK dan hampir selesai membuat switch nirkabel dengan sensor suhu dan MQTT, tetapi begitu menemukan ESPHome, semua pekerjaan yang saya lakukan jadi tidak diperlukan
Semua fungsi yang saya tulis sudah ada, ditambah jauh lebih banyak fitur lagi
Sepertinya Espressif punya beberapa perangkat dengan kemampuan Zigbee, dan saya penasaran apakah ke depannya akan ada jalan untuk membuat perangkat Zigbee sendiri
Namun yang saya inginkan adalah kemampuan menjalankan loop umpan balik cepat dan algoritme onboard yang lebih kompleks di dalam perangkat, meski saya juga tidak yakin apakah ini masuk cakupan ESPHome atau bisa diimplementasikan dengan rapi
Misalnya, saya ingin sensor cahaya mengendalikan bohlam sambil terus menyesuaikan kecerahan dengan perubahan kecil yang nyaris tak terasa, dan memakai sesuatu seperti filter Kalman untuk menjaga tingkat pencahayaan serta temperatur warna yang konsisten sesuai waktu
Saya juga ingin terus mengendalikan penjernih udara, ventilasi, pemanas, pelembap, dehumidifier, dan pendingin untuk mengoptimalkan lingkungan serta penggunaan daya. Ventilasi menurunkan CO2/TVOC tetapi membawa masuk PM2.5 dan suhu luar, sementara pemanasan/pendinginan, ventilasi, dan kelembapan saling terkait secara rumit
Pemanas tambahan jauh lebih mahal daripada pemanas utama, tetapi diperlukan pada hari yang sangat dingin; ketika tidak ada orang di rumah, prioritasnya berubah, jadi saat ada penghuni saya ingin kelembapan yang nyaman untuk ditinggali, sementara saat kosong saya ingin meminimalkan kelembapan
Kedua, saya berharap ESPHome bisa dipakai untuk membuat bukan hanya perangkat Wi-Fi, tetapi juga perangkat Zigbee
Melihat log lewat Wi-Fi terasa hampir terlalu sederhana
Saya membuat penerima/pemancar inframerah mini untuk mengendalikan sistem audio dengan remote TV, dan konfigurasinya sangat mudah, sementara integrasinya dengan Home Assistant juga sangat bagus
Saya menjalankan lebih dari 20 perangkat dengan ESPHome; sekitar tiga perempatnya masuk ke jaringan Home Assistant, dan sekitar 6 perangkat dibiarkan berdiri sendiri dengan ESPHome berkomunikasi dengan yang lain lewat MQTT
Saya memantau stasiun cuaca murah buatan Tiongkok yang bagian dalamnya saya ganti dengan ESP32, pemantauan tangki air hujan, kelembapan tanah rumah kaca, suhu dan kelembapan di berbagai lokasi di dalam rumah, kualitas udara di dapur dan kamar anak, dan sebagainya
ESPHome benar-benar proyek yang kurang diapresiasi. Secara harfiah, dalam 5 menit, dengan hardware seharga 10 dolar, dan tanpa pemrograman, Anda bisa membuat sendiri perangkat Internet of Things di rumah dan mendapatkan data real-time dari mana pun di lahan Anda
Kebebasan yang didapat dari punya hardware dalam jangkauan saat sebuah ide muncul itu luar biasa
Stabilitasnya juga mengejutkan, dan modul seperti kontroler sprinkler bisa diprogram agar beroperasi mandiri, sehingga terus berjalan selama ada daya
Saya baru sadar kartu microSD Home Assistant saya rusak beberapa bulan kemudian, karena peralatan hidroponik saya tetap berjalan normal
Yang paling banyak memakan waktu adalah menyambungkan kabel ke konverter DC/DC untuk menggerakkan relay di dalam Sockitbox tahan air
Papan breakout terminal kabel juga sangat berguna jika disiapkan di sekitar Anda: https://www.amazon.com/whiteeeen-Development-Expansion-ESP-W...
CloudFree juga bagus untuk mendapatkan komponen Internet of Things siap pakai yang bisa diprogram ulang dengan ESPHome: https://cloudfree.shop/
Dulu saya memakai ESPHome dengan Wittycloud ESP8266 seharga 3 dolar untuk mengambil data analisis tenaga surya dan melihat konsumsi di Home Assistant
Namun selain adaptor USB, saya masih belum menemukan cara pasokan daya yang elegan. Untuk sensor luar ruangan, akan bagus kalau ada metode baterai yang rapi
Sepertinya Anda memakai chip yang cukup kelas atas
Kalau ingin lebih hemat, ESP8266 bisa sampai 4 dolar, dan itu benar-benar mengagumkan
Misalnya, ketika ada seseorang masuk ke rumah saya yang sedang disewakan tanpa tanda-tanda pembobolan
Dokumentasinya punya beberapa opsi, tetapi saya tidak tahu apakah harus memilih deteksi gerakan/kehadiran atau sensor kehadiran biner. Saya penasaran sensor mana yang lebih baik dan hemat biaya
Hal terbaik dari ESPHome adalah komunitasnya yang kuat dan aktif.
Untuk monitor kualitas udara perangkat keras sumber terbuka yang kami buat [1], seorang anggota komunitas mengembangkan integrasi ESPHome yang canggih [2].
Integrasi itu memiliki semua fitur yang ada di firmware sumber terbuka bawaan, dan terkadang bahkan lebih cepat dari kami dalam mengimplementasikan fitur baru.
Dalam arti tertentu, persaingan sumber terbuka seperti ini membantu dan memotivasi kami untuk membuat versi perangkat lunak kami menjadi lebih baik.
[1] https://www.airgradient.com/
[2] https://github.com/MallocArray/airgradient_esphome
Sebagai referensi terkait, ada kumpulan konfigurasi perangkat ESPHome untuk perangkat keras komersial: https://devices.esphome.io/
Ada juga kumpulan konfigurasi Tasmota untuk perangkat yang sering kali juga bisa menjalankan ESPHome: https://templates.blakadder.com/
Sedikit melenceng, tapi saya menyukai ESPHome dan telah memakainya untuk beberapa sensor suhu berbasis IoT di rumah.
Namun bagian yang selalu menjadi hambatan dalam WAF, alias penerimaan istri, adalah memasukkan dan menyembunyikan ESP32, sensor, serta kabel yang kusut ke dalam wadah agar terlihat rapi.
Saya penasaran apa yang dipakai orang-orang untuk menyembunyikan komponen elektronik.
Produk Apollo dibuat cukup tidak mencolok: https://apolloautomation.com/products/sensor-stand?pr_prod_s...
Untuk sensor suhu, biasanya saya memilih produk jadi yang didukung firmware ini: https://github.com/pvvx/ATC_MiThermometer
Bonusnya, perangkat itu bisa berjalan dengan baterai selama lebih dari setahun.
Jika memakai mangkuk kaca atau produk plastik transparan, komponen tidak akan kotor sekaligus bagian dalamnya tetap bisa dilihat.
Untuk pemasangan di dinding, cukup kencangkan papan ke sisi dalam tutup dengan sekrup, lalu pasang tutup itu ke dinding. Dengan begitu, Anda bisa mengaksesnya dengan mudah hanya dengan melepas wadah dari tutupnya.
Kekurangannya, jika diletakkan di tempat yang mudah terlihat, tampilannya bisa tampak jelek.
Biasanya saya mencari desain yang kira-kira cocok di Thingiverse. Kalau memakai komponen umum, peluang menemukan model yang pas persis juga lebih besar.
Ada pertanyaan yang jawabannya belum saya temukan meski sudah mencari.
Saya punya sistem alarm septic tank, dan ketika float switch mendeteksi tangki sudah terisi 3/4, alarm suara dan visual menyala.
Ada sepasang kontak kering NO yang menutup saat alarm berbunyi.
Saya penasaran bagaimana cara memantau apakah kontak ini tertutup atau terbuka. Sepertinya bisa dengan pin GPIO, tetapi saya tidak menemukan jawaban yang berguna saat mencari.
Saya sedang mempertimbangkan untuk menyerah saja dan memakai relay paket RIB01BDC [0] untuk menyalakan Raspberry Pi, lalu mengirim email ketika kontak septic tank tertutup.
[0] https://www.functionaldevices.com/product/rib01bdc/
Buat mikrokontroler membaca pin GPIO secara berkala; jika tinggi berarti kontak terbuka dan alarm tidak berbunyi, sedangkan jika rendah berarti kontak tertutup dan alarm berbunyi.
Konfigurasi GPIO/kontak/resistor/VCC berfungsi sebagai rangkaian pull-up yang menarik salah satu sisi rangkaian ke level logika tinggi, dan resistor membatasi arus yang mengalir saat kontak tertutup.
Jika mikrokontroler mendukung pengaturan pull-up internal pada pin GPIO, Anda juga bisa langsung menghubungkan pin ke kontak tanpa perangkat keras tambahan.
Sebaliknya, jika ada pengaturan pull-down internal, Anda bisa membaliknya dengan menghubungkan VCC ke kontak dan GPIO langsung ke sisi lainnya. Untuk fitur yang tersedia dan pembatasan arus, lihat dokumentasi mikrokontroler.
Tergantung informasi yang Anda inginkan dari pemantauan septic tank, ini juga bisa menjadi opsi yang berguna.
Saya membuat jam pencatat masuk/pulang kerja dengan ESPHome dan M5StickC.
Saat mencatat masuk/pulang, Home Assistant mengirim waktunya ke Google Sheet, dan ini berjalan sangat stabil.
Satu hal menarik: ESP32 mendukung deteksi sentuh kapasitif pada beberapa pin, sehingga permukaan konduktif bisa diubah menjadi tombol smart home atau perangkat input.
Ini juga didukung dengan baik di ESPHome: https://esphome.io/components/binary_sensor/esp32_touch.html
Ada proyek kecil yang ingin saya coba kerjakan
Saya ingin mengambil waktu kedatangan bus di halte dekat rumah melalui API transportasi lokal, lalu menampilkan waktu untuk 3 bus utama di satu layar besar atau di 3 layar kecil terpisah untuk tiap bus
Tidak perlu beresolusi tinggi, tetapi saya ingin cukup besar dan terang agar keluarga bisa melihatnya sekilas dari jauh. Misalnya, dengan display 7-segmen yang menampilkan 3 digit nomor bus dan 4 digit menit tersisa hingga tiba
Harus bisa diperbarui lewat Wi‑Fi, dan tidak masalah jika dipasangkan dengan perangkat berdaya rendah seperti Arduino/Raspberry Pi. Lebih bagus lagi kalau bisa berjalan dengan baterai AA
Yang pertama saya bisa lakukan, tetapi yang kedua sama sekali tidak tahu, dan saya juga belum pernah menyolder. Akan bagus kalau ada yang paham bisa memberi arahan
Kamu bisa menggabungkan komponen display untuk menggambar pada grid piksel https://esphome.io/components/display/, perender teks, driver LED yang dapat dialamati https://esphome.io/components/light/neopixelbus, platform addressable_light yang membuat matriks tampilan di atasnya https://esphome.io/components/display/addressable_light, serta panel LED 8x32 murah https://www.google.com/search?q=8x32+ws2812b
Kalau butuh ruang lebih, kamu bisa membuat beberapa unit atau menyambungkan panel-panelnya
Tentu saja, tidak perlu menciptakan ulang semuanya; kamu juga bisa mengikuti panduan seperti ini: https://community.home-assistant.io/t/led-matrix-with-esphom...
Terutama jika arahnya memanfaatkan ulang hardware yang sudah ada seperti Ulanzi, penyolderan tidak terlalu banyak dibutuhkan; yang penting adalah koneksi data dan catu daya yang benar
ESP32 bisa diprogram dengan Arduino, dan kamu tetap bisa memakai library yang sudah familiar serta penanganan Wi‑Fi seperti biasa
Di Adafruit kamu bisa membeli matriks RGB, dan mereka juga menjual board ESP32 yang bisa menggerakkannya langsung, jadi praktis tinggal colok dan jalan, hampir tidak perlu pengetahuan hardware
Kalau ingin membuat sendiri tetapi butuh panduan, lihat proyek ini yang mendokumentasikan hardware dan software untuk perangkat display teks terhubung Wi‑Fi yang mirip dengan yang kamu inginkan: https://github.com/BlueAndi/esp-rgb-led-matrix
Secara pribadi saya tidak memakainya, tetapi ini terlihat seperti ide yang benar-benar bagus
Dulu saya membuat board sensor dan menulis firmware sendiri, jadi saya perlu melihat apakah ESPHome bisa dikonfigurasi dengan mudah untuk berjalan di board itu
Namun satu fitur yang sudah ada di firmware saya dan benar-benar saya butuhkan adalah pembaruan OTA model pull
Saat ini, kalau saya menyalin firmware ke sebuah folder, semua sensor di rumah otomatis memperbarui diri ke firmware itu melalui server HTTP
Di ESPHome, pembaruan harus didorong ke tiap sensor satu per satu, sehingga merepotkan kalau jumlahnya puluhan
Rasanya lebih mudah dan cepat menulis sendiri firmware yang berkomunikasi dengan backend sederhana
Saya juga penasaran bagaimana kode untuk perangkat ESP32 bisa muat. Kalau ingin OTA pada perangkat flash 4MB, batas programnya secara efektif sekitar 1MB
Program sederhana yang hanya memanggil fungsi library standar seperti GPIO, ADC, UART, Wi‑Fi, HTTPS, server HTTPS, interrupt, FreeRTOS, MQTT, NVS, informasi chip, log, dan OTA saja sudah melewati batas 1MB. Satu scanf saja memakan 30KB
Jika semua log dimatikan dan dikompilasi, ukuran program bisa turun menjadi sekitar 800KB, tetapi bahkan tanpa logika program pun sudah cukup dekat dengan batasnya
Kalau lain kali saya perlu perangkat pemantauan jarak jauh, saya berencana melihatnya lagi
Kalau ada perangkat yang tidak ingin diperbarui, saya sementara memasukkan kata kunci tak terduga ke file YAML agar kompilasi dan pembaruannya gagal
Saya punya cukup banyak perangkat ESP dengan probe suhu di berbagai tempat di rumah, dan sedang mempertimbangkan memindahkannya ke ESPHome agar kode yang perlu dipelihara berkurang
Terutama enak karena pada awalnya bisa di-flash dari browser, lalu setelah itu diperbarui secara nirkabel