Una vez instalado y configurado Frigate el siguiente paso lógico es integrarlo en nuestro Home Assistant.
Lo primero será crea una serie de cámaras MQTT
mqtt: camera: - name: mqtt_foscam_1 unique_id: mqtt_foscam_1 topic: frigate/foscam_1/person/snapshot - name: mqtt_foscam_2 unique_id: mqtt_foscam_2 topic: frigate/foscam_2/person/snapshot - name: mqtt_foscam_3 unique_id: mqtt_foscam_3 topic: frigate/foscam_3/person/snapshot - name: mqtt_hikvision_1 unique_id: mqtt_hikvision_1 topic: frigate/HIKVISION_1/person/snapshot - name: mqtt_hikvision_2 unique_id: mqtt_hikvision_2 topic: frigate/HIKVISION_2/person/snapshot - name: mqtt_ic_3116w unique_id: mqtt_ic_3116w topic: frigate/IC-3116W/person/snapshot
Lo siguiente crear los sensores de deteccions de movimiento.
#################################################################### # Sensores camaras frigate #################################################################### - name: "Frigate NVR" icon: hass:cctv state_topic: "frigate/available" payload_on: "online" payload_off: "offline" device_class: connectivity - name: movimiento_foscam_1 device_class: motion off_delay: 10 state_topic: "frigate/events" value_template: > {% if (value_json['after']['camera'] == 'foscam_1') and (value_json['after']['label'] == 'person') and (value_json['after']['stationary'] == false) and (value_json['after']['has_snapshot'] == true ) %} ON {% else %} OFF {% endif %} - name: movimiento_foscam_2 device_class: motion off_delay: 10 state_topic: "frigate/events" value_template: > {% if (value_json['after']['camera'] == 'foscam_2') and (value_json['after']['label'] == 'person') and (value_json['after']['stationary'] == false) and (value_json['after']['has_snapshot'] == true ) %} ON {% else %} OFF {% endif %} - name: movimiento_foscam_3 device_class: motion off_delay: 10 state_topic: "frigate/events" value_template: > {% if (value_json['after']['camera'] == 'foscam_3') and (value_json['after']['label'] == 'person') and (value_json['after']['stationary'] == false) and (value_json['after']['has_snapshot'] == true ) %} ON {% else %} OFF {% endif %} - name: movimiento_hikvision_1 device_class: motion off_delay: 10 state_topic: "frigate/events" value_template: > {% if (value_json['after']['camera'] == 'HIKVISION_1') and (value_json['after']['label'] == 'person') and (value_json['after']['stationary'] == false) and (value_json['after']['has_snapshot'] == true ) %} ON {% else %} OFF {% endif %} - name: movimiento_hikvision_2 device_class: motion off_delay: 10 state_topic: "frigate/events" value_template: > {% if (value_json['after']['camera'] == 'HIKVISION_2') and (value_json['after']['label'] == 'person') and (value_json['after']['stationary'] == false) and (value_json['after']['has_snapshot'] == true ) %} ON {% else %} OFF {% endif %} - name: movimiento_ic_3116w device_class: motion off_delay: 10 state_topic: "frigate/events" value_template: > {% if (value_json['after']['camera'] == 'IC-3116W') and (value_json['after']['label'] == 'person') and (value_json['after']['stationary'] == false) and (value_json['after']['has_snapshot'] == true ) %} ON {% else %} OFF {% endif %}
Una vez creados y funcionando ya podemos empezar con las automatizaciones , en este caso por ejemplo automatizaciones que guardan en jpg el snapshot que nos ha llegado por mqtt en función de cada cámara y lo envia por Telegram dando aviso por texto y añadiendo la imagen
- id: 'nuevo snapshot recibido camara 1' alias: 'nuevo snapshot recibido camara 1' variables: filepath: /config/www/cam_captures/1_{{now().year}}_{{now().month}}_{{now().day}}_{{now().hour}}_{{now().minute}}_{{now().second}}.jpg trigger: - platform: state entity_id: binary_sensor.movimiento_foscam_1 from: 'off' to: 'on' action: - service: camera.snapshot data: entity_id: camera.mqtt_foscam_1 filename: '{{ filepath }}' - delay: 00:00:05 - service: notify.notif_telegram_ha_camaras data: title: Enviar imagenes message: Cam. 1 {{now().strftime("%d/%m %H:%M:%S")}} data: photo: - file: '{{ filepath }}' capture: Snapshoot caption: Cam. 1 {{now().strftime("%d/%m %H:%M:%S")}} - id: 'nuevo snapshot recibido camara 2' alias: 'nuevo snapshot recibido camara 2' variables: filepath: /config/www/cam_captures/2_{{now().year}}_{{now().month}}_{{now().day}}_{{now().hour}}_{{now().minute}}_{{now().second}}.jpg trigger: - platform: state entity_id: binary_sensor.movimiento_foscam_2 from: 'off' to: 'on' action: - service: camera.snapshot data: entity_id: camera.mqtt_foscam_2 filename: '{{ filepath }}' - delay: 00:00:05 - service: notify.notif_telegram_ha_camaras data: title: Enviar imagenes message: Cam. 2 {{now().strftime("%d/%m %H:%M:%S")}} data: photo: - file: '{{ filepath }}' capture: Snapshoot caption: Cam. 2 {{now().strftime("%d/%m %H:%M:%S")}} - id: 'nuevo snapshot recibido camara 3' alias: 'nuevo snapshot recibido camara 3' variables: filepath: /config/www/cam_captures/3_{{now().year}}_{{now().month}}_{{now().day}}_{{now().hour}}_{{now().minute}}_{{now().second}}.jpg trigger: - platform: state entity_id: binary_sensor.movimiento_foscam_3 from: 'off' to: 'on' action: - service: camera.snapshot data: entity_id: camera.mqtt_foscam_3 filename: '{{ filepath }}' - delay: 00:00:05 - service: notify.notif_telegram_ha_camaras data: title: Enviar imagenes message: Cam. 3 {{now().strftime("%d/%m %H:%M:%S")}} data: photo: - file: '{{ filepath }}' capture: Snapshoot caption: Cam. 3 {{now().strftime("%d/%m %H:%M:%S")}} - id: 'nuevo snapshot recibido camara 4' alias: 'nuevo snapshot recibido camara 4' variables: filepath: /config/www/cam_captures/4_{{now().year}}_{{now().month}}_{{now().day}}_{{now().hour}}_{{now().minute}}_{{now().second}}.jpg trigger: - platform: state entity_id: binary_sensor.movimiento_hikvision_1 from: 'off' to: 'on' action: - service: camera.snapshot data: entity_id: camera.mqtt_hikvision_1 filename: '{{ filepath }}' - delay: 00:00:05 - service: notify.notif_telegram_ha_camaras data: title: Enviar imagenes message: Cam. 4 {{now().strftime("%d/%m %H:%M:%S")}} data: photo: - file: '{{ filepath }}' capture: Snapshoot caption: Cam. 4 {{now().strftime("%d/%m %H:%M:%S")}} - id: 'nuevo snapshot recibido camara 5' alias: 'nuevo snapshot recibido camara 5' variables: filepath: /config/www/cam_captures/5_{{now().year}}_{{now().month}}_{{now().day}}_{{now().hour}}_{{now().minute}}_{{now().second}}.jpg trigger: - platform: state entity_id: binary_sensor.movimiento_hikvision_2 from: 'off' to: 'on' action: - service: camera.snapshot data: entity_id: camera.mqtt_hikvision_2 filename: '{{ filepath }}' - delay: 00:00:05 - service: notify.notif_telegram_ha_camaras data: title: Enviar imagenes message: Cam. 5 {{now().strftime("%d/%m %H:%M:%S")}} data: photo: - file: '{{ filepath }}' capture: Snapshoot caption: Cam. 5 {{now().strftime("%d/%m %H:%M:%S")}} - id: 'nuevo snapshot recibido camara 6' alias: 'nuevo snapshot recibido camara 6' variables: filepath: /config/www/cam_captures/6_{{now().year}}_{{now().month}}_{{now().day}}_{{now().hour}}_{{now().minute}}_{{now().second}}.jpg trigger: - platform: state entity_id: binary_sensor.movimiento_ic_3116w from: 'off' to: 'on' action: - service: camera.snapshot data: entity_id: camera.mqtt_ic_3116w filename: '{{ filepath }}' - delay: 00:00:05 - service: notify.notif_telegram_ha_camaras data: title: Enviar imagenes message: Cam. 6 {{now().strftime("%d/%m %H:%M:%S")}} data: photo: - file: '{{ filepath }}' capture: Snapshoot caption: Cam. 6 {{now().strftime("%d/%m %H:%M:%S")}}
También lo añadimos a nuestro panel lovelace
- type: vertical-stack cards: - type: entities title: Camaras show_name: true show_state: false show_header_toggle: false columns: 3 entities: - entity: binary_sensor.frigate_nvr name: Frigate NVR - entity: camera.mqtt_foscam_1 name: Camara 1 - entity: camera.mqtt_foscam_2 name: Camara 2 - entity: camera.mqtt_foscam_3 name: Camara 3 - entity: camera.mqtt_hikvision_1 name: Camara 4 - entity: camera.mqtt_hikvision_2 name: Camara 5 - entity: camera.mqtt_ic_3116w name: Camara 6 - type: entities title: Sensores movimiento Camaras show_name: true show_state: false show_header_toggle: false columns: 3 entities: - entity: binary_sensor.movimiento_foscam_1 name: Camara 1 - entity: binary_sensor.movimiento_foscam_2 name: Camara 2 - entity: binary_sensor.movimiento_foscam_3 name: Camara 3 - entity: binary_sensor.movimiento_hikvision_1 name: Camara 4 - entity: binary_sensor.movimiento_hikvision_2 name: Camara 5 - entity: binary_sensor.movimiento_ic_3116w name: Camara 6
Y este seria el resultado al activarse la detección de movimiento
Y con esto y un bizcocho ……..