Arduino en Home Assistant
Voorgeschiedenis
Omschrijving
Wat is MQTT precies?
- Afkorting: Message Queuing Telemetry Transport
- Principe: Werkt volgens het publish/subscribe-model. Apparaten (clients) publiceren berichten naar een centrale server (broker), en andere apparaten kunnen zich abonneren op die berichten.
- Doel: Efficiënte communicatie met weinig bandbreedte en energieverbruik. Ideaal voor kleine sensoren en microcontrollers zoals Arduino of ESP32.
- Transport: Meestal bovenop TCP/IP, maar kan ook andere betrouwbare netwerkverbindingen gebruiken.
Waarom populair in IoT en Home Assistant?
- Lichtgewicht: Heel weinig overhead, dus geschikt voor apparaten met beperkte rekenkracht.
- Betrouwbaar: Zorgt dat berichten correct en in de juiste volgorde aankomen.
- Flexibel: Je kunt allerlei apparaten koppelen (sensoren, schakelaars, lampen, thermostaten).
- Integratie: Home Assistant heeft native ondersteuning voor MQTT, waardoor Arduino’s en ESP-modules eenvoudig kunnen communiceren met je smart home.
Stel je hebt een Arduino met een temperatuursensor:
- Arduino stuurt de waarde via MQTT naar de broker (bijv. Mosquitto).
- Home Assistant leest die waarde uit en toont hem in het dashboard.
- Je kunt een automatisering maken: “Als temperatuur > 25°C, zet ventilator aan.”
Wat gebruik ik voor apparatuur en software
- Synology NAS (DS720+), mag ook een andere zijn als er maar Docker op kan draaien. (Container Manager)
- Docker container ‘homeassistant/home-assistant’ image. (dis is de home assistant applicatie)
- Eclipse-Mosquitto (connectie tussen Home assistant en de Arduino, is een Broker)
- Wemos D1 MINI V3.1
- Debug tool voor Home Assistant, MQTT-Explorer-0.4.0-beta.6.exe
Hoe installeer je MQTT binnen Home Assitant
Ga in HA naar: Instellingen > Integraties.
Klik op de button onder aan. (+ Intergratie toevoegen)
Zoek op MQTT
Selecteer deze.
De programma’s die je maakt met deze techniek, komen hier onder.
Waar ben ik mee begonnen
Twee voorbeeld programma's
Als eerste eenvoudig voorbeeld met 2 sensoren.
Button, het ingebouwde LED reageerd hier op.
Een analoge sensor; temperatuur. Randum wordt er een temperatuur tussen 20 en 30 °C
Het ziet er in Home Assistant zo uit. (Instellingen > Integraties > MQTT)
Het voorbeeld kan je downloaden hieronder. (Eenvoudig_voorbeeld.zip)
Als je de SSID, WiFi wachtwoord en HA server IP adres gecorrigeerd hebt, kan je de sketch uploaden naar de Arduino.
Ik heb getest op de volgende Arduino’s:
- Arduino Wemos D1 mini V3
- Arduino D1 Mini NodeMcu met ESP8266-12F
- ESP32 DEV Module
- ESP8266 NodeMcu V3 Lua
Het 2e programma is een Lucht kwaliteit project. (download zie hieronder: HomeAssistant_LuchtKwaliteit.zip)
Die meet o.a. tVOC, eCO2 en AQI m.b.v. ENS160 (zie ook Lucht kwaliteit sensor)
en Temperatuur, lucht vochtigheid en luchtdruk m.b.v. BME280 (zie ook BME280)
Beide projecten installeren zich zelf in HA als ze voor de eerste keer zijn opgestart.
Lucht kwaliteit module
Downloads
Libraries:
ArduinoJson.zip (17 downloads )
BME280.zip (17 downloads )
ENS160_-_Adafruit_Fork.zip (21 downloads )
PubSubClient.zip (19 downloads )
Voorbeeld code:
Eenvoudig_voorbeeld.zip (16 downloads )
HomeAssistant_LuchtKwaliteit.zip (18 downloads )
Debug tool:
MQTT-Explorer-0.4.0-beta.6.zip (19 downloads )



