Dari Iseng-iseng Jadi Beneran, Cerita Bikin Mushola Timer Pakai Home Assistant

     

Awal mula: “Kayaknya keren kalau lampu mushola bisa kasih tanda gitu deh”

Jadi ceritanya, suatu hari saya kepikiran:

“Gimana kalau di depan mushola rumah kita pasang lampu dekorasi mihrab? Nyala 5 menit sebelum adzan, mati 10 menit setelah adzan. Biar orang yang lewat langsung paham: ‘Oh, mushola aktif. Adzan sebentar lagi. Atau baru selesai sholat.’”

Ide kelihatannya simpel. Tapi ternyata… eksekusinya nggak sesimpel itu.


Part 1: Belanja komponen

Langsung cari-cari kebutuhan:

Smart switch-nya saya ambil yang support WiFi, soalnya router mushola sudah ada. Masangnya juga relatif gampang, tinggal ganti di panel lampu yang sudah terpasang.


Part 2: Ikutin tutorial di Medium

Jujur saya awalnya nggak paham caranya ngontrol device ini secara programatik. Iseng cari-cari, ketemu tutorial ini:

👉 Control BARDI Smart Home Devices using Python — Randhi

Ternyata BARDI itu cuma rebranding device Tuya. Jadi bisa dikontrol pakai library Python tinytuya.

Langkahnya kurang lebih:

  1. Install tinytuya
  2. Bikin akun di iot.tuya.com
  3. Bikin cloud project
  4. Dapat API Key & API Secret
  5. Hubungkan aplikasi Smart Life ke akun developer
  6. Jalankan wizard: python -m tinytuya wizard
  7. Dapat local key, siap programming

Kodenya singkat:

import tinytuya

device = tinytuya.OutletDevice(
    dev_id="YOUR_DEVICE_ID",
    address="192.168.x.x",
    key="YOUR_LOCAL_KEY"
)
device.set_version(3.4)
device.turn_on()

Saya jalankan, dan… BERHASIL! LED menyala dari Python. Rasanya senang banget.

Tapi… kebahagiaan itu nggak lama.


Part 3: Masa trial habis

Sekitar sebulan kemudian, saya dapet email:

“Your Tuya IoT Basic annual subscription trial has expired.”

Local key yang sudah saya dapatkan nggak bisa dipakai lagi untuk kontrol lewat cloud. Sebenarnya device masih bisa dikontrol via local network, tapi syaratnya: harus ada komputer yang hidup 247 buat jalanin script.

Masalahnya, saya nggak punya server di rumah. Laptop biasa mati kalau tidur. Raspberry Pi lagi dipakai semua.

Alternatif lain sempat kepikiran:

Semuanya terasa nggak pas.


Part 4: Cerita ke Opencode AI

Akhirnya saya cerita ke Opencode:

“Saya mau bikin automation: LED nyala sebelum adzan, mati setelah adzan. Udah cobain tinytuya tapi butuh server 247. Saya di Windows, ada solusi nggak?”

Jawabannya singkat:

“Pake Home Assistant aja.”

Singkat, tapi langsung ngena. Memang itu solusi paling pas buat kebutuhan ini — home automation terpusat yang bisa jalan terus di background.


Part 5: Pasang Home Assistant di Hyper-V

Saya nggak mau beli hardware baru. Untungnya di kantor ada PC yang nyala 247 — komputer server IT yang jarang dimatiin. Speknya biasa aja: PC Windows, RAM 32GB, Intel Core i7.

Langkah-langkahnya:

  1. Aktifkan Hyper-V di Windows
  2. Download HAOS image .qcow2 dari home-assistant.io
  3. Bikin Virtual Machine:
    • RAM 4GB
    • Disk 32GB
    • Network Bridge (biar dapet IP lokal)
  4. Boot dari image, tunggu sekitar 15 menit
  5. Akses via browser: http://homeassistant.local:8123

Tampilan Home Assistant muncul. Proses instalasi ternyata gampang, tanpa ribet command line.


Part 6: Hubungkan Smart Switch

Masuk ke UI Home Assistant:

  1. Settings → Devices & Services → Add Integration
  2. Pilih Tuya (kalau belum ada, install dari HACS dulu)
  3. Login pakai akun Tuya yang sudah expired tadi? GAGAL.

Saya ganti strategi: Local Control.

Di Home Assistant, cari device via IP. Karena smart switch-nya pakai WiFi yang sama, HA bisa mendeteksi secara otomatis.

⚠️ Catatan penting: Pastikan switch support local control dan firmware-nya nggak ngeblokir koneksi.

Ketemu! Sekarang ada entity bernama switch.led_mushola_switch_1 di HA. Dari UI bisa ON/OFF langsung. LED hidup lagi. Alhamdulillah!


Part 7: Otomatisasi pakai jadwal sholat

Tantangan berikutnya: bikin lampu nyala/mati otomatis sesuai waktu adzan.

Awalnya kepikiran bikin automation manual:

trigger:
  - platform: time
    at: "04:30:00"
action:
  - service: switch.turn_on
    target:
      entity_id: switch.led_mushola_switch_1

Tapi ini nggak fleksibel — harus isi manual setiap waktu, padahal jadwal adzan berubah tiap hari (walaupun cuma sedikit).

Saya butuh API jadwal sholat. Akhirnya pakai Aladhan API (gratisan):

GET http://api.aladhan.com/v1/timings/{date}
    ?latitude=-6.9175&longitude=107.6191&method=20

Method 20 itu Kemenag — tepat untuk Indonesia. Response-nya lengkap ada semua waktu sholat. Tinggal parsing dan jadwalkan automasi.


Part 8: Dari AppDaemon ke HACS

Awalnya saya coba pakai AppDaemon — addon di HA yang bisa jalanin Python script terjadwal.

Script yang dibuat kurang lebih:

class MusholaLEDTimer(hass.Hass):
    def initialize(self):
        # ambil jadwal sholat dari Aladhan API
        # jadwalkan ON/OFF pakai self.run_at()

AppDaemon jalan… tapi konfigurasinya ribet. Satu error bisa bikin seluruh aplikasi mati, dan log-nya nggak gampang dibaca.

Saya cerita lagi ke Opencode:

“AppDaemon error terus, susah di-debug. Ada solusi lain?”

Opencode menjawab:

“Bikin custom HACS integration aja. Lebih native, gampang di-debug, bahkan bisa dipublish ke HACS store.”

Saya nggak punya pengalaman bikin integrasi HA. Tapi ya sudahlah, gas aja!


Part 9: Bikin integrasi dari nol (dibantu AI)

Saya kasih requirement ke Opencode:

Dalam hitungan jam, Opencode bikin struktur integrasi lengkap:

custom_components/mushola_timer/
├── __init__.py
├── config_flow.py
├── coordinator.py
├── sensor.py
├── binary_sensor.py
├── strings.json
├── manifest.json
└── icon.svg

Saya tinggal tes di HA:

  1. Settings → Devices & Services → Add Integration
  2. Search “Adzan Timer Switch”
  3. Masukkan ID switch: switch.led_mushola_switch_1
  4. Atur timing (5 menit sebelum, 10 menit sesudah)
  5. Finish

WOW, LANGSUNG JALAN!

LED hidup dan mati otomatis sesuai jadwal sholat. Nggak ada script eksternal, nggak perlu server lain. Semua berjalan rapi di dalam Home Assistant Hyper-V kantor.


Part 10: Publik ke HACS Store

Integrasinya sudah jalan mulus. Tiba-tiba Opencode nanya:

“Mau publish ke HACS nggak? Biar orang lain bisa install dari store.”

Saya kaget sekaligus seneng: “Bisa gitu? Ya mau dong!”

Kami siapkan:

Prosesnya:

  1. Bikin repo publik di GitHub
  2. Push semua file
  3. Bikin Release
  4. Submit ke HACS via Pull Request

Sekarang orang lain bisa install dengan sekali klik dari HACS store. Senang rasanya bisa berbagi.


Hasil akhir

Hari ini di mushola rumah:

Semua dimulai dari keinginan sederhana: membuat mushola terlihat hidup dari luar.

Ternyata, yang dibutuhkan bukan cuma hardware — tapi juga belajar pakai alat yang tepat untuk mengotomatisasi rumah.


Yang saya pelajari

  1. Trial Tuya itu cuma sementara — kalau mau lokal, pastikan device support local key
  2. Home Assistant bukan cuma buat ahli IT — UI-nya sudah cukup ramah untuk pemula
  3. Agentic Coding itu keren — dengan menjelaskan kebutuhan secara jelas, AI bisa bikin integrasi dari nol
  4. Komunitas HACS luar biasa — banyak integrasi custom dari relawan, dan kamu juga bisa ikut kontribusi

Repositori

Kode lengkapnya ada di sini: 👉 github.com/kamilersz/homeassistant-adzan-timer-switch

Clone, install, atau ikut ngoprek — semuanya bebas.


Jazakallahu khair untuk semua yang sudah membantu proyek ini berjalan. Kalau ada yang mau didiskusikan atau ditanyakan, silakan buka GitHub Issue atau DM aja @kamilersz.