Perjalanan Membuat 2 Saklar ESP32 dengan ESPHome

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:

  1. Compile firmware
  2. Upload ke board
  3. 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.

Spread the love

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.