Bezoekerslogboek in Home Assistant – slimme voordeur snapshots in een eigen gallery

In deze blog laat ik zien hoe ik een bezoekerslogboek heb gebouwd in Home Assistant. Bij beweging aan de voordeur maakt mijn Reolink-camera automatisch een snapshot, die wordt opgeslagen in een map /www/visitors. Op mijn tablet heb ik een mooi fullscreen gallery-overzicht met een datumselector en een lightbox om door de foto’s te bladeren. Inclusief volledige YAML en HTML, zodat je alles één-op-één kunt overnemen. Gevoelige gegevens (zoals IP-adressen en wachtwoorden) laat ik bewust weg of verwijs ik via !secret.


Waarom ik een bezoekerslogboek wilde

Bij iedere beweging aan de voordeur maakte mijn camera al een snapshot en kreeg ik een melding op mijn telefoon. Handig, maar ik wilde méér:

  • Alle bezoekers van de dag in één visueel logboek.
  • Op mijn Home Assistant-tablet gewoon even door de dag heen kunnen scrollen.
  • Makkelijk een paar dagen terugkijken (maximaal enkele dagen, geen NAS-achtige oplossing).
  • Een nette, fullscreen gallery met lightbox en toetsenbordnavigatie.

In deze setup combineer ik:

  • Een automation die snapshots maakt bij beweging aan de voordeur.
  • Twee helpers om datum en index bij te houden.
  • Een custom HTML-pagina die alle snapshots per dag toont in een mooie gallery.
  • Een aparte view op mijn tablet-dashboard met een iframe naar die gallery.

Wat je nodig hebt

  • Home Assistant (met toegang tot configuration.yaml en het Automations-scherm).
  • Een werkende voordeurcamera als camera-entiteit (bijvoorbeeld Reolink).
  • Toegang tot de /config/www-map (via Samba, Studio Code Server, SSH, …).
  • Een dashboard (bijv. tablet-dashboard) waar je een iframe of aparte view kunt toevoegen.

Ik ga er in de voorbeelden vanuit dat je camera camera.voordeur_fluent heet. Pas dit aan naar de naam van jouw camera.


Stap 1 – Map /www/visitors aanmaken

Ga in Home Assistant naar je configuratiemap en maak (als die nog niet bestaat) de volgende map aan:

/config/www/visitors

Alles wat straks in /config/www/visitors terechtkomt, is via de browser bereikbaar als:

/local/visitors/...

Daar gaat onze gallery straks mee werken.


Stap 2 – Helpers voor datum en index

We gebruiken twee helpers:

  • input_text.bezoekerslog_datum: laatste datum waarop een snapshot is gemaakt.
  • input_number.bezoekerslog_index: oplopend nummer (slot) voor die dag.

Maak ze aan via:

Instellingen → Apparaten & Diensten → Helpers → + Helper

2.1 – Tekst-helper voor datum

  • Type: Tekst
  • Naam: Bezoekerslog datum
  • Entiteit-id: input_text.bezoekerslog_datum
  • Optioneel: max. lengte bijvoorbeeld 10 (voor YYYY-MM-DD)

2.2 – Nummer-helper voor index

  • Type: Nummer
  • Naam: Bezoekerslog index
  • Entiteit-id: input_number.bezoekerslog_index
  • Minimum: 0
  • Maximum: bijvoorbeeld 500 (meer dan genoeg voor één dag)
  • Stapgrootte: 1

Stap 3 – Automatisering: snapshot bij beweging

Nu komt de kern: een automatisering die bij beweging aan de voordeur een snapshot maakt en opslaat in de map /config/www/visitors, met een bestandsnaam als:

2025-11-16_slot_07.jpg

Maak een nieuwe automatisering:

Instellingen → Automatiseringen & Scènes → Automatiseringen → + → Lege automatisering en kies daarna Bewerken in YAML.

Plak onderstaande YAML en pas de entity_id aan naar jouw sensor/camera:

Copy to Clipboard

Opslaan, automatiseringen herladen (of gewoon Home Assistant herstarten) en je basis is klaar. Bij elke beweging krijg je nu een nieuw bestand in /config/www/visitors.
Tip: gebruik desnoods eerst een testactie via Ontwikkelaarstools → Services → camera.snapshot om te checken of de camera en het pad werken.


Stap 4 – Optioneel: index dagelijks resetten

Je hoeft dit niet per se te doen (de gallery scant gewoon alle slot-nummers), maar ik vind het netjes om de teller elke nacht te resetten.
Maak een tweede automatisering:

Copy to Clipboard

Vanaf dat moment begin je iedere dag weer bij _slot_01, _slot_02, enzovoorts.


Stap 5 – HTML-pagina bezoekers_gallery.html

Nu komt het leuke deel: de gallery. Deze HTML-pagina:

  • Zoekt alle bestanden met naam YYYY-MM-DD_slot_XX.jpg in /local/visitors.
  • Toont ze in een mooie grid, nieuwste bovenaan.
  • Laat je per dag bladeren (◀ / ▶ / Vandaag-knop).
  • Heeft een lightbox met toetsenbordnavigatie (← → Esc).

Maak in Home Assistant het bestand /config/www/bezoekers_gallery.html aan en plak onderstaande code één-op-één:

Copy to Clipboard

Opslaan, en je gallery-pagina is klaar.


Stap 6 – Bezoekerslogboek op je tablet-dashboard

Nu moeten we de HTML-pagina nog tonen in Home Assistant, bijvoorbeeld als aparte view in je tablet-dashboard.
Onderstaande YAML is een simpel voorbeeld van een tweede view met alleen een iframe naar de gallery:

Copy to Clipboard

Belangrijk:

  • panel: true zorgt ervoor dat de iframe fullscreen in de view staat.
  • De ?v=1 achter de URL kun je verhogen (2, 3, 4, …) als je last hebt van cache in je browser.
  • Vanaf je hoofddashboard kun je een button maken met tap_action: navigate naar /tablet-v2/1 (of de juiste route) om snel naar het bezoekerslogboek te gaan.

Stap 7 – Testen

  1. Controleer in de map /config/www/visitors of er bestanden verschijnen zoals 2025-11-16_slot_01.jpg als je naar de voordeur loopt.
  2. Open de gallery in je browser: https://jouw-ha-url/local/bezoekers_gallery.html.
  3. Blader met de knoppen Vorige / Vandaag / Volgende door de dagen.
  4. Klik op een foto om de lightbox te openen; gebruik je toetsenbord:
    • ← / → om door de snapshots te bladeren;
    • Esc om de lightbox te sluiten.
  5. Controleer of dezelfde gallery ook goed in je tablet-dashboard-view wordt getoond.

Veelvoorkomende issues (& oplossingen)

  • Geen foto’s in de gallery
    Controleer of er wel bestanden in /config/www/visitors staan én of de bestandsnamen het patroon YYYY-MM-DD_slot_XX.jpg volgen.
  • Snapshots werken, maar je ziet oude volgorde
    De HTML sorteert op bestandsdatum (Last-Modified). Als je bestanden handmatig kopieert, kan dat verwarrend zijn. Laat het systeem ze zelf aanmaken.
  • Cache-problemen
    Als je wijzigingen aan de HTML hebt gedaan maar niets ziet:

    • Verhoog de ?v=1 parameter in de iframe-URL naar ?v=2 etc.
    • Force-refresh in je browser (Ctrl+F5 / Cmd+Shift+R).
  • Te veel snapshots per dag
    Verklein eventueel MAX_SLOTS in de HTML (of beperk je voordeur-automation met cooldown / conditions). Standaard staat hij op 200.


Slot

Met dit bezoekerslogboek heb ik mijn voordeurcamera écht geïntegreerd in mijn smart home:

  • Alle bezoekers netjes onder elkaar, per dag gegroepeerd.
  • Een stijlvolle gallery op mijn tablet-dashboard.
  • Bladeren door de tijd (en door de foto’s) zonder apps te hoeven openen.

Kopieer de YAML, plak de HTML in /config/www/bezoekers_gallery.html, pas je entiteiten aan en je hebt je eigen bezoekerslogboek draaien. En het mooie: de basis is nu gelegd voor een vervolg – bijvoorbeeld met gezichtsherkenning via een Google Coral USB, zodat je straks niet alleen ziet dát er iemand voor de deur stond, maar ook wie. 😄