> ## Content Index
> Fetch the complete content index at: https://broddin.be/llms.txt
> Use this file to discover other available public pages before exploring further.

# Hang je huis vol sensors met ESPHome
- URL: https://broddin.be/hang-je-huis-vol-sensors-met-esphome/
- Published: 2021-01-15T07:00:00.000Z
- Updated: 2026-07-19T19:05:19.000Z
- Author: Tim Broddin
- Tags: esphome, #wordpress, #Import 2024-02-03 13:15, #broddin, #Migrated-1784487752640, #wp, #wp-post, #Import 2026-07-19 19:02

Tegenwoordig smijten verschillende fabrikanten je naar je hoofd met toestellen om je huis **slimmer** te maken. Van regenmeters tot slimme stekkers en weerstations. Je kan hier veel **geld aan verspillen**, of zo’n slimme toestellen gewoon **zelf maken**.

## ESP 

Zoals ik reeds zei in mijn artikel over [onze traphal met 600 leds](https://broddin.be/2021/01/05/600-leds-met-een-esp8266-en-wled/) zijn de **ESP-bordjes** van Espressif ideaal voor wanneer je dingen wil maken die verbinden met het Internet:

Al een geluk zijn er een andere ontwikkelbordjes die daar wel heel goed in zijn. Die bordjes bevatten de **ESP8266-**microchip. Die chip is op dezelfde manier te programmeren als een Arduino, maar heeft standaard **ingebouwde WiFi**, en de nodige bibliotheken om IoT-toepassingen mogelijk te maken. Zijn grote broer de ESP32 kan naast dat alles ook Bluetooth (en is dubbel zo snel).

## Go big or go home

Dit is wat ik met mijn allereerste ESP8266 gemaakt heb:

![](https://broddinblog.on-forge.com/storage/447/img-9928.jpg)

Heel veel draden, een bewegingssensor, een lichtsensor, een microfoon, een temperatuur- en vochtigheidssensor, een schermpje en een laserstraal. Dit ding hangt nog steeds op in onze vergaderruimte op de VRT en is natuurlijk **totale overkill** om te zien of het licht aan is.

Ik heb er destijds **veel te veel tijd** ingestoken, maar het leerde me wel hoe je met een ESP verbindt met het netwerk en ineens ook de beginselen van [MQTT](https://mqtt.org/?ref=broddin.be) en [node-red](https://nodered.org/?ref=broddin.be).

Alles dat de sensoren opvangen wordt elke 10 seconden naar een MQTT-server (een soort telefooncentrale voor IoT-toepassingen) doorgestuurd, die het dan op zijn beurt weer meedeelt aan een kleine applicatie die ik in node-red heb geschreven.

![Jammer genoeg heeft iemand de stroom uitgetrokken.](https://broddinblog.on-forge.com/storage/448/screenshot-2021-01-14-at-094204.jpg)

Jammer genoeg heeft iemand de stroom uitgetrokken.

Het schrijven van [de code](https://gist.github.com/TimBroddin/5a26f8a42f78ee2171968015d66928be?ref=broddin.be) en het opzetten van [Mosquitto MQQT ](https://mosquitto.org/?ref=broddin.be)en [node-red](https://nodered.org/?ref=broddin.be) had me allemaal bespaard gebleven als ik had geweten dat er een project bestaat dat al die dingen voor jou doet: **ESPHome**.

## ESPHome

ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.

Kort samengevat: ESPHome is **een firmware** voor ESP dat je toestaat dingen zoals hierboven te maken zonder code te schrijven, en integreert met Home Assistant en anderen.

Na installatie (`pip3 install esphome`) start je eenvoudig een nieuw project via de wizard (`esphome serverkast.yaml wizard`) en na het beantwoorden van enkele vragen schrijft de wizard een YAML-bestand weg met daarin de minimale configuratie:

```yaml
esphome:
  name: serverkast
  platform: ESP8266
  board: nodemcuv2
wifi:
ssid: ""
password: ""
Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Sample Fallback Hotspot"
password: ""
captive_portal:
Enable logging
logger:
Enable Home Assistant API
api:
ota:
```

Wanneer je dit nu **flasht** op je ESP (`esphome run serverkast.yaml`) dan gaat je ESP terug opstarten, verbinding maken met je WiFi-netwerk en tevoorschijn komen in Home Assistant.

Natuurlijk heb je hier nog geen bal aan. Tijd dus om wat **sensors** te verbinden. In mijn serverkast ligt een ESP8266 met een DHT11 temperatuur- en vochtigheidssensor verbonden met PIN D2\. In het configuratiebestand geeft dat dan (onder `ota:`)

```yaml
sensor:
  - platform: dht
    pin: D2
    model: DHT11
    temperature:
      name: "Serverkast Temperature"
      filters:
        - calibrate_linear:
            - 0.0 -> 0.0
            - 24.0 -> 23.5
    humidity:
      name: "Serverkast Humidity"
    update_interval: 60s
```

(Omdat DHT11 temperatuursensors wel spotgoedkoop maar **niet echt accuraat** zijn vindt er een kleine calibratie plaats: 24 graden wordt bijgesteld naar 23,5.)

Na het opnieuw flashen (via USB of over WiFi) komen die sensors dan proper binnen in **HomeAssistant**:

![](https://broddinblog.on-forge.com/storage/449/screenshot-2021-01-14-at-100948.jpg)

In HomeAssistant kan de data van deze sensor nu gebruikt worden om **automatisaties** mee uit te voeren, of om **mooie grafieken** te maken met bijvoorbeeld [InfluxDB](https://www.influxdata.com/?ref=broddin.be):

![Rara, wanneer is de chauffage uitgevallen terwijl we weg waren?](https://broddinblog.on-forge.com/storage/450/screenshot-2021-01-14-at-101143.jpg)

Rara, wanneer is de chauffage uitgevallen terwijl we weg waren?

### Sensors, knoppen, schermen, …

Het mooie aan ESPHome is dat **alles dat je maar kan bedenken** out of the box werkt. Een e-paper display eraan hangen? Een camera? Of je eigen IR-afstandsbediening maken? Het kan allemaal, en het werkt allemaal via hetzelfde configuratiebestand. Een overzicht van **alle ondersteunde componenten** vind je [hier](https://esphome.io/?ref=broddin.be).

### Automatisaties in ESPHome

Een automatisatie die ik nog gepland heb staan voor in [mijn serverkast](https://broddin.be/2021/01/06/ons-thuisnetwerk/) is **automatisch een ventilatiefan** te laten draaien wanneer de temperatuur hoger is dan 30°. Dit kan in de interface van Hom eAssistant, maar evengoed in het configuratiebestand zelf:

```yaml
 sensor:
  - platform: dht
    pin: D2
    model: DHT11
    temperature:
      name: "Serverkast Temperature"
      filters:
        - calibrate_linear:
            - 0.0 -> 0.0
            - 24.0 -> 23.5
      on_value_range:
        - above: 30.0
          then:
            - fan.turn_on: fan
        - below: 30.0
          then:
            - fan.turn_off: fan
```

Dit laatste heeft als voordeel dat je automatisatie ook werkt als HomeAssistant niet bereikbaar is, en is zeker voor **simpele automatisaties** die geen andere apparaten in je netwerk nodig hebben aan te bevelen.

### Automatisaties in HomeAssistant

Tijdens de kerstperiode had ik een ESP verbonden met wat leds (toen kende ik [WLED](https://broddin.be/2021/01/05/600-leds-met-een-esp8266-en-wled/) nog niet) en een knop. Als je op die knop drukte begon er op onze Google Nest Hub **kerstmuziek** te spelen en gingen de lampjes aan.

ESPHome

Hiervoor stuurt de ESPHome een **event** naar HomeAssistant:

```yaml
binary_sensor:
  - platform: gpio
    pin:
      number: D0
      mode: INPUT_PULLDOWN_16
    name: "Button"
    on_press:
      then:
        - homeassistant.event:
            event: esphome.button_pressed
            data:
              title: Button was pressed
```

In HomeAssistant wordt vervolgens het volume van de Nest op 75% gezet, een willekeurig kerstnummer gekozen, de lampjes aangezet en de scene Gezellig op de Hue ingeschakeld.

```yaml
- id: '1608044655971'
  alias: Play xmas
  description: ''
  trigger:
  - platform: event
    event_type: esphome.button_pressed
  condition:
  - condition: device
    type: is_off
    device_id: 3a18233816ee484b9780e3448c416fec
    entity_id: light.xmas_leds
    domain: light
  action:
  - service: media_player.volume_set
    entity_id: media_player.woonkamer
    data:
      volume_level: '0.75'
  - service: media_player.play_media
    data:
      media_content_type: music
    entity_id: media_player.woonkamer
    data_template:
      media_content_id: '{{  [
"http://www.edsstuff.org/Music/Christmas/Disney/Disc%20A/14-White%20Christmas.mp3",
"http://news.bpmsupreme.com/wp-content/uploads/2015/12/Mariah-Carey-All-I-Want-For-Christmas-Is-You-Clean.mp3",
] | random }}'
  - type: turn_on
    device_id: 3a18233816ee484b9780e3448c416fec
    entity_id: light.xmas_leds
    domain: light
    brightness_pct: 50
  - service: hue.hue_activate_scene
    data:
      group_name: Living
      scene_name: Gezellig
```

Opgelet als je zoiets maakt en kinderen hebt. Dit word je heel snel beu.

### ESPHome updaten in Home Assistant

Na de eerste keer flashen via USB kan je ESPHome gewoon **OTA** (over-the-air – over WiFi dus) updaten. Dit is handig want zo kan je je sensors **rustig laten hangen** en toch configuratiewijzigingen doorvoeren.

In HomeAssistant heb je daarnaast ook een [ESPHome community add-on](https://esphome.io/guides/getting%5Fstarted%5Fhassio.html?ref=broddin.be). Die bevat de laatste versie van ESPHome en staat je toe om vanuit de Home Assistant interface updates uit te voeren.

![](https://broddinblog.on-forge.com/storage/451/screenshot-2021-01-14-at-104201.jpg)

Ik kopieer mijn configuratiebestanden altijd na het flashen via USB hierheen. Dit maakt **updaten van eender waar** mogelijk, en geeft makkelijk toegang tot de **logs** en **status** van mijn verschillende apparaten.

## Het resultaat

Ik wil nog wat zottere dingen doen met ESPHome in de toekomst, maar voorlopig hou ik er gewoon de temperatuur en vochtigheid mee bij.

![](https://broddinblog.on-forge.com/storage/452/screenshot-2021-01-14-at-120523-1.jpg)

## Nog vragen? Contacteer me gerust!