AI-kamera i Home Assistant: notifikationer, der faktisk giver mening
Sådan sender Sentinel-kameraet nyttige beskeder i stedet for 40 bevægelsesalarmer om dagen: én automation, en lydløs-kontakt og knapper i notifikationen.
De første par uger efter jeg satte Sentinel-kameraet op, havde jeg notifikationer for bevægelse slået til. Hver eneste 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 hænge der uden at gøre meget nytte i endnu en måned.
Løsningen var enklere end ventet: reager kun på personer og køretøjer, ikke på al bevægelse, og giv notifikationen tre knapper, der faktisk gør noget.
Det, integrationen giver
Når kameraet er tilføjet, opretter HA en række binære sensorer ud fra kameraets egen genkendelse:
binary_sensor.sentinel_motion
binary_sensor.sentinel_person
binary_sensor.sentinel_animal
binary_sensor.sentinel_vehicle
Person og køretøj kommer fra kameraets egen AI-chip. Ret præcis, bedre end ren bevægelse, men ikke fejlfri. Dyresensoren har fanget rigtige ræve og også en stor plastikpose, der åbenbart bevægede sig som et levende væsen.
Én automation til begge udløsere
Hændelser med personer og køretøjer går gennem én automation i tilstanden single. Tilstanden forhindrer dubletter: slår sensoren til igen, mens automationen stadig kører (inklusive en pause på 60 sekunder til sidst), bliver den nye udløsning ignoreret uden besked.
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 gemmer et nyt stillbillede i /local/sentinel_latest.jpg, før notifikationen sendes. Selve notifikationen indeholder kameraets live-billede (camera_stream: true). På Android med HA's Companion-app kan den foldes ud til live-video direkte i notifikationen.
Lydløs-kontakten
Den eneste betingelse er, at input_boolean.sentinel_notifikation_lydlos står på off. Det er den, der bestemmer. Den er enklere end en betingelse på armed_away: der skal ingen alarmcentral til, den virker, uanset om man er hjemme eller ude, og notifikationen kan selv slå den til via Lydløs-knappen.
En separat automation sætter den tilbage til off ved midnat hver nat, så jeg aldrig skal huske at slå den fra igen.
Knapperne i notifikationen
Notifikationen har tre knapper:
- Se Kamera: direkte link til visningen Overvågning i HA's Companion-app
- Tænd Flood: tænder
light.sentinel_floodlightvia en separat automation, der lytter efter handlingensentinel_flood_onfra mobilen - Lydløs 30 min: slår lydløs-kontakten til i 30 minutter og nulstiller den derefter
Sådan håndteres lydløs-knappen:
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
Besked på Fire TV
Den samme automation 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
Parameteren ?t= tvinger et nyt billede frem. Uden den viser Fire TV et gammelt billede fra cachen fra den forrige hændelse. interrupt: 1 får det til at dukke op, også mens noget afspilles.
Dashboard
Visningen Overvågning viser statuskort og en logbog for de seneste 24 timer:
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 et døgns hændelser i ét hug i stedet for at gennemgå notifikationerne én ad gangen.
Nye indlæg direkte i din RSS-læser: følg med via RSS I Google-søgning: vælg szimnau.dk som foretrukken kilde