Handleidingen

ESPHome: eigen sensoren maken met een ESP32

Met ESPHome maak je zelf sensoren en schakelaars voor Home Assistant, zonder te programmeren. Je beschrijft in een tekstbestand (YAML) wat er op je ESP32 aangesloten zit; ESPHome maakt daar de software van, zet die op het bordje en Home Assistant ziet het apparaat meteen. Zo bouw je voor een paar euro een temperatuursensor, een bewegingsmelder of een afstandsbediening.

Wat heb je nodig?

  • Een ESP32-bordje (een DevKit werkt prima) en een USB-kabel met data (sommige kabels laden alleen).
  • Een sensor om mee te beginnen, bijvoorbeeld een BME280 voor temperatuur, luchtvochtigheid en luchtdruk (I2C).
  • Vier draadjes: voeding (3,3 V), massa, SDA en SCL.
  • Home Assistant, en de ESPHome-add-on of de losse tool.

ESPHome installeren

  • Home Assistant OS: installeer de add-on ESPHome Device Builder uit de add-on-winkel en open hem via de zijbalk.
  • Zonder add-on: installeer ESPHome met pip install esphome of gebruik de Docker-image van ESPHome.

Je eerste apparaat

  1. Klik op Nieuw apparaat en geef het een naam, bijvoorbeeld woonkamer. Kies je wifi en het type bord.
  2. De builder maakt een YAML-bestand. Voeg de sensor toe (zie het voorbeeld hieronder).
  3. Klik op Installeren. De eerste keer ga je via USB. Werkt Plug into this computer niet (dat vraagt een beveiligde verbinding), gebruik dan de pagina web.esphome.io met het gedownloade bestand, of installeer vanaf een computer met de losse tool.
  4. Daarna verloopt updaten draadloos (OTA) via je wifi.
  5. Home Assistant meldt het nieuwe apparaat onder Apparaten en diensten. Klik op Configureren en vul de coderingssleutel in uit je YAML-bestand.

Voorbeeld: temperatuur en vochtigheid

Dit is een voorbeeld voor een ESP32 en een BME280 op de standaard I2C-pennen (GPIO21 en GPIO22). De namen en sleutels vul je zelf in; de builder maakt de sleutel al aan.

esphome:
  name: woonkamer

esp32:
  board: esp32dev

logger:

api:
  encryption:
    key: "JOUW_EIGEN_SLEUTEL"

ota:
  - platform: esphome
    password: "JOUW_EIGEN_WACHTWOORD"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Woonkamer Hotspot"
    password: "kies-een-ander-wachtwoord"

captive_portal:

i2c:
  sda: GPIO21
  scl: GPIO22

sensor:
  - platform: bme280_i2c
    address: 0x76
    temperature:
      name: "Temperatuur"
    humidity:
      name: "Luchtvochtigheid"
    pressure:
      name: "Luchtdruk"
    update_interval: 60s

De naam van het onderdeel en de opmaak veranderen af en toe met nieuwe versies. Zie je een foutmelding, kijk dan in de documentatie van je ESPHome-versie. Heeft je BME280 een ander adres (vaak 0x77), pas dat aan.

Tips

  • Kies je pennen verstandig. Niet elke pin van een ESP32 is overal geschikt: sommige hebben een bijzondere functie bij het opstarten, andere zijn alleen invoer. Zie onze pinout van ESP32, Pico en Arduino Uno.
  • Op batterij? Gebruik het onderdeel deep_sleep zodat het bordje tussen metingen slaapt. Hoe lang een batterij dan meegaat, reken je uit met onze Batterijduur-tool.
  • Houd je geheimen apart. Zet wachtwoorden in secrets.yaml en deel of upload dat bestand nergens.
  • Zet de codering aan. Het apparaat is dan alleen met jouw Home Assistant te gebruiken.
  • Haal je sensoren uit elkaars buurt: een warme chip naast de sensor geeft een te hoge temperatuur.

Bronnen en bronvermelding

Dit artikel is in eigen woorden geschreven. Meer lezen: