Integreer Zigbee-apparaten in je smarthome
Het grote voordeel van Home Assistant is dat het een breed gamma aan apparaten en diensten ondersteunt voor smarthomes. In dit artikel leggen we uit wat je nodig hebt om Zigbee-apparaten aan te sturen en 433MHz-sensors uit te lezen. We kijken ook kort naar Thread en Matter, smarthomeprotocollen die in opkomst zijn en waarvoor Home Assistant experimentele ondersteuning biedt.
Na het lezen van dit artikel weet je hoe je je Zigbee-apparaten en apparaten die via het 433MHz-protocol uitzenden kunt toevoegen aan Home Assistant. Zodat jij vanaf één apparaat je hele huis kunt aansturen. Daar heb je voor nodig:
- Een transceiver voor Zigbee-apparaten
- Een microcontroller met ingebouwde ontvanger en antenne voor senors die op 433MHz uitzenden
- OpenMQTTGateway die de signalen van de sensors decodeert en naar Home Assistant stuurt
Ook interessant: Welke typen beveiligingssensoren zijn er om mijn huis te beveiligen?
Zonder enige speciale hardware herkent Home Assistant al allerlei apparaten, zoals bluetooth-sensors of de printer in je lokale netwerk. Extra ondersteuning voor apparaten voeg je toe via een integratie. In dit artikel brengen we dat in de praktijk voor Zigbee en voor apparaten die op een frequentie van 433,92 MHz radiosignalen uitsturen. Tot slot kijken we ook naar de ondersteuning voor Matter, het protocol waar zowat alle grote namen in de smarthomewereld zich achter hebben geschaard.
Home Assistant als Zigbee-hub
Zigbee is een populair draadloos protocol voor smarthomes. Honderden fabrikanten hebben Zigbee-apparaten op de markt gebracht, van schakelaars en lampen (bijvoorbeeld Philips Hue) tot diverse soorten sensors. In principe zijn ze ook allemaal compatibel met elkaar. Je hebt wel een Zigbee-coördinator nodig, vaak een hub genoemd, omdat de apparaten geen gebruikmaken van wifi, maar van een eigen draadloos protocol.
Van Home Assistant kun je ook een Zigbee-hub maken, zodat al je Zigbee-apparaten ermee te bedienen zijn. Daarvoor heb je een Zigbee-transceiver nodig. Dit is een apparaatje, doorgaans in de vorm van een usb-dongel, die een radiochip voor Zigbee bevat en het protocol via usb naar je Raspberry Pi of computer overdraagt. Zie het kader ‘Compatibele Zigbee-transceivers’ voor wat modellen die door Home Assistant worden ondersteund.
Home Assistant SkyConnect
Een van die compatibele Zigbee-transceivers is Home Assistant SkyConnect, ontwikkeld door de makers van Home Assistant. Sluit de dongel via de meegeleverde usb-verlengkabel aan op een usb-poort van je Raspberry Pi. Zorg dat de dongel niet in de buurt zit van een usb3-apparaat, zeker geen externe harde schijf of ssd, en ook niet in de buurt van een wifi-apparaat. Dat veroorzaakt immers storingen in de 2,4GHz-frequentieband van Zigbee.
Als alles goed is, zou je nu al een notificatie van Home Assistant moeten zien dat er een nieuw apparaat is ontdekt: SkyConnect v1.0 van het type Zigbee Home Automation. Klik op Configureer. Bevestig dat je SkyConnect wilt instellen en kies dan Create a network. Home Assistant maakt nu een apparaat voor je Zigbee-coördinator aan. Ken dit toe aan een ruimte en klik op Voltooien.
Zigbee-apparaten toevoegen
Als je nu een Zigbee-apparaat aan je netwerk wilt toevoegen, moet je het eerst aan je coördinator koppelen. De manier om dat te doen, hangt van het apparaat af. Vaak dien je enkele seconden een knopje op het apparaat ingedrukt te houden, waarna er een ledje van kleur verandert. Volg dus de instructies uit de handleiding van je apparaat voor pairing, tot je apparaat wacht om te koppelen met de coördinator.
Open dan in Home Assistant bij je integraties de apparaatpagina van de Zigbee Coordinator. Klik bij Apparaat info op Voeg apparaten toe via dit apparaat. De coördinator zoekt nu naar apparaten die in pairingmodus staan en voegt ze toe aan het netwerk. Als dat is gelukt, zie je de melding Het apparaat is klaar voor gebruik en kun je de apparaatnaam wijzigen en een ruimte instellen. Koppel nog andere apparaten of verlaat de pagina.
Apparaatinformatie
Vanaf nu zijn je gekoppelde Zigbee-apparaten ook aan het dashboard van Home Assistant toegevoegd en vind je ze op de pagina met integraties bij SkyConnect. Klik je op een van de apparaten in de integratie, dan krijg je de vertrouwde kaders te zien zoals bij andere apparaten. Bij Apparaat info staat een link naar de Zigbee-coördinator waarmee het apparaat is verbonden. En als je op Zigbee info klikt, krijg je informatie te zien zoals het type apparaat, de stroombron en het netwerkadres.
Van sommige Zigbee-apparaten kun je hun gedrag nog instellen. Zo kan een slimme stekker bijvoorbeeld een kinderslot hebben. Wanneer dit slot is ingeschakeld, kan de toestand van de stekker niet worden aangepast. Diezelfde stekker laat je ook het gedrag instellen na een stroomonderbreking: geeft de stekker dan stroom, geen stroom, of onthoudt hij zijn laatste toestand?
Compatibele Zigbee-transceivers Home Assistant SkyConnect is niet de enige transceiver waarmee je Zigbee-ondersteuning aan Home Assistant kunt toevoegen. De ConBee II en RaspBee II zijn populaire adapters. De eerste is een usb-dongel, terwijl de tweede een printplaatje is dat op de GPIO-header van een Raspberry Pi past.
Er bestaan ook allerlei goedkope usb-dongels gebaseerd op de Texas Instruments CC2652- of CC1352-chip. Ook iTead, de fabrikant van de bekende Sonoff-producten, heeft een ondersteunde dongel: de Zigbee 3.0 USB Dongle Plus–ZBDongle-E.
Heb je al een van die Zigbee-transceivers, dan kun je ze gerust in Home Assistant blijven gebruiken. Moet je er nog een aanschaffen, kies dan bij voorkeur de Home Assistant SkyConnect, want hier komt binnenkort met een firmware-upgrade ook ondersteuning voor Thread bij.
Sensors op 433 MHz
Er bestaat een uitgebreid gamma aan Zigbee-apparaten, maar als je een groot aantal sensors nodig hebt, kan dit wat duur worden. Een goede oplossing zijn dan sensors die hun waardes op de 433MHz-frequentieband uitzenden. Heel wat weerstations of goedkope temperatuursensors werken op deze manier.
Er bestaat geen standaard om deze sensordata te decoderen: elke fabrikant implementeert zijn eigen protocol. Maar gelukkig zijn de protocollen van veel populaire apparaten door hobbyisten uitgezocht en zijn er decoders voor geïmplementeerd. Dat kan omdat de meeste van deze sensors geen encryptie toepassen. Uiteraard is dat wel een aandachtspunt als je deze sensors wilt gebruiken: je moet beseffen dat iedereen in de buurt de sensordata eenvoudig kan uitlezen.
OpenMQTTGateway
De Raspberry Pi beschikt niet over een ontvanger voor signalen op 433 MHz, maar er bestaan microcontrollerbordjes met een ingebouwde ontvanger en antenne. De Lilygo LoRa32 V2.1_1.6.1 433MHz is een handig exemplaar, gebaseerd op een ESP32-microcontroller. Dan hoef je alleen nog maar firmware op de ESP32 te installeren om de signalen van de sensors te ontvangen, te decoderen en naar Home Assistant door te sturen.
Een handige oplossing hiervoor is OpenMQTTGateway, een project dat allerlei sensors ondersteunt, hun signalen decodeert en die via wifi naar een MQTT-broker doorstuurt (MQTT staat voor Message Queuing Telemetry Transport). Als je je Home Assistant-installatie dan met diezelfde MQTT-broker laat verbinden, pikt hij de sensordata op, herkent hij automatisch de apparaten en maakt hij de juiste entiteiten aan die je dan in je dashboard kan tonen. De lijst met ondersteunde sensors vind je hier .
MQTT-broker installeren
Voordat je met OpenMQTTGateway op je microcontrollerbordje aan de slag kunt, moet je dus een MQTT-broker installeren. Dat kan eenvoudig in de vorm van een add-on voor Home Assistant. Klik op Instellingen / Add-ons en dan rechts onderaan op Add-on winkel. Kies dan bij de officiële add-ons Mosquitto broker. Klik op Installeer en wacht even tot de installatie is voltooid.
Open daarna het tabblad Configuratie. Vul bij Logins een gebruiker en wachtwoord in waarmee je de microcontroller op de MQTT-broker kan aanmelden. Dat moet in de volgende vorm:
- username: gebruiker
password: wachtwoord
Klik daarna op Opslaan en klik in het tabblad Informatie op Starten. In het tabblad Logboek kun je de add-on zien opstarten.
MQTT-integratie
Je hebt nu een MQTT-broker draaien, maar die draait los van Home Assistant. Om Home Assistant met de broker te laten spreken, moet je nog een integratie toevoegen. Ga daarvoor naar Instellingen / Apparaten & Diensten, klik rechts onderaan op Integratie toevoegen en kies dan MQTT. Je ziet nu zes beschikbare integraties, maar eentje ervan staat afzonderlijk onder Ontdekt met de naam MQTT. Klik hierop en bevestig met Opslaan dat je verbinding wilt maken met de MQTT-broker van de add-on die je eerder hebt geïnstalleerd.
Daarna zie je in je lijst met integraties Mosquitto broker staan van het type MQTT. Klik op Configureer. Test nu of de verbinding correct werkt. Vul daarvoor onderaan bij Luisteren naar ‘onderwerp’ in het tekstveld voor het onderwerp test in en klik ernaast op Begin met luisteren. Vul dan bovenaan bij Publiceer een bericht bij het onderwerp eveneens test in, en bij het bericht testbericht. Klik op Publiceer. Als onderaan je testbericht verschijnt, weet je dat de verbinding met de MQTT-broker werkt.
OpenMQTTGateway installeren
De eenvoudigste manier om OpenMQTTGateway te installeren is via de webinstaller. Open deze pagina in Chrome (andere browsers worden niet ondersteund), sluit je microcontrollerbordje via usb op je computer aan, selecteer je bordje uit de lijst (lilygo-rtl_433 voor de Lilygo LoRa32 V2.1_1.6.1 433MHz) en klik op Install. Kies de seriële poort die verschijnt uit de lijst van je browser en maak verbinding. Wanneer je All done! ziet staan, is de firmware naar je bordje geschreven.
OpenMQTTGateway maakt nu tijdelijk een wifi-accesspoint met een naam die begint met OpenMQTTGateway. Je krijgt dit ook op het kleine schermpje te zien. Verbind dus op je telefoon of tablet met dit accesspoint en vul als wachtwoord your_password in. Je wordt daarna doorverbonden met de webinterface van OpenMQTTGateway. zo niet, surf dan zelf naar 192.168.4.1. Tik nu op Configure WiFi, kies het wifi-netwerk waarmee je wilt verbinden en vul het wachtwoord in. Vul voor de MQTT-server het ip-adres van je Raspberry Pi met Home Assistant in, evenals de gebruikersnaam en het wachtwoord die je in de Mosquitto-add-on hebt ingesteld. Vul ook een OTA-wachtwoord (Over The Air) in om OpenMQTTGateway op afstand te kunnen updaten.
Ontdekte apparaten
Als alles goed gaat, toont het schermpje van je microcontrollerbordje je nu de sensordata elke keer dat het een signaal van een sensor kan decoderen. Ontvangt het bordje een tijdje niets, dan wordt het logo van OpenMQTTGateway getoond. De sensordata worden naar je MQTT-broker gestuurd. OpenMQTTGateway maakt bovendien gebruik van MQTT Discovery: het stuurt ook de configuratie van de gedetecteerde apparaten door, in een formaat dat Home Assistant begrijpt.
Daarom zal Home Assistant automatisch de door OpenMQTTGateway opgepikte apparaten herkennen. Open je Instellingen / Apparaten & Diensten, dan zie je dat er bij de integratie Mosquitto broker al apparaten en entiteiten vermeld zijn. Klik op het aantal apparaten om de lijst te zien en klik op een apparaat om de erbij horende entiteiten te zien, zoals de temperatuur, luchtvochtigheid en batterijstatus.
OpenMQTTGateway aansturen
OpenMQTTGateway staat zelf ook bij de door Home Assistant ontdekte apparaten. Als je erop klikt, krijg je sensors te zien met het ip-adres, de uptime en de interne processortemperatuur. Je krijgt ook toegang tot bedieningselementen om de helderheid van het schermpje in te stellen, om de gateway te herstarten en zelfs om de firmware via het netwerk te updaten.
Voor de rest kun je zowel de entiteiten van OpenMQTTGateway als van de sensors die het oppikt gebruiken, net als willekeurige andere entiteiten in Home Assistant. Dat betekent onder meer dat je ze aan je dashboard kunt toevoegen en dat je automatiseringen kunt maken die op sensorwaardes reageren.
Meerdere ontvangers De Lilygo LoRa32 V2.1_1.6.1 433MHz heeft niet zo’n gevoelige ontvanger, waardoor sensors op een wat grotere afstand niet meer worden gedetecteerd. Maar op AliExpress zijn deze bordjes voor minder dan 20 euro te vinden. Merk je dat het bereik niet voldoende is om al je sensors te bereiken, dan kun je er dus altijd eentje extra kopen en aan de andere kant van je huis plaatsen. Als je ze hun sensordata naar dezelfde MQTT-broker laat sturen, pikt Home Assistant alle sensors op.
Thread
Thread is een ander protocol dat in opkomst is. Het is eigenlijk geen smarthomeprotocol, maar een netwerkprotocol, te vergelijken met wifi. Alleen is Thread een mesh-netwerk waardoor apparaten die te ver uit elkaar liggen toch met elkaar kunnen communiceren via tussenliggende apparaten. Thread is bovendien energiezuinig, waardoor batterijgevoede apparaten lang op één batterijlading kunnen meegaan.
Elk apparaat in een Thread-netwerk heeft een IPv6-adres. Een Thread Border Router maakt de verbinding tussen je lokale thuisnetwerk (met ethernet en wifi) en het Thread-netwerk. Dit laatste werkt via een eigen radioprotocol en heeft dan ook een speciale ontvanger nodig.
De Home Assistant SkyConnect is uitgerust met zo’n Thread-radio en ondersteunt binnenkort zelfs gelijktijdig gebruik van Zigbee en Thread. Alleen al hierom is het aan te raden om de SkyConnect aan te schaffen als je momenteel nog Zigbee gebruikt. Met SkyConnect haal je nu al een Thread Border Router binnen.
Je kunt overigens ook prima een afzonderlijk apparaat als Thread Border Router gebruiken. Onder andere de Google Nest Hub Gen 2 en de Apple HomePod Mini hebben die functionaliteit. Het gebruik van meerdere border-routers maakt je opstelling ook robuuster.
Matter
Naast het ip-netwerk dat Thread biedt, kun je allerlei smarthomeprotocollen draaien. Home Assistant ondersteunt naast Thread zowel HomeKit (van Apple) als Matter. De ondersteuning van Matter, het protocol waar vele fabrikanten momenteel naar aan het opschuiven zijn, is echter nog experimenteel.
Matter-apparaten hoeven geen Thread te gebruiken: ze kunnen ook bovenop wifi werken. Het maakt niet uit wat het onderliggend netwerk is, zolang de apparaten maar een IPv6-adres hebben. Momenteel zijn er nog amper Matter-apparaten op de markt, maar de verwachting is dat dit in de toekomst zal verbeteren. De ontwikkelaars van Home Assistant volgen de situatie op de voet en de Matter-integratie zal zich dan ook tegelijk met de groei in de markt ontwikkelen.