ESPHome vs. Tasmota vs. vlastný firmware

VlastnosťESPHomeTasmotaVlastný (Arduino)
KonfiguráciaYAMLWeb UI + scriptyC++ kód
HA integrácianatívna, auto-discoverycez MQTTmanuálna
Vlastné senzorylambda výrazyobmedzenéplná kontrola
OTA aktualizácieáno, cez HAánomanuálne
Krivka učenianízkanízkavysoká

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