c’t 08-09/2026
Vibe coding voor developers
Cover van
Cover voor Matter-apparaten gebruiken met Home Assistant: zo werkt het

Matter-apparaten gebruiken met Home Assistant: zo werkt het

Met behulp van de software Home Assistant kun je (smarthome)apparaten van verschillende fabrikanten op applicatieniveau met elkaar verbinden via de universele taal Matter. We laten zien hoe dat werkt met bestaande borderrouters en via een Thread-USB-dongle die op de server is aangesloten.

Lees verder na de advertentie

Matter en Home Assistant: alles onder één dak

Matter moet een einde maken aan de smarthomechaos. Tot nu toe moest je voor elke fabrikant een wirwar van draadloze bridges en apps gebruiken en hopen dat je die op de een of andere manier aan de praat kon krijgen. Dat gaat een stuk beter als je de verschillende componenten integreert via de gratis software Home Assistant.

Die heeft als doel alle smarthomecomponenten onder één dak te brengen en kijkt traditioneel niet naar van welke fabrikant een component komt: elke sensor kan elk apparaat aan- of uitzetten.

Tip!

Beveilig uw huis en blijf dreigingen een stap voor - met Foscam
Beveilig uw huis en blijf dreigingen een stap voor – met Foscam

Slimme IP-camera’s met live toezicht en haarscherpe beveiliging!

Hoewel de netwerkstandaarden Thread en Matter op applicatieniveau merkonafhankelijk werken, hebben beide standaarden zich nog niet op grote schaal doorgezet. Daar zouden producten van IKEA wat aan kunnen veranderen: de Zweden hebben hun smarthome-aanbod volledig omgeschakeld naar Thread en Matter en hebben afscheid genomen van Zigbee als draadloze oplossing.

We laten hier daarom aan de hand van IKEA smarthomegadgets zien hoe je Matter-apparaten in je eigen Home Assistant-opstelling kunt integreren. Hoewel we het hier over IKEA-apparaten hebben, kun je de volgende tips en instructies ook toepassen op Matter-apparaten van andere fabrikanten.

Home Assistant gereedmaken

Er zijn verschillende manieren om Matter-apparaten in Home Assistant te integreren. Voor alle manieren moet je Home Assistant eerst leren omgaan met de Thread-standaard en het Matter-protocol.

Daarvoor open je de instellingen en voeg je in het gedeelte Apparaten & diensten de Thread-integratie toe. Integraties zorgen er in Home Assistant voor dat een apparaat, protocol of standaard beschikbaar wordt – net als een stuurprogramma op een pc.

Daarna volgt de Matter-integratie. Dat is een webserver-app die de datapakketten tussen Home Assistant en de Matter-apparaten verdeelt. Als je Home Assistant draait op de zogeheten Home Assistant Green (een stand-alone box), met het besturingssysteem HAOS in een virtuele machine of op een Raspberry Pi met de officiële Home Assistant-image, is het installeren eenvoudig: je voegt bij de instellingen de Matter-integratie toe en installeert de Matter-server vanuit de app-store van Home Assistant. De server wordt als Docker-container in Home Assistant geïntegreerd.

Als je Home Assistant daarentegen in Docker draait op een Raspberry Pi of een thuisserver, vergt de Matter-server wat meer handwerk omdat je binnen een Docker-container geen extra subcontainer kunt installeren. Aangezien Docker toch al draait, installeer je de Matter-server in plaats daarvan als een aparte container ernaast.

Docker-container

Maak daarvoor in de Docker-map een nieuwe map aan met de naam matter-server en maak daarin met Nano een bestand compose.yaml aan met de volgende inhoud:

services:
  # matter-server
  matterjs-server:
    image: ghcr.io/matter-js/matterjs-server:stable
    container_name: matterjs-server
    restart: unless-stopped
    network_mode: host
    read_only: true
    volumes:
      - ${USERDIR:-$HOME}/docker/matter-server/data:/data/
      - /run/dbus:/run/dbus:ro

De huidige Matter-server op basis van node.js vervangt de oude op Python gebaseerde server die uitgefaseerd is.

Een aandachtspunt bij Node.js is het geheugengebruik. Om dat te beperken, kun je in het Compose-bestand NODE_OPTIONS: "--max-old-space-size=512" gebruiken of een andere waarde (in kB). Die moet je proefondervindelijk bepalen. Meer informatie staat bij de links bij dit artikel.

Zodra de container met de Matter-server is gestart met docker compose up -d, ga je in Home Assistant weer naar de instellingen. Bij Devices & services selecteer je de Thread-integratie. Als je op het tandwielpictogram klikt, krijg je een overzicht van alle borderrouters in het netwerk. Dat zijn de tussenstations tussen het Thread-netwerk van slimme apparaten en het lokale netwerk.

Verderop gaan we in op borderrouters. Als je er meerdere hebt, kies je het gewenste smartdisplay of de gewenste smartspeaker en klik je op de knop Make preferred network.

Daarna schakelt Home Assistant over naar de Matter-integratie, die je direct moet verwelkomen met de vraag naar de URL van de Matter-server. Zo niet, dan roep je de instelling op door op de knop Add hub te klikken. Het vooraf geselecteerde adres van de Matter-server met localhost:5580 hoef je alleen maar te bevestigen door op OK te klikken.

IPv6 activeren

Hoewel de Thread- en Matter-integraties en de Matter-server correct werkten, konden we tijdens onze tests aanvankelijk geen nieuwe apparaten in Home Assistant aanmelden. De oorzaak: Matter werkt met IPv6-adressen, waarvoor de IPv6-ondersteuning op de router en de eindapparaten dan ook ingeschakeld moet zijn.

Het commando ifconfig geeft daar duidelijkheid over: zowel op de interface waarmee de host (zoals een Raspberry Pi) in het thuisnetwerk is aangesloten, als op de virtuele Docker-interface moet een IPv6-adres toegewezen zijn. Op het Debian-systeem voor een Raspberry Pi moet IPv6 al ingeschakeld zijn.

Bij andere distributies of een NAS-besturingssysteem kan dat anders zijn. In dat geval kun je de ondersteuning op de meeste systemen inschakelen door de volgende regels toe te voegen aan het bestand /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6=0
net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.accept_ra_rt_info_max_plen=64
net.ipv6.conf.all.accept_ra=2

Krijg je geen IPv6 via de router van je provider? Dan kun je misschien wel IPv6 voor het LAN instellen op de router (ULA IPv6/SLAAC), of desnoods een eigen IPv6-router draaien, bijvoorbeeld met radvd in een container. Matter vereist alleen lokale IPv6-adressen voor onderlinge communicatie, je hebt geen globale IPv6-adressen nodig. De borderrouter verbindt het Thread-netwerk met het lokale (IPv4-)netwerk.

Koppelen via fabrikant

Eerst beschrijven we het eenvoudigste geval, waarbij je gebruikmaakt van de infrastructuur van de fabrikant: daarvoor worden de smarthomecomponenten via de apps van de fabrikant gekoppeld aan de bridges of hubs van die fabrikant. Dat is heel handig en snel te regelen, maar heeft in het geval van IKEA het nadeel dat de Dirigera-hub die je dan nodig hebt zo’n 60 euro kost.

Je neemt de Dirigera in gebruik volgens de installatie-instructies in de IKEA-app en koppelt de apparaten aan de hub door hun QR-code te scannen. De IKEA-app en de Dirigera-hub nemen dan de rol van de zogeheten Matter-controller over.

In het Matter-beheer van Home Assistant verschijnen de slimme apparaten daarom in eerste instantie niet. De Matter-standaard ondersteunt het delen van afzonderlijke apparaten tussen verschillende Matter-controllers, waardoor de controle aan Home Assistant kan worden overgedragen.

Kies daarvoor bij de IKEA-app een apparaat, tik op het moersleuteltje rechtsboven en selecteer daar de optie om te verbinden via een QR-code. Er wordt dan een nieuwe koppelingscode gegenereerd, die je in Home Assistant invoert.

Open daarvoor in Home Assistant de instellingen en ga naar het onderdeel Matter. Klik daar op Add device, kies Yes. It’s already in use. en vervolgens Other controllers, waarna het invoerveld voor de koppelingscode verschijnt.

Nadat je die hebt ingevoerd, is het apparaat ook beschikbaar in Home Assistant. Dat proces moet je helaas voor elk afzonderlijk apparaat herhalen.

In tegenstelling tot Thread-borderrouters van andere fabrikanten kun je de Dirigera-hub niet als voorkeurs-Thread-netwerk selecteren. Misschien bieden toekomstige versies van Home Assistant deze mogelijkheid wel en kunnen ze de rol van Matter-controller overnemen.

Indirect via Home Assistant

Dit is de tweede mogelijkheid, voor gebruikers die al een Thread-borderrouter hebben zonder dat ze het zelf doorhebben. Daaronder vallen de nieuwere slimme displays en de tv-streamingbox van Google, veel Alexa-displays en ook de HomePod van Apple. Ze zetten allemaal een Thread-netwerk op, dat Home Assistant als zogenaamde Matter-controller beheert nadat je de apparaten rechtstreeks aan Home Assistant gekoppeld hebt.

Als je al een apparaat hebt dat als Thread borderrouter fungeert (zoals een Google Nest Hub V2), kun je daarmee Matter-apparaten koppelen aan Home Assistant.

Dat heeft meteen meerdere voordelen: je bespaart geld, ruimte en energiekosten, omdat je niet meerdere hubs hoeft te kopen en aan te sluiten. Ook het dagelijks gebruik wordt makkelijker omdat niet elk apparaat eerst in de app van de betreffende fabrikant gekoppeld hoeft te worden en vervolgens, zoals hierboven beschreven, voor Home Assistant vrijgegeven moet worden.

Over privacy hoef je je op dit punt geen zorgen te maken. Als de Matter-apparaten via Home Assistant geïntegreerd worden, regelen de borderrouters van Amazon, Apple en Google wel het Thread-radiocontact tussen de Matter-apparaten en Home Assistant, maar ze kunnen de gegevens niet lezen omdat de communicatie versleuteld is. Google en consorten komen dus niet te weten wanneer je in welke kamer het licht aandoet.

Beperkte functionaliteit

Maar er is wel een nadeel dat niet ongenoemd mag blijven: veel fabrikanten stellen niet alle functies beschikbaar als de apparaten niet via hun eigen app worden aangesloten en bediend. Zo kun je een stopcontact dat rechtstreeks met Home Assistant is gekoppeld wel aan- en uitzetten, maar registreert het mogelijk geen verbruiksgegevens. Bij sommige lampen kun je het licht aan- en uitdoen en dimmen, maar blijft de kleurkeuze voorbehouden aan de app van de fabrikant.

De directe integratie van Matter-apparaten is daarom vooral handig voor simpele sensoren: in plaats van 30 of 40 euro te betalen voor een waterlekkagesensor van een bekende fabrikant, kies je liever voor het IKEA-model voor minder dan tien euro – de sensor hoeft niet meer te kunnen dan een alarm afgeven bij een waterlek – en dat lukt ook prima via Matter en Thread.

Om de apparaten zonder de app van de fabrikant te koppelen, ga je weer naar de Thread-instellingen van Home Assistant – maar deze keer niet in de browser op je computer, maar in de smartphone-app. Daar zou het smartdisplay of de speaker al moeten verschijnen in het gedeelte Preferred network.

Als het onder Other networks staat, klik je direct daaronder op de knop Set as preferred network en tik je helemaal onderaan nog op de knop Send credentials to Home Assistant. Dat laatste is nodig zodat Home Assistant toestemming krijgt om nieuwe apparaten op het Thread-netwerk aan te melden.

Daarna kun je nieuwe Matter-apparaten eenvoudig koppelen door direct in de Home Assistant-app in de instellingen onder Matter via de knop Add device een nieuw apparaat te selecteren en de QR-code te scannen of de koppelingscode in te voeren.

Vaker proberen

Bij onze test waren er soms meerdere pogingen nodig met een Nest Home Display als borderrouter. Dat gebeurde echter ook bij het rechtstreeks koppelen met de Dirigera-hub van IKEA.

Blijkbaar was ons Thread-netwerk in een dichtbevolkt stadscentrum, met veel verkeer op de 2,4GHz-band, gevoelig voor storingen. In het algemeen werkte het koppelen betrouwbaarder als we de borderrouter, smartphone en het gewenste apparaat tijdens het koppelen dicht bij elkaar hielden.

Omdat Thread afhankelijk is van Multicast DNS, kan het ook helpen om tijdens het koppelen alle wifirepeaters en meshrouters even uit te schakelen.

Na het succesvol koppelen waren we positief verrast dat IKEA de updateservers van aangesloten apparaten in Matter opslaat. Zo begroette Home Assistant ons na het koppelen van de watersensor meteen met de melding dat er een firmware-update voor het apparaat beschikbaar was. De meeste andere fabrikanten bieden updates alleen aan in combinatie met hun eigen app en hun eigen hub.

De Matter-server controleert zelfs op firmware-updates voor IKEA-apparaten.

Zodra de apparaten geïntegreerd zijn, kan Home Assistant zijn troeven uitspelen en apparaten over alle merkgrenzen heen met elkaar verbinden. Zo konden we met Home Assistant de status van het scrolwiel van de Bilresa-afstandsbediening uitlezen. Twee simpele ‘als-dan’-regels in Home Assistant zijn vervolgens genoeg om daarmee niet het licht te dimmen, maar in plaats daarvan het volume van een streamingluidspreker aan te passen.

In eigen beheer

Als je geen slim apparaat hebt dat als Thread-borderrouter fungeert, kan Home Assistant ook het complete beheer op zich nemen – inclusief het opzetten van het Thread-netwerk. Daarvoor sluit je een USB-dongle aan op je (thuis)server, NAS of Raspberry Pi met Home Assistant, zodat het systeem via Thread kan communiceren. Die variant vergt echter wel wat handmatig werk en nauwkeurige netwerkconfiguraties.

Voor ons eigen Thread-netwerk hebben we gekozen voor de Connect ZBT-2 van de Open Home Foundation, die ook achter de ontwikkeling van Home Assistant zit. Die vind je online voor zo’n 45 euro.

Als je zoals aangeraden Home Assistant draait met de officiële Home Assistant-image in een virtuele machine of op een stand-alone apparaat zoals de Home Assistant Green, wordt de usb-stick automatisch herkend en ingesteld als je hem aansluit. Bij een virtuele machine moet je niet vergeten het apparaat op de host door te laten geven aan de virtuele machine. Als je HAOS draait, voeg je de app OpenThread Border Router toe.

Afhankelijk van welke dongle je gebruikt, wordt die automatisch gedetecteerd of moet je die nog instellen. Dongles die in Thread- of Zigbee-modus kunnen werken moet je voor Matter in Thread-modus zetten. Een gecombineerde Thread/Zigbee-modus is doorgaans niet aanbevolen.

Home Assistant borderrouter

Om de ZBT-2 als Thread-borderrouter in te stellen als je Home Assistant in Docker draait, installeer je daarnaast de serverapplicatie OpenThread Border Router in Docker.

Eerst moet je de ZBT-2 aansluiten en toevoegen in Home Assistant. Daarna installeert Home Assistant automatisch de nieuwste firmware. Het is daarbij belangrijk dat je aangeeft dat de hub via Thread moet communiceren en niet via het Zigbee-netwerk. Vervolgens voer je in de console het commando

ls -l /dev/serial/by-id

uit. In ons geval kregen we

usb-Nabu_Casa_ZBT-2_441BF6854D88-if00
-> ../../ttyACM0

als resultaat. Belangrijk daarbij is de exacte ID van de ZBT-2 en de poort die hij op de computer bezet. Daarnaast moet je met ifconfig nagaan via welke poort de Raspberry Pi of server met het lokale netwerk is verbonden – in ons geval was dat enp1s0.

Die waarden vul je in het Compose-bestand voor de container met Open Thread Border Router in op de betreffende regels onder environment en devices. Ons bestand zag er toen als volgt uit:

services:
  openthread:
    image: openthread/border-router:latest
    container_name: openthread
    network_mode: host
    privileged: true
    environment:
      - TZ=Europe/Amsterdam
      - OT_RCP_DEVICE=spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=460800
      - OT_LOG_LEVEL=7
      - OT_THREAD_IF=wpan0
      - OT_INFRA_IF= enp1s0
      - OT_REST_LISTEN_ADDR=0.0.0.0
      - OT_REST_LISTEN_PORT=9212
    volumes:
      - /home/docker/openthread:/data:rw
    devices:
      - /dev/serial/by-id/usb-Nabu_Casa_ZBT-2_441BF6854D88-if00:/dev/ttyACM0
      - /dev/net/tun:/dev/net/tun
    cap_add:
      - NET_ADMIN
    restart: always

De thuisserver moet ook in die opstelling IPv6 ondersteunen en bovendien IP-forwarding. Bij veel Linux-systemen moet dat laatste eerst nog ingeschakeld worden. Het Openthread-consortium biedt daar een script voor dat die taak automatisch uitvoert.

Thread-netwerk met Openthread

Nadat je de Openthread-server hebt geïnstalleerd en gestart met docker compose up -d, maak je eerst een Thread-netwerk aan. Log daarvoor in op de console van de Docker-container met het commando docker exec -it openthread ot-ctl.

Het commando dataset init new maakt het netwerk aan, dat je vervolgens met het commando dataset kunt bekijken. Daarna wordt het geactiveerd met dataset commit active en gestart met ifconfig up en thread start. Met state kun je controleren of de Openthread-server draait.

Bij Home Assistant voeg je vervolgens de Thread-integratie toe, net zoals bij de hierboven beschreven eerdere configuratie. Bij de instellingen daarvan kies je via het driepuntsmenu rechtsboven de optie Add an OpenThread border router. Daar voer je de URL van de server in http://<server-IP>:9212 , waarna de zojuist geïnstalleerde OpenThread borderrouter bij de Thread-netwerken verschijnt en je die als voorkeursnetwerk kunt instellen.

Om in de toekomst nieuwe Matter-apparaten via de Home Assistant-app te kunnen toevoegen, krijgt de app ten slotte van de Home Assistant-server de inloggegevens voor je eigen Thread-netwerk. Ga daarvoor in de app naar de instellingen, kies daar het item Companion app en ga naar het gedeelte Probleemoplossen of op iOS Debuggen. Daar vind je de optie Synchroniseer de Thread autorisatie. Nadat je de Thread-inloggegevens hebt overgedragen, kun je nieuwe Thread/Matter-apparaten, zoals hierboven al beschreven, direct via de Home Assistant-app koppelen.

Conclusie

Met Home Assistant haal je meer uit Matter-apparaten dan met de apps van IKEA of andere fabrikanten. Je kunt geavanceerde automatiseringen en complexe als-dan-scenario’s instellen en gadgets van alle fabrikanten en zelfs andere draadloze standaarden erbij betrekken.

In het eenvoudigste geval koppel je de apparaten aan de IKEA-hub of een andere Thread-borderrouter en maak je ze beschikbaar als apparaat voor Home Assistant.

Als je meer controle over je gegevens wilt, installeer je een Matter-server in Home Assistant en bedien je de apparaten via een bestaande borderrouter – helemaal zonder de app van de fabrikant – rechtstreeks in Home Assistant.

Als je ook het Thread-netwerk zelf wilt beheren, gebruik je een Thread-dongle en installeer je daarnaast de OpenThread borderrouter. Die optie is echter meer bedoeld voor ambitieuze gebruikers die bereid zijn zich te verdiepen in netwerktopologie en die niet terugdeinzen voor een complexe foutopsporing via de commandline, mocht er eens iets misgaan.

Tip

Waarom NIS2 je dwingt anders naar cybersecurity te kijken
Waarom NIS2 je dwingt anders naar cybersecurity te kijken

Download het e-book en krijg direct inzicht in de stappen die jouw organisatie moet zetten.

Meer over

0

Praat mee

Abonneer
Laat het mij weten wanneer er
0 Reacties
oudste
nieuwste

Inspiratie in je mailbox

Blijf bij op IT-gebied en verbreed je expertise. Ontvang elke week artikelen over de laatste tech-ontwikkelingen, toepassingen, nieuwe hard- en software én ontvang tips en aanbiedingen.

Loginmenu afsluiten