Wie niet weg is, is gezien! Automatiseer je huis op basis van aanwezigheid
Talloze acties in een slim huis kunnen afhangen van je aanwezigheid. Laat je verlichting bijvoorbeeld automatisch uitschakelen wanneer je de kamer verlaat. Of stuur een waarschuwing wanneer het dakraam nog open staat terwijl er al vijf minuten niemand meer op zolder is. Met Home Assistant en ESPresense zijn deze scenario’s eenvoudig te realiseren, via bluetooth of door extra sensors toe te voegen.
Door ESPresense aan Home Assistant te koppelen, kun je je huis vergaander automatiseren. Je kunt hierdoor acties op basis van bewegingen toevoegen. In dit artikel laten we zien hoe je dit in z'n werk gaat:
- MQTT-broker installeren en integreren in Home Assistant
- ESPresense installeren en configureren
- Apparaten koppelen
- In plaats van bluetooth, kun je ook personen detecteren via radar
- Of detectie via een PIR-sensor
- Tot slot nemen we kort mee hoe je een gewichtssensor kunt koppelen
Lees ook: Zo maak je je eigen bewegingssensor
Een smarthome is niet zo nuttig als het alleen maar allerlei apparaten aan elkaar knoopt, maar je nog zelf alles handmatig moet aansturen via een app of webinterface. In het ideale geval gebeurt er zoveel mogelijk automatisch. Nu bestaan er ook allerlei manieren om beweging of aanwezigheid van personen te detecteren. Op basis daarvan kan je smarthome dan actie ondernemen.
In dit artikel realiseren we dit met Home Assistant. We gaan ervan uit dat je dit opensourcesysteem voor een smarthome al hebt geïnstalleerd. Heb je nog geen Home Assistant draaien? Lees dan dit artikel: Eén apparaat om heel je slimme huis mee aan te sturen? Het kan!
We koppelen Home Assistant vervolgens aan één of meer ESP32-ontwikkelbordjes waarop ESPresense draait: firmware die specifiek is ontwikkeld om de aanwezigheid van personen (of apparaten) te detecteren.
1 MQTT-broker installeren
ESPresense stuurt boodschappen via MQTT wanneer het aanwezigheid detecteert. Je hebt dus een MQTT-broker nodig. Die installeer je eenvoudig in de vorm van een add-on voor Home Assistant. Klik in de webinterface van Home Assistant op Instellingen / Add-ons en dan rechts onderaan op Add-on winkel. Kies 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 gebruikersnaam en wachtwoord in waarmee ESPresense op de MQTT-broker kan aanmelden. Dat moet in de volgende vorm:
Klik daarna op Opslaan en op Herstart. In het tabblad Logboek zie je de add-on opstarten.
2 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 MQTT. Je ziet nu meerdere 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 het kopje Luisteren naar ‘onderwerp’ in het tekstveld voor het onderwerp test in en klik ernaast op Begin met luisteren. Vul 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.
3 ESPresense installeren
ESPresense installeer je op een ESP32-ontwikkelbordje, dat je plaatst in de buurt van waar je je aanwezigheid wilt detecteren. De eenvoudigste manier van aanwezigheidsdetectie is via bluetooth: het bordje detecteert dan de bluetooth-signalen die je telefoon, smartwatch of een andere bluetooth-beacon verstuurt. Dit werkt met de meeste dualcore-ESP32-bordjes. Zie de pagina Base Stations van ESPresense voor meer informatie over de compatibiliteit.
Open de pagina Firmware installation in Google Chrome of Microsoft Edge. Sluit je ESP32-bordje via usb op je computer aan en kies bij Flavor de variant van de firmware die je wilt installeren. Standard werkt voor de meeste ontwikkelbordjes. Heb je een van de M5Atom-bordjes van M5Stack, dan kies je M5Atom. Bij Version laat je de standaardkeuze staan. Klik daarna op Connect. De browser vraagt je dan om een seriële poort te kiezen. Zie je er geen verschijnen, terwijl je bordje wel via usb is aangesloten, dan krijg je na een tijdje een dialoogvenster te zien met links naar drivers. Installeer die en probeer het opnieuw. Kies Install ESPresense en vink daarna ook Erase device aan.
4 Configuratie
Nadat de installatie is voltooid, vul je het SSID en wachtwoord van je wifi-netwerk in, en klik je op Connect. Wanneer je ESP-bordje met je wifi-netwerk is verbonden, kun je in je browser met een klik op Visit device de configuratiepagina op de ingebouwde webserver van ESPresense bezoeken. Dit is een heel lange pagina, maar de meeste opties hoef je niet in te stellen.
Je kunt de taal bovenaan op Nederlands instellen, maar het grootste deel van de configuratie is nog niet vertaald. De belangrijkste instelling is Room. Dit is de naam van de kamer waarin je het ESP32-bordje plaatst. Het is ook de locatie die Home Assistant toont als ESPresense je aanwezigheid detecteert. Daarna vul je onder MQTT bij Server het ip-adres van je MQTT-broker in, en daaronder de gebruikersnaam en het wachtwoord die je in paragraaf 1 hebt ingesteld. De poort houd je op 1883. Klik onderaan op Opslaan en bovenaan op Herstarten.
5 MQTT-berichten
Nadat je ESPresense op ESP32-bordjes in meerdere kamers hebt geïnstalleerd, kun je je aanwezigheid in al die kamers detecteren. Maar controleer eerst of je ESPresense-bordjes hun informatie naar de MQTT-broker doorsturen. Open daarvoor in Home Assistant Instellingen / Apparaten & diensten en klik op MQTT. Klik naast Mosquitto broker op Configureren, vul onder Luisteren naar ‘onderwerp’ bij Onderwerp om op te abonneren het onderwerp espresense/# in, schakel Opmaken JSON inhoud in en klik op Begin met luisteren.
Als alles goed gaat, krijg je nu voor elk bluetooth-apparaat dat een van je ESPresense-bordjes detecteert een bericht binnen. Achter "mac" staat het bluetooth-adres van het gedetecteerde apparaat en achter "distance" de geschatte afstand in aantal meters van het apparaat tot het ESP32-bordje. Achter "id" komt de unieke naam waarmee ESPresense het apparaatje identificeert. Klik op Stop met luisteren wanneer dit werkt.
6 Apparaten identificeren
Nu is het belangrijk dat je kunt identificeren welk apparaat welk ID heeft. Dat doe je het best in een mobiele app als nRF Connect for Mobile, die op Android en iOS werkt. Open de app, scan naar bluetooth-apparaten en druk dan in de lijst van gevonden apparaten op het apparaat dat je interesseert, zodat je meer informatie te zien krijgt. Het belangrijkste is het MAC-adres, van de vorm FB:AE:ED:8B:7F:7F.
We gaan er hier overigens van uit dat het om een bluetooth-beacon gaat. Op de pagina Beacons van ESPresense vind je een lijst met ondersteunde apparaten. Zie ook het kader ‘Je smartphone volgen’ als je je aanwezigheid op basis van je smartphone wilt detecteren. Zoek nu in de MQTT-onderwerpen naar een apparaat met het opgegeven MAC-adres (maar dan in de vorm fbaeed8b7f7f) en noteer het bijbehorende ID, zoals sd:0xfcd2.
7 Home Assistant configureren
Nu moet je in Home Assistant nog configureren dat de MQTT-berichten van ESPresense waarin je geïnteresseerd bent aan het juiste apparaat worden gekoppeld. Installeer daarvoor via Instellingen / Add-ons de File editor en schakel na de installatie de optie Weergeven in zijbalk in. Daarna klik je in de linkerzijbalk van Home Assistant op File editor. Dit opent het configuratiebestand config/configuration.yaml van Home Assistant. Voeg hieraan de volgende regels toe:
Bij device_id vul je het ID in dat je in paragraaf 6 hebt gevonden en bij name een naam waaronder je het apparaat in Home Assistant wilt zien. Voor elk apparaat waarvan je zo de aanwezigheid wilt detecteren, voeg je bovenstaande regels toe, behalve sensor:, dat maar één keer hoeft. Sla het bestand op met een klik op het icoontje van de diskette bovenaan rechts. Open Instellingen / Systeem en klik op het icoontje bovenaan om Home Assistant te herstarten.
8 Aanwezigheid in Home Assistant
Als je nu in Instellingen / Apparaten & diensten op het tabblad Entiteiten klikt en zoekt naar de naam die je in de vorige stap voor je apparaat hebt gedefinieerd, vind je een sensor voor de aanwezigheid van je apparaat. Is het apparaat niet gevonden, dan heeft de sensor de status not_home.
Als het apparaat wel gevonden is, dan krijgt de sensor als status de naam van het dichtstbijzijnde ESPresense-bordje, zoals woonkamer of bureau. Je krijgt ook een attribuut te zien met de afstand. Je kunt deze sensor nu op je dashboard tonen en gebruiken in automatiseringen.
Je smartphone volgen Om de aanwezigheid van je telefoon te detecteren, zijn er nog extra stappen nodig. Moderne telefoons gebruiken immers geen vast bluetooth-adres, maar veranderen dit elke vijftien minuten om je privacy te beschermen. Voor een iPhone moet je de IRK (Identity Resolving Key) te weten komen en in de configuratiepagina van je ESPresense-apparaat invullen. Voor een Apple Watch kun je iets vergelijkbaars doen. De instructies voor beide vind je op de pagina Apple Devices van ESPresense.
Op een Android-telefoon installeer je het best de app van Home Assistant. Die kan dan data in iBeacon-formaat via bluetooth versturen, die ESPresense dan detecteert. Instructies vind je op de pagina Android Devices van ESPresense.
9 Personen detecteren via radar
Bluetooth is handig om personen te detecteren, maar dit heeft één groot nadeel: het werkt alleen als die personen een bluetooth-apparaat daadwerkelijk bij zich hebben. Als het je niet uitmaakt wie er is, maar je gewoon wilt weten óf er een persoon aanwezig is, zijn er andere technologieën, zoals mmWave-sensors (zie ook het kader ‘Bewegings- en aanwezigheidssensors’).
Een populair product is de mmWave-sensor LD2410, die radiogolven op een frequentie van 24 GHz verstuurt en op basis van de gereflecteerde golven personen kan detecteren. Dit werkt zowel voor bewegende als voor stilstaande personen, wat dus ideaal is voor thuisautomatisering. De sensor bestrijkt een gebied in een hoek van ongeveer zestig graden met een bereik tot 5 meter. ESPresense heeft ondersteuning voor de LD2410 ingebouwd.
10 LD2410 aansluiten
De LD2410 komt op een bordje met vijf aansluitingen in 1,27mm-pitch. Dat is helaas de helft van de afmetingen van de normale 2,54mm-pitch van jumperdraden die in een breadboard of op de pinnen van een ESP32-ontwikkelbordje passen. In dat geval zul je de aansluitdraden moeten solderen. Het bordje komt zoals op de foto ook in een variant met een header (de witte aansluiting rechts op de foto) waarin een meegeleverde 1,27mm-stekker past met aan de andere kant jumperdraden met 2,54mm-stekker.
De aansluitingen worden in de oriëntatie op de foto van boven naar beneden gebruikt voor OUT, UART_Tx, UART_Rx, GND en 5 V. ESPresense heeft alleen OUT, GND en 5 V nodig. Op de pin OUT komt een hoog signaal (3,3 V) als de sensor een persoon detecteert en een laag signaal (GND) indien niet. Sluit 5 V van de LD2410 op 5 V van de ESP32 aan, GND op GND en OUT op GPIO13 van de ESP32.
11 LD2410 configureren
Sluit je ESP32-bordje op stroom aan en wacht even tot het is opgestart en verbonden is met wifi. Log dan op de webinterface in en scrol naar GPIO Sensors. De instellingen voor de LD2410 staan onder het kopje Radar. Verander Radar motion pin type naar Pulldown en vul bij Radar motion pin de GPIO-pin in waarop je de OUT van de sensor hebt aangesloten, in ons geval dus 13. Klik op Save en dan Restart device.
Kijk nu in Home Assistant bij Instellingen / Apparaten & diensten en klik op het tabblad Entiteiten. Zoek dan naar de naam van je ESPresense-apparaat waarop je de LD2410 hebt aangesloten. De entiteit voor de aanwezigheidsdetectie heet ESPresense [Naam apparaat] Motion. Zolang er iemand binnen het bereik van de sensor is, of die nu beweegt of niet, heeft die entiteit in Home Assistant de status Gedetecteerd.
12 Beweging detecteren via een PIR-sensor
Een ander type sensor is een PIR-sensor. Die meet het infraroodlicht dat door voorwerpen of personen in zijn gezichtsveld wordt uitgestraald. Als de sensor een plotselinge verandering in het infraroodlicht detecteert, betekent dit dat er beweging is.
Een voorbeeld van zo’n PIR-sensor is de AM312, die drie pinnen heeft. De VIN van de sensor sluit je op 3,3 V van de ESP32 aan, GND op GND en OUT op GPIO13. Sluit je ESP32-bordje op stroom aan en wacht even tot het is opgestart en met verbonden is wifi. Log dan op de webinterface in en scrol naar GPIO Sensors. De instellingen voor de PIR-sensor staan onder het kopje PIR. Verander PIR motion pin type naar Pulldown en vul bij PIR motion pin de GPIO-pin waarop je de OUT van de sensor hebt aangesloten, in ons geval dus 13.
Vergeet ook niet de radarsensor uit te schakelen als je die eerder op dit bordje had aangesloten. Dat doe je door bij Radar motion pin de waarde -1 in te vullen. Klik op Save / Restart device, waarna je bewegingssensor ook bij de entiteiten binnen Home Assistant te zien is.
13 En verder
ESPresense ondersteunt ook nog de HX711. Dit is een versterker voor gewichtssensors. Je verbindt dan een of meer gewichtssensors met de HX711 en die geeft een signaal aan je ESP32 wanneer die een gewicht detecteert. Zo’n gewichtssensor plaats je dan bijvoorbeeld onder de matras van je bed of onder het zitvlak van je stoel. Zo automatiseer je eenvoudig taken die moeten gebeuren als je in bed ligt of op je stoel zit. Bekijk tot slot ook de pagina Troubleshooting op de website van ESPresense. Daarin vind je tips voor als je tegen problemen aanloopt.
Bewegings- en aanwezigheidssensors Er is een essentieel verschil tussen bewegings- en aanwezigheidssensors. Een bewegingssensor, zoals een PIR-sensor, geeft een signaal wanneer je beweegt. Maar wanneer je in het bereik van een PIR-sensor gaat zitten en niet (al te veel) beweegt, detecteert die je niet meer en meldt hij na een tijd dat er geen beweging meer is.
Het is dus geen goed idee om op basis van de meldingen van een PIR-sensor in je woonkamer de verlichting uit te doen. Want als je dan rustig op de bank zit te lezen, gaat het licht plots uit. Voor die situatie gebruik je beter een aanwezigheidssensor, zoals de mmWave-sensor LD2410. Die blijft je detecteren ook als je stilzit. Pas wanneer je de kamer verlaat, geeft de sensor een signaal dat er niemand aanwezig is. Als je de verlichting in de woonkamer automatisch wilt uitschakelen als er niemand is, kies dan de LD2410.