Alarmsysteem met Home Assistant: zelf bouwen met Zigbee en Z-Wave

·

Illustratie van een opengewerkt huis met deur- en raamcontacten, een bewegingsmelder, een keypad en een sirene, via stippellijnen verbonden met een Home Assistant-server en een telefoon met een schildmelding

Een alarmsysteem met Home Assistant bouw je met drie dingen: sensoren die iets merken, een alarmcentrale die beslist, en een sirene en melding die iets doen. De sensoren en de sirene koppel je via Zigbee of Z-Wave. De centrale is een alarmpaneel in Home Assistant, het makkelijkst met de integratie Alarmo. In dit stuk lees je welke onderdelen je nodig hebt, hoe je het instelt, en waar zo’n zelfbouwalarm zwak is.

De basis heb ik al staan: een Home Assistant-server met een Zigbee-stick en een Z-Wave-stick. Hoe die eruitziet, lees je in Z-Wave in Home Assistant naast mijn Zigbee-stick. Daar bouw je het alarm bovenop.

Kan Home Assistant een echt alarmsysteem zijn?

Ja, met een kanttekening. Home Assistant kan inschakelen, uitschakelen, een inloopvertraging aftellen, een sirene laten loeien en je telefoon laten piepen. Voor het afschrikken van inbrekers en het waarschuwen van jezelf werkt dat prima.

Wat het niet is: een gecertificeerd alarmsysteem met doormelding naar een meldkamer. Sommige verzekeraars eisen dat bij een duurdere inboedel, bijvoorbeeld een systeem met een Borg-certificaat. Een zelfbouwalarm telt daar niet voor mee. Kijk dus eerst in je polis voordat je een bestaand alarm vervangt.

Zo werkt een alarmsysteem in Home Assistant

Elk alarm, ook een gekocht systeem, werkt met dezelfde bouwstenen:

  1. Sensoren. Deur- en raamcontacten, bewegingsmelders en eventueel glasbreuk- of trilsensoren. Zij melden alleen: open, dicht, beweging.
  2. De centrale. In Home Assistant is dat een entiteit van het type alarm_control_panel. Die kent standen als uit, afwezig, thuis en nacht, en beslist of een sensor het alarm laat afgaan.
  3. Bediening. Een keypad bij de voordeur, een knop op je dashboard of de app op je telefoon.
  4. Reactie. Een sirene binnen (en eventueel buiten), lampen die aangaan, en een melding op je telefoon.

Zigbee of Z-Wave voor je alarm?

Beide werken. Ik gebruik ze allebei in huis, en voor een alarm hebben ze elk een eigen sterke kant:

  • Zigbee is goedkoop en er is veel keuze. Een deurcontact kost weinig, dus je kunt elk raam beveiligen. Nadeel: Zigbee zit op 2,4 GHz, net als wifi, en heeft daar soms last van.
  • Z-Wave werkt in Europa op 868 MHz. Het komt beter door muren en vloeren en heeft geen last van wifi. Met S2-beveiliging is het verkeer versleuteld. Apparaten zijn wel duurder.

Mijn advies: neem voor de veel voorkomende sensoren (raamcontacten) wat het goedkoopst en betrouwbaarst is in jouw huis, en kies voor de sirene en het keypad een apparaat op netstroom. Apparaten op netstroom werken als repeater in het mesh-netwerk. Dat maakt het netwerk sterker, ook voor de sensoren op batterijen.

Welke onderdelen heb je nodig?

Deur- en raamcontacten

Een magneetcontact is de betrouwbaarste sensor die er is. Hij is open of dicht, en vals alarm komt bijna niet voor. Zet er een op elke buitendeur en op de ramen die vanaf de grond bereikbaar zijn. Zigbee-contacten van bijvoorbeeld Aqara, Sonoff of IKEA zijn klein en goedkoop. Bij Z-Wave zijn er onder meer contacten van Aeotec en Fibaro, zoals de Fibaro Door/Window Sensor 2. Die heeft ook een sabotagecontact: hij meldt het als iemand de behuizing opent of de sensor van de deur trekt.

Witte Fibaro Door/Window Sensor 2, een Z-Wave deur- en raamcontact met losse magneet, naast de bruine kartonnen verpakking
De Fibaro Door/Window Sensor 2: een Z-Wave-deurcontact met sabotagemelding. (Afbeelding: Fibaro)

Heb je nog Fibaro-sensoren van een Home Center? Die praten Z-Wave en werken gewoon in Home Assistant. Hoe ik mijn oude systeem overzette, lees je in van Fibaro naar Home Assistant.

Bewegingsmelders

Een PIR-bewegingsmelder vangt wat de contacten missen, zoals iemand die via een raam op de eerste verdieping binnenkomt. Hang hem in de hal of op de overloop, waar iedereen langs moet. Heb je een kat of hond, kies dan een huisdiervriendelijke melder, of gebruik bewegingsmelders alleen in de stand ‘afwezig’ op plekken waar het dier niet komt. Een sensor die meer doet, is de Aeotec MultiSensor 7 (Z-Wave). Naast beweging meet hij temperatuur, licht, luchtvochtigheid, trillingen en uv. Hij werkt op batterijen of via een USB-kabel. De trillingssensor werkt als sabotagemelding: haalt iemand hem van de muur, dan zie je dat meteen. En de andere metingen gebruik je gewoon voor verlichting en klimaat.

Witte vierkante Aeotec MultiSensor 7 met ronde bewegingslens naast de verpakking met iconen voor beweging, licht, trilling, vochtigheid, temperatuur en uv
De Aeotec MultiSensor 7: beweging, temperatuur, licht, vocht, trilling en uv in één Z-Wave-sensor. (Afbeelding: Aeotec)

Een sirene

Zonder geluid is het geen alarm, maar een melding. Een sirene binnen is genoeg om de meeste inbrekers weg te jagen. Kies een model op netstroom, met een eigen back-upbatterij. Zigbee- en Z-Wave-sirenes verschijnen in Home Assistant meestal als een siren-entiteit, die je kunt aan- en uitzetten. Een betaalbare Zigbee-sirene is de SONOFF SNZB-09P: tot 105 dB, tien sirenetonen, een rood knipperlicht en voeding via USB-C of een batterij. Het is een nieuw model, dus controleer of jouw Zigbee-integratie hem al volledig ondersteunt.

Ronde rood-witte SONOFF SNZB-09P Zigbee-binnensirene naast een smartphone met de app-weergave van de sirene en een sabotagemelding
De SONOFF SNZB-09P: een Zigbee-binnensirene tot 105 dB. (Afbeelding: SONOFF)

Een keypad (optioneel, maar fijn)

Je kunt het alarm bedienen met de app, maar een keypad bij de deur is voor het hele gezin makkelijker. Je toetst een code in, en het keypad piept tijdens de vertrek- en inlooptijd. Er zijn Zigbee- en Z-Wave-keypads die met Home Assistant werken. Controleer vooraf of het model in jouw integratie (ZHA, Zigbee2MQTT of Z-Wave JS) ondersteund wordt.

De server en de sticks

Home Assistant draait bij mij op een MeLE Quieter 4C-mini-pc. Voor Zigbee gebruik ik de Aeotec Zi-Stick, voor Z-Wave de Aeotec Z-Stick 7. Begin je net? Een Home Assistant Green met een Zigbee-stick is ook een prima start.

Witte Aeotec Z-Stick 7 Z-Wave USB-stick naast de witte verpakking met de iconen voor S2-beveiliging en SmartStart
De Aeotec Z-Stick 7: de Z-Wave-coördinator voor sensoren, sirene en keypad. (Afbeelding: Aeotec)

De alarmcentrale: Alarmo of de ingebouwde manual-centrale

Voor de centrale heb je twee opties. Allebei maken ze een alarm_control_panel-entiteit aan.

Optie 1: Alarmo (aanrader)

Alarmo is een gratis integratie die je via HACS installeert. Je stelt alles in via een eigen paneel in Home Assistant, zonder YAML. Wat Alarmo goed doet:

  • Standen. Afwezig, thuis, nacht en vakantie. Per stand kies je welke sensoren meedoen. ’s Nachts bijvoorbeeld alleen de deuren en de ramen beneden, zodat je zelf boven vrij rond kunt lopen.
  • Vertrek- en inlooptijd. Per stand en per sensor. De voordeur krijgt een inlooptijd, het achterraam niet.
  • Open sensoren. Staat er nog een raam open als je inschakelt, dan weigert Alarmo, of hij meldt welk raam het is. Dat kun je per sensor instellen.
  • Altijd actief. Sensoren zoals een sabotagecontact kun je 24 uur per dag laten meetellen, ook als het alarm uit staat.
  • Gebruikers en codes. Elke gebruiker een eigen pincode, en je ziet wie het alarm uitzette.
  • Acties en meldingen. Sirene aan bij een alarm, een melding als inschakelen mislukt, lampen aan bij binnenkomst. Alles klik je in elkaar.

Installeren gaat zo: zoek in HACS naar Alarmo, installeer hem, herstart Home Assistant en voeg de integratie toe via Instellingen → Apparaten en diensten. Daarna staat Alarmo in de zijbalk.

Optie 2: de ingebouwde manual-centrale

Wil je geen HACS, dan heeft Home Assistant zelf de manual-alarmcentrale. Die stel je in YAML in. Hij kent de standen en de tijden, maar welke sensor het alarm laat afgaan, regel je zelf met automatiseringen. Een voorbeeld:

# configuration.yaml (of een package)
alarm_control_panel:
  - platform: manual
    name: Huisalarm
    code: !secret alarm_code
    arming_time: 30     # vertrektijd in seconden
    delay_time: 30      # inlooptijd in seconden
    trigger_time: 180   # sirene maximaal 3 minuten
    disarmed:
      trigger_time: 0   # uit = nooit afgaan
    armed_home:
      arming_time: 0
      delay_time: 0
    armed_night:
      arming_time: 0

De code zet je in secrets.yaml, niet in je configuratie zelf. Dan staat hij ook niet in een back-up of schermafbeelding die je deelt.

De automatiseringen: alarm laten afgaan en reageren

Gebruik je Alarmo, dan regelt hij het afgaan zelf. Bij de manual-centrale heb je een automatisering nodig die het alarm activeert als een sensor iets meldt terwijl het alarm aan staat:

automation:
  - alias: "Alarm: sensor gaat af terwijl ingeschakeld"
    triggers:
      - trigger: state
        entity_id:
          - binary_sensor.voordeur_contact
          - binary_sensor.achterdeur_contact
          - binary_sensor.raam_keuken_contact
          - binary_sensor.beweging_hal
        to: "on"
    conditions:
      - condition: state
        entity_id: alarm_control_panel.huisalarm
        state:
          - armed_away
          - armed_night
    actions:
      - action: alarm_control_panel.alarm_trigger
        target:
          entity_id: alarm_control_panel.huisalarm

Het alarm gaat dan eerst naar pending: de inlooptijd loopt. Zet je het in die tijd uit, dan gebeurt er niets. Zo niet, dan gaat het naar triggered. Daarop reageert de tweede automatisering, die je bij beide opties kunt gebruiken:

  - alias: "Alarm: afgegaan"
    triggers:
      - trigger: state
        entity_id: alarm_control_panel.huisalarm
        to: triggered
    actions:
      - action: siren.turn_on
        target:
          entity_id: siren.sirene_hal
      - action: light.turn_on
        target:
          area_id: woonkamer
      - action: notify.mobile_app_mijn_telefoon
        data:
          title: "Alarm!"
          message: "Het alarm is afgegaan. Check de camera of bel de buren."
          data:
            # iPhone: kritieke melding, komt ook door op stil
            push:
              sound:
                name: default
                critical: 1
                volume: 1.0
            # Android: melding met hoge prioriteit
            ttl: 0
            priority: high
            channel: alarm_stream

  - alias: "Alarm: uitgeschakeld, sirene uit"
    triggers:
      - trigger: state
        entity_id: alarm_control_panel.huisalarm
        to: disarmed
    actions:
      - action: siren.turn_off
        target:
          entity_id: siren.sirene_hal

Bij Alarmo heet de entiteit standaard alarm_control_panel.alarmo. Pas de namen van sensoren, sirene en telefoon aan naar die van jou. Een kritieke melding op de iPhone moet je wel eerst toestaan in de instellingen van de Home Assistant-app.

Extra: alarm automatisch inschakelen als iedereen weg is

Vergeten in te schakelen is de meest gemaakte fout met een alarm. Home Assistant weet via de app op je telefoon wie er thuis is. De entiteit zone.home telt hoeveel personen er in de thuiszone zijn. Staat die tien minuten op 0, dan zet deze automatisering het alarm op afwezig:

  - alias: "Alarm: automatisch aan als iedereen weg is"
    triggers:
      - trigger: numeric_state
        entity_id: zone.home
        below: 1
        for:
          minutes: 10
    conditions:
      - condition: state
        entity_id: alarm_control_panel.huisalarm
        state: disarmed
    actions:
      - action: alarm_control_panel.alarm_arm_away
        target:
          entity_id: alarm_control_panel.huisalarm
      - action: notify.mobile_app_mijn_telefoon
        data:
          title: "Alarm ingeschakeld"
          message: "Iedereen is weg. Het alarm staat op afwezig."

Een paar aandachtspunten:

  • Locatie aan. Elke bewoner heeft de Home Assistant-app met locatietoegang nodig, gekoppeld aan een persoon onder Instellingen → Personen.
  • De wachttijd. De tien minuten vangen verspringende GPS op, en het moment dat je nog even terugloopt voor je sleutels.
  • Wie geen telefoon heeft. Kinderen, een oppas of een logé zonder app tellen niet mee. Is alleen zo iemand thuis, dan gaat het alarm toch aan. Maak in dat geval een schakelaar Gast thuis (een input_boolean) en zet die als extra voorwaarde in de automatisering.
  • Code bij inschakelen. De manual-centrale met een code weigert in te schakelen zonder code. Zet daarom code_arm_required: false in de configuratie. In Alarmo zet je de code voor inschakelen uit.
  • Een open raam. Staat er nog een raam open, dan kan Alarmo weigeren in te schakelen. Maak in Alarmo een melding voor ‘inschakelen mislukt’, zodat je weet dat het alarm níet aan staat.

En automatisch uitschakelen als je thuiskomt? Dat raad ik af. Een telefoon kan gestolen worden, en GPS kan zich vergissen. Schakel uit met een code op het keypad of in de app. Wel handig: een melding als je thuiskomt terwijl het alarm nog aan staat.

Waar een zelfbouwalarm zwak is (en wat je eraan doet)

Dit is het deel dat de meeste handleidingen overslaan. Een alarm is pas goed als het ook werkt op het moment dat er iets misgaat.

  • Een sensor die stil wegvalt. Een raamcontact met een lege batterij of zonder verbinding meldt niets. Het gevaarlijkste is dat je dat niet ziet. Maak een melding als een sensor unavailable wordt of als een batterij onder de 20 % zakt. Hetzelfde principe beschrijf ik bij mijn energiesysteem: zo merk ik dat mijn systeem iets fout doet.
  • Stroomuitval. Zonder stroom geen server, geen sticks en geen router. Zet die drie op een kleine UPS. De sensoren zelf werken op batterijen, de sirene heeft bij voorkeur een eigen back-upbatterij.
  • Geen internet. Het alarm zelf werkt lokaal door: sensoren, centrale en sirene hebben geen internet nodig. Alleen de melding op je telefoon komt dan niet aan.
  • Storen van de radio. Elk draadloos systeem is in theorie te storen, ook een gekocht alarm. Z-Wave met S2 is lastiger te misbruiken dan een onversleuteld protocol, maar maakt storen niet onmogelijk.
  • Uitschakelen op afstand. Wie in je Home Assistant kan, kan je alarm uitzetten. Gebruik tweestapsverificatie, en stel een code in voor uitschakelen. Laat een spraakassistent of AI-koppeling het alarm hooguit inschakelen, nooit uitschakelen. Geef de alarmcentrale daarom niet zomaar vrij aan je spraakassistent.
  • De sirene en de buren. Laat de sirene niet eindeloos loeien. Veel gemeenten hebben in hun APV regels over hoe lang een alarm geluid mag maken. Een paar minuten is genoeg; daarom staat trigger_time in het voorbeeld op 180 seconden.

Brand is een apart verhaal. Rookmelders moeten zelf alarmeren, ook als Home Assistant uitvalt. Hoe ik dat met zes gekoppelde X-Sense-melders heb opgelost, lees je in thuisbatterij en brandveiligheid.

Stappenplan in het kort

  1. Zorg dat Zigbee (ZHA of Zigbee2MQTT) of Z-Wave JS draait in Home Assistant.
  2. Koppel eerst de apparaten op netstroom (sirene, keypad), daarna de sensoren op batterijen.
  3. Geef elke sensor een duidelijke naam, zoals Voordeur contact of Beweging hal.
  4. Installeer Alarmo via HACS, of maak een manual-centrale in YAML.
  5. Kies per stand welke sensoren meedoen, en stel vertrek- en inlooptijden in.
  6. Maak de reacties: sirene, lampen en een kritieke melding op je telefoon.
  7. Optioneel: laat het alarm automatisch op afwezig gaan als iedereen weg is.
  8. Bouw de bewaking: meldingen bij lege batterijen en sensoren die wegvallen.
  9. Test alles. Schakel in, loop naar buiten, kom weer binnen, en laat het alarm één keer echt afgaan. Herhaal dat een paar keer per jaar.

Veelgestelde vragen

Is een alarmsysteem met Home Assistant net zo goed als een gekocht alarm?

Voor detectie en afschrikken kan het net zo goed zijn: de sensoren zijn vaak dezelfde soort. Het verschil zit in certificering, doormelding naar een meldkamer en onderhoud. Bij een zelfbouwalarm ben jij de installateur en de meldkamer.

Accepteert mijn verzekeraar een zelfgebouwd alarm?

Meestal niet als de polis een gecertificeerd alarmsysteem eist. Staat er geen eis in je polis, dan maakt het voor de verzekering niet uit. Vraag het bij twijfel na.

Alarmo of de ingebouwde manual-centrale?

Alarmo, tenzij je echt geen HACS wilt. Alarmo doet standen, sensoren per stand, open ramen bij inschakelen en gebruikerscodes zonder dat je zelf automatiseringen hoeft te bouwen.

Kan ik Zigbee en Z-Wave in één alarm mengen?

Ja. Home Assistant ziet alleen entiteiten, geen protocollen. Een Zigbee-raamcontact en een Z-Wave-sirene werken gewoon samen in dezelfde centrale. Je hebt wel voor elk protocol een eigen stick nodig.

Werkt het alarm zonder internet?

Ja. Zigbee, Z-Wave en Home Assistant werken lokaal. Alleen meldingen op je telefoon buiten de deur hebben internet nodig.

Kan het alarm automatisch aan als iedereen weg is?

Ja. Met de app op ieders telefoon weet Home Assistant wie er thuis is. Is de thuiszone tien minuten leeg, dan zet een automatisering het alarm op afwezig. Het voorbeeld staat hierboven bij de automatiseringen.

Wat ik gebruik

  • MeLE Quieter 4C mini-pc: bekijk op Amazon. Mijn Home Assistant-server: stil, zuinig en altijd aan.
  • Aeotec Zi-Stick (Zigbee USB-stick): bekijk op Amazon. Voor Zigbee-sensoren zoals deur- en raamcontacten.
  • Aeotec Z-Stick 7 (Z-Wave USB-stick): bekijk op Amazon. Voor Z-Wave-apparaten met S2-beveiliging.
  • UGREEN USB-hub met 4 poorten: bekijk op Amazon. Houdt de sticks een stukje van de pc af.
  • Fibaro Door/Window Sensor 2 (Z-Wave deur- en raamcontact): bekijk op Amazon. Deurcontact met sabotagemelding.
  • Aeotec MultiSensor 7 (Z-Wave): bekijk op Amazon. Beweging, temperatuur, licht, vocht, trilling en uv in één sensor.
  • SONOFF SNZB-09P (Zigbee-sirene): bekijk op Amazon. Tot 105 dB, op USB-C of batterij.

Dit artikel bevat affiliate-links. Als Amazon-partner verdien ik aan in aanmerking komende aankopen. Voor jou verandert de prijs niet.


Dit werkt in mijn situatie: Home Assistant op een MeLE Quieter 4C met een Aeotec Zi-Stick en een Aeotec Z-Stick 7. Een zelfgebouwd alarm is geen gecertificeerd alarmsysteem en vervangt geen rookmelders. Integraties, firmware en de eisen van je verzekeraar kunnen anders zijn. Controleer het tegen je eigen documentatie.


Lees ook


Reacties

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *