Arduino en Home Assistant

Voorgeschiedenis

Ik ben al een tijdje aan het denken om de Arduino te kunnen koppelen met Home Assistant.
Ik heb even IFTTT (If This Then That) bekekent. Je hebt hier een account voor nodig.
Ik vond het lastige materie om dit aan de praat te krijgen.
Toen kwam ik een dikke week geleden MQTT (Message Queuing Telemetry Transport) tegen.
Hier heb je geen service of account voor nodig, het werkt helemaal binnen je eigen netwerk.
Via Home Assistant zijn de gegevens van de sensoren wel van buit je netwerk te benaderen. Eigenlijk over de hele wereld. 😊

Met redelijk simpele code maak je al een entiteit die bijvoorbeeld de temperatuur uit leest.

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

Met een Wemos D1 MINI V3.1
Eenvoudig voorbeeld van MQTT:

Dit voorbeeld gebruikt:

  • PubSubClient
  • WiFi (ESP8266/ESP32)

Het stuurt elke 5 seconden een waarde naar arduino/test/state.
Dat betekent 1 schakelaar dis je kan omzetten, en de interne LED reageerd hierop.
Rand0m temperatuur wordt getoond in HA. (tussen de 20 en 30 graden C.

Zodra de Arduino wordt aangezet, wordt het apparaat automatisch aangemaakt in Home Assistant.

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)

In HA ziet dat er zo uit:

Beide projecten installeren zich zelf in HA als ze voor de eerste keer zijn opgestart.

Lucht kwaliteit module
Opstelling
Schema
Downloads