AI-kamera i Home Assistant — Notifikationer der rent faktisk giver mening
Sådan fik jeg Sentinel-kameraet til at sende nyttige beskeder i stedet for 40 bevægelsesbeskeder om dagen — én automatisering, en lydløs-kontakt og handlingsknapper.
De første par uger efter jeg installerede Sentinel-kameraet havde jeg bevægelsesnotifikationer slået til. Hver eneste notifikation sagde “Bevægelse registreret.” Fugle, skygger, en plastikpose der blæste forbi linsen klokken tre om natten. Jeg slog dem alle fra og lod kameraet sidde der og ikke gøre ret meget nyttigt i endnu en måned.
Løsningen var enklere end forventet: trigger kun på person og køretøj — ikke rå bevægelse — og giv notifikationen tre knapper der rent faktisk gør noget.
Hvad integrationen giver
Efter kameraet er tilføjet opretter HA en række binære sensorer fra den indbyggede detektion:
binary_sensor.sentinel_motion
binary_sensor.sentinel_person
binary_sensor.sentinel_animal
binary_sensor.sentinel_vehicle
Person og køretøj kommer fra kameraets eget AI-chip. Rimelig præcis — bedre end ren bevægelse, ikke fejlfri. Dyresensoren har fanget rigtige ræve og også en stor plastikpose der bevægede sig på en måde der åbenbart lignede et levende væsen.
Én automatisering for begge triggers
Person- og køretøjshændelser går gennem én enkelt automatisering i single-tilstand. Tilstanden håndterer deduplicering — hvis sensoren triggerer igen mens automatiseringen stadig kører (inkl. 60 sekunders cooldown-forsinkelse til sidst), kasseres triggeren lydløst.
alias: Sentinel — Kamera & Notifikation
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.sentinel_person
from: "off"
to: "on"
id: person
- platform: state
entity_id: binary_sensor.sentinel_vehicle
from: "off"
to: "on"
id: bil
condition:
- condition: state
entity_id: input_boolean.sentinel_notifikation_lydlos
state: "off"
action:
- variables:
notif_title: "{{ '\U0001F697 Bil ved indkørslen' if trigger.id == 'bil' else '\U0001F464 Person ved indkørslen' }}"
notif_message: "{{ 'Sentinel har registreret et køretøj' if trigger.id == 'bil' else 'Sentinel har registreret en person' }}"
- action: camera.snapshot
target:
entity_id: camera.sentinel_fluent
data:
filename: /config/www/sentinel_latest.jpg
- action: notify.alle_enheder
data:
title: "{{ notif_title }}"
message: "{{ notif_message }}"
data:
ttl: 0
priority: high
channel: Overvågning
tag: sentinel_alert
entity_id: camera.sentinel_fluent
camera_stream: true
image: /api/camera_proxy/camera.sentinel_fluent
actions:
- action: URI
title: Se Kamera
uri: homeassistant://navigate/nyt-mobil/overvagning
- action: sentinel_flood_on
title: Tænd Flood
- action: sentinel_mute_30
title: Lydløs 30 min
clickAction: /nyt-mobil/overvagning
- delay:
seconds: 60
camera.snapshot-kaldet gemmer et nyt stillbillede til /local/sentinel_latest.jpg inden notifikationen sendes. Selve notifikationen indeholder en live kamera-stream (camera_stream: true) — på Android med HA companion-appen udvides den til et live feed direkte i notifikationen.
Lydløs-kontakten
Den eneste betingelse er input_boolean.sentinel_notifikation_lydlos med tilstanden off. Det er portvogtoren. Den er enklere end en armed_away-betingelse — ingen alarmcentral nødvendig, fungerer uanset hjemme/væk-tilstand, og selve notifikationen kan slå den til via Lydløs-knappen.
En separat automatisering nulstiller den til off ved midnat hver nat, så jeg aldrig behøver huske at slå den fra igen.
Handlingsknapper
Notifikationen har tre knapper:
- Se Kamera — dybde-link til Overvågning-visningen i HA companion-appen
- Tænd Flood — tænder
light.sentinel_floodlightvia en separat automatisering der lytter eftersentinel_flood_on-mobilhandlingshændelsen - Lydløs 30 min — slår lydløs-kontakten til i 30 minutter og nulstiller den derefter
Håndtering af lydløs-handlingen:
alias: Sentinel — Lydløs 30 min
trigger:
- platform: event
event_type: mobile_app_notification_action
event_data:
action: sentinel_mute_30
action:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.sentinel_notifikation_lydlos
- delay:
minutes: 30
- action: input_boolean.turn_off
target:
entity_id: input_boolean.sentinel_notifikation_lydlos
Fire TV-notifikation
Den samme automatisering sender også til TV’et i stuen:
- action: notify.android_tv_fire_tv_192_168_1_40
data:
message: "{{ '\U0001F697 Bil registreret ved indkørslen' if trigger.id == 'bil' else '\U0001F464 Person registreret udenfor' }}"
data:
image: "http://192.168.1.171:8123/local/sentinel_latest.jpg?t={{ now().timestamp() | int }}"
interrupt: 1
?t=-parameteren tvinger et nyt billede til at blive hentet — uden den viser Fire TV et cachet stillbillede fra den forrige hændelse. interrupt: 1 får det til at dukke op selv under afspilning.
Dashboard
Overvågnings-visningen viser statuskort og en 24-timers logbog:
type: vertical-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: binary_sensor.sentinel_person
icon: mdi:account
icon_color: red
- type: entity
entity: binary_sensor.sentinel_vehicle
icon: mdi:car
- type: entity
entity: input_boolean.sentinel_notifikation_lydlos
icon: mdi:bell-off
tap_action:
action: toggle
- type: logbook
entities:
- binary_sensor.sentinel_person
- binary_sensor.sentinel_vehicle
hours_to_show: 24
Logbogen er det jeg bruger mest efter en rejse — rul gennem 24 timers hændelser i ét sweep i stedet for at gengive push-notifikationer én ad gangen.