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 esphomeof gebruik de Docker-image van ESPHome.
Je eerste apparaat
- Klik op Nieuw apparaat en geef het een naam, bijvoorbeeld
woonkamer. Kies je wifi en het type bord. - De builder maakt een YAML-bestand. Voeg de sensor toe (zie het voorbeeld hieronder).
- 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.
- Daarna verloopt updaten draadloos (OTA) via je wifi.
- 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_sleepzodat 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.yamlen 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:
- ESPHome, met uitleg, onderdelen en voorbeelden;
- De ESPHome-integratie in de documentatie van Home Assistant.