ESPHome vs. Tasmota vs. vlastný firmware
| Vlastnosť | ESPHome | Tasmota | Vlastný (Arduino) |
|---|---|---|---|
| Konfigurácia | YAML | Web UI + scripty | C++ kód |
| HA integrácia | natívna, auto-discovery | cez MQTT | manuálna |
| Vlastné senzory | lambda výrazy | obmedzené | plná kontrola |
| OTA aktualizácie | áno, cez HA | áno | manuálne |
| Krivka učenia | nízka | nízka | vysoká |
Pre 90 % smart home projektov je ESPHome najrýchlejšia cesta. Vlastný firmware má zmysel keď potrebuješ špecifickú logiku, real-time reakciu alebo vlastný MQTT protokol.
Inštalácia ESPHome
# Cez pip (odporúčané do virtual env) pip install esphome # Alebo ako Home Assistant add-on (najjednoduchšie) # HA → Settings → Add-ons → ESPHome
Základná YAML konfigurácia
Každé zariadenie má vlastný .yaml súbor. ESPHome ho skompiluje do binárky a nahrá na ESP32.
# livingroom-sensor.yaml
esphome:
name: livingroom-sensor
friendly_name: "Obývačka – senzor"
esp32:
board: esp32dev
framework:
type: arduino
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "ESPHome Fallback"
password: "zalohaAP123"
captive_portal:
logger:
api:
encryption:
key: !secret esphome_api_key
ota:
- platform: esphome
password: !secret ota_password
Senzor DHT22 — teplota a vlhkosť
# Pridaj do livingroom-sensor.yaml
sensor:
- platform: dht
pin: GPIO4
model: DHT22
temperature:
name: "Teplota v obývačke"
accuracy_decimals: 1
filters:
- filter_out: nan
- sliding_window_moving_average:
window_size: 3
send_every: 3
humidity:
name: "Vlhkosť v obývačke"
accuracy_decimals: 0
update_interval: 60s
PIR senzor pohybu
binary_sensor:
- platform: gpio
pin:
number: GPIO13
mode:
input: true
name: "Pohyb v obývačke"
device_class: motion
filters:
- delayed_off: 30s # zostane ON 30s po poslednom pohybe
BMP280 — tlak a teplota cez I2C
i2c:
sda: GPIO21
scl: GPIO22
scan: true
sensor:
- platform: bmp280_i2c
temperature:
name: "Vonkajšia teplota (BMP)"
oversampling: 16x
pressure:
name: "Atmosferický tlak"
unit_of_measurement: hPa
address: 0x76
update_interval: 60s
Nahranie firmware na ESP32
# Prvé nahranie cez USB esphome run livingroom-sensor.yaml # Ďalšie aktualizácie OTA (WiFi) — bez USB kábla esphome run livingroom-sensor.yaml --device 192.168.1.105 # Len kompilácia (bez nahrávania) esphome compile livingroom-sensor.yaml
Integrácia s Home Assistant
Po nahratí firmware sa ESP32 automaticky objaví v Home Assistant cez mDNS (Zeroconf). HA vypíše notifikáciu „Nové zariadenie objavené". Klikni Konfigurovať, zadaj API kľúč zo YAML — a všetky entity (senzory, binary_sensory) sú okamžite dostupné.
Automatizácia na základe senzora
# Home Assistant automations.yaml
automation:
- alias: "Upozornenie – vysoká vlhkosť"
trigger:
platform: numeric_state
entity_id: sensor.vlhkost_v_obyvacke
above: 70
for: "00:10:00"
action:
service: notify.mobile_app_telefon
data:
title: "Vlhkosť!"
message: "Vlhkosť v obývačke je {{ states('sensor.vlhkost_v_obyvacke') }}%"
Secrets — správa hesiel
Nikdy nedávaj heslá priamo do YAML. Použi súbor secrets.yaml v rovnakom adresári:
# secrets.yaml wifi_ssid: "MojaWifi" wifi_password: "tajneheslo123" esphome_api_key: "base64encodedkey==" ota_password: "otaheslo"
Tipy pre produkčné nasadenie
- Statická IP pre ESP32 urýchli HA discovery a eliminuje DHCP problémy
- Fallback AP (captive_portal) zachráni zariadenie ak sa zmení WiFi heslo
- OTA password chráni pred neautorizovaným nahratím firmware
- API encryption key šifruje komunikáciu medzi HA a ESP32
filter_out: nanfiltruje chybné čítania DHT22 (senzor občas vráti NaN)