J'utilise Home Assistant depuis plusieurs mois et bien sûr, je me suis intéressé à l'add-on Frigate pour faire de la vidéo surveillance. J'ai choisi d'utiliser des caméras Tapo deux C500 et deux C200, on les trouve sur Amazon à moins de quarante euros.
Home Assistant tourne chez moi sur une dans une machine virtuelle sur un NAS Synology DS1522 en DSM 7 équipé de 32 MO de mémoire. De plus il est indispensable d'autoriser les périphériques USB sur le NAS, ci-dessous le script à mettre dans le Planificateur de taches.
/sbin/modprobe usbserial
/sbin/modprobe ftdi_sio
/sbin/modprobe cdc-acm
chmod 777 /dev/ttyUSB0
chmod 777 /dev/ttyACM0
J'utilise deux périphériques USB le SkyConncect de Nabu Casa pour de Zigbee et pour des raisons de performance, un Google Coral. Cet appareil à 90 euros environ surpassera un processeur à 1600 euros.
Adresse d'un tutoriel pour Installer Mqtt
Adresse d'un tutoriel pour installer Frigate
Pour lire les vidéos YouTube sans PUB je vous conseille d'utiliser FreeTube
Exemple de mon fichier de configuration : frigate.yml
mqtt:
enabled: true
host: 172.30.X.X
port: 1883
user: UUUUUUUU
password: XXXXXX
go2rtc:
streams:
tapo_camera:
- rtsp://UUUUUU:XXXXXX@192.168.X.X:554/stream1
tapo_camera_sub:
- rtsp://UUUUUU:XXXXXX@192.168.X.X:554/stream2
cameras:
tapo_camera:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/tapo_camera
roles:
- record
- path: rtsp://127.0.0.1:8554/tapo_camera_sub
roles:
- detect
input_args:
- -avoid_negative_ts
- make_zero
- -fflags
- +genpts+discardcorrupt
- -use_wallclock_as_timestamps
- '1'
detect:
enabled: false
fps: 5
objects:
track:
- person
- car
filters:
person:
min_score: 0.7
threshold: 0.8
snapshots:
enabled: true
clean_copy: true
timestamp: true
bounding_box: true
crop: false
retain:
default: 2
record:
enabled: true
retain:
days: 2
events:
pre_capture: 5
post_capture: 5
retain:
default: 7
mode: motion
live:
stream_name: tapo_camera
motion:
mask:
- 81,109,390,79,429,0,0,0,0,0,0,44
detectors:
coral:
type: edgetpu
device: usb
birdseye:
enabled: false
rtmp:
enabled: false
Il existe une pléthore de tutoriel sur Frigate avec différente caméra après plusieurs jours de recherche et de test, cette configuration me donne entière satisfaction avec mes caméras C500 et C200 pour l'instant aucune fausse alerte.
Ci-dessous la carte custom:frigate-card avec le code qui permet la rotation de la caméra.
type: custom:frigate-card
cameras:
- camera_entity: camera.tapo_camera
live_provider: go2rtc
go2rtc:
modes:
- webrtc
elements:
- type: custom:frigate-card-conditional
conditions:
camera:
- camera.tapo_camera
elements:
- type: custom:frigate-card-ptz
orientation: vertical
style:
transform: none
right: 40%
top: 60%
service: button.press
data_left:
entity_id: button.tapo_camera_move_left
data_right:
entity_id: button.tapo_camera_move_right
data_up:
entity_id: button.tapo_camera_move_up
data_down:
entity_id: button.tapo_camera_move_down
- type: custom:frigate-card-menu-state-icon
icon: mdi:motion-sensor
entity: switch.tapo_camera_detect
title: Detection
tap_action:
action: toggle
- type: custom:frigate-card-conditional
conditions:
camera:
- camera.tapo_garage
elements:
- type: custom:frigate-card-ptz
orientation: vertical
style:
transform: none
right: 40%
top: 60%
service: button.press
data_left:
entity_id: button.tapo_garage_move_left
data_right:
entity_id: button.tapo_garage_move_right
data_up:
entity_id: button.tapo_garage_move_up
data_down:
entity_id: button.tapo_garage_move_down
- type: custom:frigate-card-menu-state-icon
icon: mdi:motion-sensor
entity: switch.tapo_garage_detect
title: Detection
tap_action:
action: toggle
- type: custom:frigate-card-conditional
conditions:
camera:
- camera.tapo_poule
elements:
- type: custom:frigate-card-ptz
orientation: vertical
style:
transform: none
right: 40%
top: 60%
service: button.press
data_left:
entity_id: button.poule_move_left
data_right:
entity_id: button.poule_move_right
data_up:
entity_id: button.poule_move_up
data_down:
entity_id: button.poule_move_down
- type: custom:frigate-card-menu-state-icon
icon: mdi:motion-sensor
entity: switch.tapo_poule_detect
title: Detection
tap_action:
action: toggle
- type: custom:frigate-card-conditional
conditions:
camera:
- camera.tapo_entree
elements:
- type: custom:frigate-card-ptz
orientation: vertical
style:
transform: none
right: 40%
top: 60%
service: button.press
data_left:
entity_id: button.entree_move_left
data_right:
entity_id: button.entree_move_right
data_up:
entity_id: button.entree_move_up
data_down:
entity_id: button.entree_move_down
- type: custom:frigate-card-menu-state-icon
icon: mdi:motion-sensor
entity: switch.tapo_entree_detect
title: Detection
tap_action:
action: toggle
menu:
style: outside
Ci-dessous exemple de détection.
Code du Blueprint Frigate Notification qui permet la réception d'une alerte et d'un snapshot sur IOS (Iphone et Apple watch) actuellement, il faut utiliser la Beta Home Assistant mobile via TestFlight
alias: Alarme - Frigate Tapo Jardin Detection
description: Detection sur camera Tapo
use_blueprint:
path: SgtBatten/Stable.yaml
input:
camera: camera.tapo_camera
notify_device: b8cd98e4c898346028ee8e1f15101b48
message: "Tapo cam: Une personne a été détectée jardin"
alert_once: true
attachment: snapshot
ios_live_view: true
critical: "true"
color: red
sound: ladder.caf
update_thumbnail: true