Domotica & smart home

API/webhook (smart home)

Synoniemen: API-koppeling, Webhook-integratie, Applicatie-integratie

Wat is het Een API (Application Programming Interface) en een webhook zijn twee mechanismen die software en slimme apparaten in staat stellen om met elkaar te communiceren. Ze vormen de technische basis voor bijna elke integratie in een modern smart home.

Een API kan worden gezien als een menukaart voor een softwareprogramma of apparaat. Het definieert een reeks strikte regels en opdrachten die een ander programma kan gebruiken om informatie op te vragen of een actie uit te voeren. Een weer-app gebruikt bijvoorbeeld de API van een meteorologische dienst om de actuele temperatuur op te vragen.

Een webhook werkt andersom. In plaats van constant te vragen of er iets nieuws is, wacht het systeem op een signaal. Een webhook is een mechanisme dat automatisch een bericht (een 'payload' met data) naar een specifieke URL stuurt zodra een bepaalde gebeurtenis plaatsvindt. Het is een proactieve melding in plaats van een reactieve vraag. Dit maakt webhooks zeer geschikt voor real-time automatiseringen.

Hoe werkt het De werking verschilt fundamenteel. Bij een API-interactie neemt systeem A (de client) het initiatief. Het stuurt een verzoek naar de API van systeem B (de server) met een specifieke vraag, bijvoorbeeld: "Geef de status van lamp X". Systeem B verwerkt het verzoek, controleert of het geldig is, en stuurt een antwoord terug, bijvoorbeeld: "Lamp X is aan op 80% helderheid". Dit is een 'pull'-mechanisme: de informatie wordt opgehaald.

Bij een webhook-interactie configureer je in systeem A een gebeurtenis (bijvoorbeeld 'beweging gedetecteerd') en geef je een URL op van systeem B. Zodra de gebeurtenis in systeem A plaatsvindt, stuurt het onmiddellijk en automatisch een pakketje data naar die URL. Systeem B ontvangt dit bericht en kan daarop een actie uitvoeren. Dit is een 'push'-mechanisme: de informatie wordt toegestuurd. Dit is efficiënter dan continu via een API te vragen of er al beweging is gedetecteerd.

In een smart home werken ze vaak samen. Een webhook meldt een gebeurtenis aan een centrale hub (zoals Home Assistant of Homey), die vervolgens via verschillende API's de gewenste apparaten aanstuurt.

Praktijkvoorbeeld Stel, u wilt dat de lampen in de gang automatisch aangaan als uw slimme deurbel na zonsondergang beweging detecteert.

1. **Gebeurtenis (Trigger)**: Uw deurbel detecteert beweging. Aangezien het na zonsondergang is, wordt een vooraf ingestelde automatisering geactiveerd. 2. **Webhook**: De software van de deurbel (of een cloudservice zoals IFTTT) verstuurt een webhook-bericht naar uw smart home hub. De inhoud van dit bericht kan informatie bevatten zoals `{"event": "motion_detected", "camera_name": "voordeur"}`. 3. **Verwerking**: Uw hub ontvangt deze webhook. De automatiseringsregel die u heeft ingesteld, herkent de gebeurtenis 'motion_detected' van de 'voordeur'. 4. **Actie (API-aanroep)**: De hub voert de actie uit door een commando te sturen naar de API van uw slimme verlichting (bijvoorbeeld Philips Hue). Het commando kan eruitzien als: `SET light.gang.state = ON, brightness = 50%`.

In dit voorbeeld start een webhook de automatisering, waarna een API-aanroep de fysieke apparaten aanstuurt.

Wanneer een elektricien inschakelen Voor het configureren van API's en webhooks zelf is geen elektricien nodig; dit is softwareconfiguratie. Een professionele installateur is wel aan te raden voor de onderliggende hardware:

* **Installatie van slimme componenten**: Voor het installeren van slimme schakelaars, dimmers, of sensoren die een 230V-voeding vereisen, is een elektricien nodig. Deze zorgt voor een veilige installatie conform de NEN 1010 norm. * **Aanleg van infrastructuur**: Bij bedrade systemen zoals KNX legt de elektricien de benodigde bus-bekabeling aan en installeert componenten zoals gateways, die vervolgens via een API benaderbaar zijn. * **Probleemoplossing**: Als een automatisering niet werkt, kan de oorzaak zowel in de software als in de hardware liggen. Een elektricien kan de fysieke installatie doormeten en hardware-defecten uitsluiten of verhelpen. * **Voeding van de hub**: Een centrale hub of gateway heeft vaak een stabiele voeding en netwerkverbinding nodig. Een elektricien kan zorgen voor een speciaal stopcontact of een bedrade netwerkaansluiting op een betrouwbare locatie.

Veelgemaakte fouten * **Onbeveiligde communicatie**: Webhooks gebruiken die niet via een versleutelde verbinding (HTTPS) lopen. Dit kan kwaadwillenden in staat stellen om berichten te onderscheppen of zelf acties te triggeren. * **Afhankelijkheid van cloud-diensten**: Veel consumentenapparaten zijn afhankelijk van de servers van de fabrikant. Als de internetverbinding of de dienst van de fabrikant uitvalt, werken de API's en webhooks niet meer. Lokale systemen bieden hier meer betrouwbaarheid. * **Geen rekening houden met 'API rate limits'**: Sommige API's beperken het aantal verzoeken dat u binnen een bepaalde tijd mag doen. Te vaak data opvragen kan leiden tot een tijdelijke blokkade van uw toegang. * **Verkeerde logica**: De automatisering verkeerd instellen. Bijvoorbeeld, een lamp die aangaat bij beweging, maar geen voorwaarde bevat om weer uit te gaan, waardoor de lamp onnodig blijft branden. * **API-documentatie negeren**: Elke API heeft zijn eigen regels en mogelijkheden. Zonder de documentatie te raadplegen, is het lastig om de juiste commando's en parameters te gebruiken voor een succesvolle integratie.

Gerelateerde begrippen