
Ini adalah hasil diskusi saya dengan ChatGPT untuk membuat saklar menggunakan ESP Home. Serta mengintegrasikannya dengan Home Assistant. Cara ini sudah saya coba dan work. Silahkan…
Ada satu momen menyenangkan dalam dunia IoT: ketika baris kode sederhana berubah menjadi saklar fisik yang benar-benar menyala dan mati.
Dan kabar baiknya — kita tidak perlu Arduino IDE yang ribet. Dengan ESPHome, semuanya terasa lebih bersih, lebih terstruktur, dan jauh lebih nyaman — apalagi kalau Anda bekerja di Ubuntu.
Mari kita mulai dari nol, sampai saklar muncul di Home Assistant.
1️⃣ Instalasi ESPHome di Ubuntu (Menggunakan Python Virtual Environment)
Kalau Anda pengguna Linux, khususnya Ubuntu, cara paling rapi memasang ESPHome adalah menggunakan Python virtual environment (venv).
Kenapa?
Agar dependensi tidak mengganggu sistem utama. Bersih, terisolasi, profesional.
Install dependency dasar
sudo apt update
sudo apt install python3 python3-pip python3-venv -y
Buat environment khusus
mkdir ~/esphome
cd ~/esphome
python3 -m venv venv
source venv/bin/activate
Kalau sudah aktif, prompt terminal biasanya berubah jadi:
(venv) user@ubuntu:~/esphome$
Install ESPHome
pip install esphome
Cek versi:
esphome version
Kalau muncul versi, berarti selesai. Ubuntu Anda sekarang sudah punya “pabrik firmware”.
2️⃣ Cek Koneksi ESP32 ke Komputer
Colokkan ESP32 via USB.
Lalu cek apakah terdeteksi:
ls /dev/ttyUSB*
atau
ls /dev/ttyACM*
Biasanya muncul seperti:
/dev/ttyUSB0
Kalau tidak muncul:
- Cek kabel (banyak kabel hanya untuk charging)
- Pastikan driver CH340 atau CP2102 terinstall
- Tambahkan user ke grup dialout:
sudo usermod -aG dialout $USER
Logout-login kembali setelah itu.
Kalau device sudah terbaca, kita siap lanjut.
3️⃣ Studi Kasus: Membuat 2 Saklar dengan ESP32
Kita buat contoh sederhana:
- GPIO 23 → Relay 1
- GPIO 22 → Relay 2
Buat file:
nano switch2channel.yaml
Isi dengan konfigurasi berikut:
esphome:
name: switch2channel
friendly_name: Switch 2 Channel
esp32:
board: esp32dev
framework:
type: arduino
logger:
api:
ota:
- platform: esphome
password: "12345678"
wifi:
ssid: "NAMA_WIFI"
password: "PASSWORD_WIFI"
ap:
ssid: "Switch2Channel Fallback"
password: "12345678"
captive_portal:
switch:
- platform: gpio
pin: 23
name: "Saklar 1"
- platform: gpio
pin: 22
name: "Saklar 2"
Perhatikan bagian OTA:
Di versi ESPHome terbaru, ota harus ada platform: esphome. Kalau tidak, akan muncul error seperti yang pernah Anda alami.
Simpan file.
4️⃣ Upload / Run ke ESP32
Masih dalam kondisi venv aktif:
esphome run switch2channel.yaml
Pertama kali upload harus via USB.
ESPHome akan:
- Compile firmware
- Upload ke board
- Menampilkan log realtime
Kalau berhasil, di akhir log akan muncul IP address ESP32.
Setelah itu, update berikutnya bisa via OTA:
esphome run switch2channel.yaml
Tanpa USB.
Itulah keindahan ESPHome.
5️⃣ Menghubungkan ke Home Assistant
Begitu ESP32 terkoneksi ke WiFi dan api: aktif, Home Assistant biasanya langsung mendeteksi device baru.
Masuk ke:
Settings → Devices & Services
Biasanya muncul:
Discovered: switch2channel
Klik → Configure → Submit.
Selesai.
Sekarang di dashboard Home Assistant Anda akan muncul:
- Saklar 1
- Saklar 2
Dan dari sinilah semuanya menjadi menarik.
Anda bisa:
- Membuat automation
- Menghubungkan ke jadwal
- Mengontrol lewat HP
- Bahkan lewat Google Assistant
Kenapa ESPHome Menyenangkan?
Sebagai developer (apalagi Anda terbiasa dengan struktur rapi seperti PHP & Laravel), ESPHome terasa seperti:
- Konfiguratif
- Deklaratif
- Versionable (bisa masuk git)
- Mudah direplikasi ke banyak device
Kalau Anda punya 20 device, cukup duplikasi YAML dengan sedikit modifikasi.
Tidak perlu upload manual satu per satu dengan coding C++ seperti Arduino.
Penutup
ESPHome bukan sekadar firmware generator.
Ia adalah jembatan antara:
- Dunia hardware (relay, sensor, GPIO)
- Dunia software modern (Home Assistant, automation, API)
Dan semua itu bisa dimulai dari Ubuntu, satu file YAML, dan satu ESP32.

