1. Apa Itu Home Assistant?
Home Assistant (HA) adalah platform otomasi rumah pintar open source yang dikembangkan oleh komunitas. Berbeda dari ekosistem proprietary seperti Google Home atau Apple HomeKit, Home Assistant bisa berintegrasi dengan hampir semua perangkat smart home dari berbagai vendor β tanpa terkunci pada satu merek.
Dengan lebih dari 2000+ integrasi, Home Assistant mendukung perangkat dari Xiaomi, Sonoff, Tuya, Philips Hue, Shelly, TP-Link, dan banyak lagi. Platform ini berjalan secara lokal (di rumah Anda), sehingga data tetap privat dan otomasi tetap berjalan meskipun internet mati.
- β 2000+ integrasi
- β 100% lokal & privat
- β Tanpa subscription
- β Customizable maksimal
- β Komunitas besar & aktif
- β Support ESP32 / DIY
- β Mudah digunakan
- β Google Assistant built-in
- β Terbatas pada Google ecosystem
- β Data di cloud Google
- β Butuh internet untuk otomasi
- β Integrasi DIY terbatas
- β Integrasi Apple ecosystem
- β Privasi baik
- β Hanya perangkat bersertifikat
- β Pilihan perangkat terbatas
- β Butuh Apple TV / HomePod
- β Tidak mendukung ESP32 native
2. Instalasi Home Assistant
Ada beberapa cara menginstal Home Assistant. Metode yang direkomendasikan adalah Home Assistant OS (HAOS) β sistem operasi lengkap yang sudah termasuk supervisor, add-on store, dan semua fitur otomatis.
Opsi Instalasi
| Metode | Platform | Kemudahan | Fitur |
|---|---|---|---|
| HAOS (Image) | Raspberry Pi, x86, VM | βββββ | Lengkap (supervisor + add-on) |
| Container (Docker) | Linux, NAS, Server | ββββ | Tanpa supervisor |
| Core (venv) | Python 3.11+ | βββ | Dasar saja |
| Supervised | Debian Linux | ββ | Lengkap tapi manual |
Instalasi di Raspberry Pi (HAOS)
- Download image dari https://www.home-assistant.io/installation/raspberrypi
- Gunakan Raspberry Pi Imager untuk menulis image ke microSD (32GB+)
- Masukkan microSD ke Raspberry Pi, hubungkan Ethernet & power
- Tunggu 5-10 menit untuk first boot
- Buka browser di komputer yang sama, akses http://homeassistant.local:8123
- Ikuti wizard setup: buat akun, atur lokasi, tambahkan perangkat
Instalasi via Docker
# Home Assistant via Docker # Jalankan di terminal Linux/Raspberry Pi mkdir -p ~/homeassistant docker run -d \ --name homeassistant \ --privileged \ --restart=unless-stopped \ -e TZ=Asia/Jakarta \ -v ~/homeassistant:/config \ -v /run/dbus:/run/dbus:ro \ --network=host \ ghcr.io/home-assistant/home-assistant:stable # Akses di browser: http://localhost:8123
Untuk penggunaan rumahan, Raspberry Pi 4 (4GB) sudah sangat memadai. Gunakan microSD kelas A1/A2 atau SSD via USB 3.0 untuk performa lebih baik. Untuk rumah dengan 50+ perangkat, pertimbangkan x86 mini PC.
3. Setup Dashboard
Dashboard adalah antarmuka visual utama Home Assistant tempat Anda memantau dan mengontrol semua perangkat. HA menyediakan editor drag-and-drop yang memudahkan kustomisasi tanpa coding.
Jenis Card pada Dashboard
| Jenis Card | Fungsi | Contoh Penggunaan |
|---|---|---|
| Entities Card | Menampilkan daftar entity | Daftar sensor suhu ruangan |
| Gauge Card | Menampilkan nilai saat ini | Kelembaban, level air |
| History Graph | Grafik data historis | Grafik suhu 24 jam terakhir |
| Thermostat Card | Kontrol suhu AC/heater | Atur target suhu ruangan |
| Picture Elements | Dashboard interaktif dengan gambar | Peta rumah dengan status perangkat |
| Mushroom Cards | Card modern (custom via HACS) | Tampilan minimalis yang cantik |
Contoh Konfigurasi Dashboard (YAML)
# Home Assistant Dashboard Configuration
# BeebaneLabs
title: Rumah Pintar
views:
- title: Beranda
path: home
icon: mdi:home
cards:
# Kartu cuaca
- type: weather-forecast
entity: weather.rumah
show_forecast: true
# Gauge suhu ruang tamu
- type: gauge
entity: sensor.suhu_ruang_tamu
name: Suhu Ruang Tamu
min: 15
max: 45
severity:
green: 20
yellow: 30
red: 35
# Daftar lampu
- type: entities
title: Lampu
entities:
- entity: light.lampu_ruang_tamu
- entity: light.lampu_kamar_tidur
- entity: light.lampu_dapur
- entity: light.lampu_teras
# Grafik suhu 24 jam
- type: history-graph
entities:
- entity: sensor.suhu_ruang_tamu
- entity: sensor.suhu_kamar_tidur
hours_to_show: 24
refresh_interval: 60
4. Integrasi Perangkat
Salah satu keunggulan terbesar Home Assistant adalah kemampuannya mengintegrasikan perangkat dari berbagai vendor dan protokol. Berikut adalah beberapa integrasi paling populer:
Kategori Integrasi Populer
- Lampu & Switch: Philips Hue, Yeelight, Tuya, Sonoff, Shelly, TP-Link Kasa
- Sensor: Xiaomi Aqara, Sonoff SNZB-02, Zigbee sensor generik
- CCTV: RTSP camera, Reolink, Hikvision, UniFi Protect
- Media: Chromecast, Spotify, Smart TV (Samsung, LG)
- AC & Kipas: Broadlink IR, Tuya, Gree, Daikin
- Vacuum: Xiaomi Roborock, Ecovacs, Dreame
- DIY: ESPHome (ESP32/ESP8266), MQTT generik
Menambahkan Integrasi
- Buka Settings β Devices & Services
- Klik "+ Add Integration" (pojok kanan bawah)
- Cari nama perangkat/protokol (misal: "Xiaomi Miio")
- Ikuti wizard konfigurasi (biasanya butuh IP address atau akun)
- Perangkat akan otomatis muncul di dashboard
Untuk perangkat Zigbee, Anda membutuhkan coordinator USB (seperti SONOFF Zigbee 3.0 Dongle Plus) yang dihubungkan ke Raspberry Pi. Untuk perangkat Bluetooth, gunakan Bluetooth adapter USB. WiFi devices langsung terhubung tanpa hardware tambahan.
5. Automasi & Script
Automasi adalah jantung dari rumah pintar. Home Assistant menyediakan sistem automasi yang sangat fleksibel dengan konsep Trigger β Condition β Action.
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β TRIGGER β β CONDITION β β ACTION β β (Pemicu) ββββββΊβ (Syarat) ββββββΊβ (Aksi) β β β β β β β β β’ Waktu β β β’ Matahari β β β’ Nyalakan β β β’ Sensor β β terbenam β β lampu β β β’ Perangkat β β β’ Suhu > 30Β° β β β’ Kirim β β β’ State β β β’ Mode = malamβ β notifikasi β β β’ MQTT msg β β β’ Orang di β β β’ Atur AC β β β β rumah β β β’ Jalankan β β β β β β script β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
Contoh Automasi
# automations.yaml β Rumah Pintar BeebaneLabs
# Automasi 1: Lampu teras menyala saat matahari terbenam
- alias: "Lampu Teras Otomatis"
trigger:
- platform: sun
event: sunset
offset: "+00:15:00" # 15 menit setelah sunset
condition:
- condition: state
entity_id: binary_sensor.pintu_depan
state: "off" # Hanya jika pintu tertutup
action:
- service: light.turn_on
target:
entity_id: light.lampu_teras
data:
brightness_pct: 80
color_temp_kelvin: 3000 # Cahaya hangat
# Automasi 2: Notifikasi jika suhu ruangan terlalu panas
- alias: "Peringatan Suhu Panas"
trigger:
- platform: numeric_state
entity_id: sensor.suhu_ruang_tamu
above: 32
for:
minutes: 5 # Trigger setelah 5 menit di atas 32Β°C
action:
# Kirim notifikasi ke HP
- service: notify.mobile_app
data:
title: "β οΈ Suhu Panas!"
message: >-
Suhu ruang tamu {{ states("sensor.suhu_ruang_tamu") }}Β°C.
AC dinyalakan otomatis.
# Nyalakan AC
- service: climate.turn_on
target:
entity_id: climate.ac_ruang_tamu
- service: climate.set_temperature
target:
entity_id: climate.ac_ruang_tamu
data:
temperature: 24
hvac_mode: cool
# Automasi 3: Semua lampu mati saat mode tidur
- alias: "Mode Tidur"
trigger:
- platform: state
entity_id: input_select.mode_rumah
to: "tidur"
action:
- service: light.turn_off
target:
entity_id: all
- service: lock.lock
target:
entity_id: lock.pintu_depan
- service: alarm_control_panel.alarm_arm_night
target:
entity_id: alarm_control_panel.rumah
6. Integrasi MQTT
MQTT adalah protokol messaging ringan yang menjadi tulang punggung komunikasi banyak perangkat IoT DIY. Home Assistant memiliki integrasi MQTT yang sangat baik, memungkinkan perangkat ESP32/ESP8266 berkomunikasi langsung dengan HA.
Setup MQTT Broker di Home Assistant
- Buka Settings β Add-ons β Add-on Store
- Cari "Mosquitto broker" dan klik Install
- Setelah terinstal, klik Start
- Buka Settings β Devices & Services
- MQTT integration akan otomatis terdeteksi, klik Configure
- Buat username & password untuk autentikasi MQTT
Konfigurasi MQTT di configuration.yaml
# MQTT Sensor Configuration di Home Assistant
# Tambahkan di configuration.yaml
mqtt:
sensor:
# Sensor suhu dari ESP32
- name: "Suhu Dapur"
state_topic: "rumah/dapur/suhu"
unit_of_measurement: "Β°C"
device_class: temperature
value_template: "{{ value_json.suhu }}"
# Sensor kelembaban dari ESP32
- name: "Kelembaban Dapur"
state_topic: "rumah/dapur/kelembaban"
unit_of_measurement: "%"
device_class: humidity
value_template: "{{ value_json.kelembaban }}"
binary_sensor:
# Sensor pintu dari ESP32
- name: "Pintu Dapur"
state_topic: "rumah/dapur/pintu"
device_class: door
payload_on: "OPEN"
payload_off: "CLOSED"
switch:
# Kontrol relay dari ESP32
- name: "Kipas Dapur"
state_topic: "rumah/dapur/kipas/state"
command_topic: "rumah/dapur/kipas/set"
payload_on: "ON"
payload_off: "OFF"
7. Integrasi ESP32
ESP32 adalah mikrokontroler paling populer untuk proyek DIY smart home. Ada dua cara mengintegrasikan ESP32 dengan Home Assistant: MQTT manual (lebih fleksibel) dan ESPHome (lebih mudah, tanpa coding).
Cara 1: ESP32 via MQTT (Manual)
// ESP32 + DHT11 + Relay β Home Assistant via MQTT // BeebaneLabs #include#include #include #define WIFI_SSID "RumahKu" #define WIFI_PASS "password123" #define MQTT_SERVER "192.168.1.100" // IP Home Assistant #define MQTT_USER "mqtt_user" #define MQTT_PASS "mqtt_pass" #define DHT_PIN 4 // Pin sensor DHT11 #define RELAY_PIN 5 // Pin relay kipas WiFiClient espClient; PubSubClient client(espClient); DHT dht(DHT_PIN, DHT11); // Callback saat menerima pesan MQTT (dari HA) void callback(char* topic, byte* payload, unsigned int length) { String message = ""; for (int i = 0; i < length; i++) { message += (char)payload[i]; } Serial.println("Pesan dari HA: " + message); // Kontrol relay (kipas) berdasarkan perintah dari HA if (String(topic) == "rumah/dapur/kipas/set") { if (message == "ON") { digitalWrite(RELAY_PIN, HIGH); } else { digitalWrite(RELAY_PIN, LOW); } // Kirim balik state ke HA client.publish("rumah/dapur/kipas/state", message.c_str()); } } void setup() { Serial.begin(115200); pinMode(RELAY_PIN, OUTPUT); dht.begin(); // Koneksi WiFi WiFi.begin(WIFI_SSID, WIFI_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nWiFi terhubung!"); // Koneksi MQTT client.setServer(MQTT_SERVER, 1883); client.setCallback(callback); } void loop() { // Reconnect jika terputus if (!client.connected()) { if (client.connect("esp32_dapur", MQTT_USER, MQTT_PASS)) { client.subscribe("rumah/dapur/kipas/set"); Serial.println("MQTT terhubung!"); } } client.loop(); // Baca sensor & kirim data setiap 30 detik float suhu = dht.readTemperature(); float kelembaban = dht.readHumidity(); if (!isnan(suhu) && !isnan(kelembaban)) { String json = "{\"suhu\":" + String(suhu, 1) + ",\"kelembaban\":" + String(kelembaban, 1) + "}"; client.publish("rumah/dapur/suhu", json.c_str()); Serial.println("Data terkirim: " + json); } delay(30000); // Kirim setiap 30 detik }
Cara 2: ESP32 via ESPHome (Tanpa Coding)
# ESPHome Configuration β Integrasi ESP32 ke HA tanpa coding!
# Cukup tulis YAML, ESPHome akan generate kode C++ otomatis
esphome:
name: esp32-dapur
platform: ESP32
board: esp32dev
wifi:
ssid: "RumahKu"
password: "password123"
ap:
ssid: "ESP32-Dapur-Fallback"
password: "fallback123"
captive_portal:
logger:
api:
password: "api_pass_123"
ota:
password: "ota_pass_123"
# Sensor DHT11 β otomatis muncul di HA
sensor:
- platform: dht
pin: GPIO4
model: DHT11
temperature:
name: "Suhu Dapur"
humidity:
name: "Kelembaban Dapur"
update_interval: 30s
# Relay switch β otomatis bisa dikontrol dari HA
switch:
- platform: gpio
pin: GPIO5
name: "Kipas Dapur"
id: kipas_dapur
ESPHome sangat direkomendasikan untuk pemula β cukup tulis YAML, upload via OTA (over-the-air), dan perangkat langsung terintegrasi dengan HA. MQTT manual lebih fleksibel untuk proyek kompleks atau jika Anda ingin kontrol penuh atas protokol komunikasi.
8. Fitur Lanjutan
HACS (Home Assistant Community Store)
HACS adalah "app store" komunitas yang menambahkan ribuan custom integration dan card ke Home Assistant. Ini memungkinkan Anda mengakses fitur-fitur yang belum ada di HA official.
# Install HACS di Home Assistant # Jalankan dari terminal HA (via SSH add-on atau Terminal add-on) cd /config curl -sfSL https://hacs.xyz/install | bash - # Restart Home Assistant setelah install ha core restart # Kemudian di UI: # Settings β Devices & Services β Add Integration β HACS # Login dengan GitHub account
Add-on Populer
| Add-on | Fungsi |
|---|---|
| Mosquitto Broker | MQTT broker untuk komunikasi perangkat IoT |
| Node-RED | Visual programming untuk automasi kompleks |
| Grafana | Dashboard visualisasi data lanjutan |
| InfluxDB | Database time-series untuk data historis |
| ESPHome | Konfigurasi & flashing ESP32/ESP8266 |
| WireGuard | VPN untuk akses HA dari luar rumah |
| Terminal & SSH | Akses command line Home Assistant |
| File Editor | Edit file YAML langsung dari browser |
Templates Jinja2
Home Assistant menggunakan template engine Jinja2 untuk membuat sensor virtual, perhitungan, dan logic conditional:
# Sensor virtual menggunakan Jinja2 template
template:
- sensor:
# Hitung rata-rata suhu dari semua ruangan
- name: "Rata-rata Suhu Rumah"
unit_of_measurement: "Β°C"
state: >-
{{ ([
states('sensor.suhu_ruang_tamu') | float(0),
states('sensor.suhu_kamar_tidur') | float(0),
states('sensor.suhu_dapur') | float(0)
] | sum / 3) | round(1) }}
# Status rumah berdasarkan keberadaan penghuni
- name: "Status Rumah"
state: >-
{% if is_state('person.penghuni', 'home') %}
Ada Di Rumah
{% else %}
Pergi
{% endif %}
icon: >-
{% if is_state('person.penghuni', 'home') %}
mdi:home
{% else %}
mdi:home-outline
{% endif %}
Untuk mengakses Home Assistant dari luar jaringan rumah, Anda bisa menggunakan: Home Assistant Cloud (bayar, paling mudah), WireGuard VPN (gratis, aman), atau Cloudflare Tunnel (gratis, butuh domain). Hindari port forwarding langsung karena risiko keamanan.
9. Quiz: Uji Pemahamanmu!
Setelah membaca tutorial di atas, jawablah 5 pertanyaan berikut untuk menguji pemahamanmu tentang Home Assistant: