Frigate NVR con Home Assistant: guía paso a paso

Frigate NVR con Home Assistant: guía paso a paso

Frigate NVR con Home Assistant: guía paso a paso

Frigate es un NVR open source que detecta personas y objetos en local, sin enviar vídeo a ninguna nube. Te cuento cómo instalarlo desde cero, conectar tus cámaras IP y enlazarlo con Home Assistant para crear automatizaciones reales.

Por Javier · Actualizado: 2025-11-21

Frigate NVR es un sistema de videovigilancia open source que analiza el vídeo de tus cámaras IP localmente, sin enviar datos a servidores externos. Corre en Docker o como add-on de Home Assistant, consume streams RTSP y usa modelos de detección de objetos por defecto en CPU —aunque sin acelerador dedicado, más de 2-3 cámaras pueden saturar hardware de gama baja.

Ya tienes Home Assistant, te falta el vídeo

Si llevas un tiempo con Home Assistant sabes que puedes automatizar casi cualquier cosa en casa, pero cuando llegás a las cámaras de seguridad el panorama se complica: o dependes de una app propietaria en la nube, o pagas cuota mensual por guardar clips, o acabas mirando un stream RTSP sin ninguna inteligencia detrás. Y si probaste las opciones de Hikvision cloud, Eufy o similares, ya sabes cómo termina eso: datos fuera de casa, privacidad difusa y una suscripción que escala sola.

Frigate es la pieza que falta. Es un NVR open source que corre en tu propio hardware, analiza el vídeo localmente con detección de objetos por IA y se integra con Home Assistant para que puedas montar automatizaciones reales: notificación cuando hay una persona en la puerta, grabación solo cuando algo se mueve, o encender una luz si el detector ve actividad de noche. Sin enviar ni un fotograma fuera de tu red.

Este post es un tutorial paso a paso para montarlo desde cero: qué hardware necesitas, cómo configurar el frigate.yml, cómo conectarlo a Home Assistant y qué esperar en términos realistas de rendimiento. No prometo que sea trivial —hay que tocar Docker, RTSP y algo de YAML— pero si ya tienes HA funcionando, tienes el 80% del camino hecho.

Por qué importa

Privacidad total, sin nube

El vídeo nunca sale de tu red local. La detección corre en tu hardware con modelos TFLite.

Coral dispara el rendimiento

El USB Accelerator ejecuta inferencias a ~100 FPS. Sin él, la CPU se satura con más de 2-3 cámaras.

Eventos reales en Home Assistant

Cada persona u objeto detectado puede disparar automatizaciones: notificación, luz, alarma. Sin polling manual.

Configuración explícita, sin magia

Necesitas RTSP accesible, MQTT broker o integración nativa, y un frigate.yml con tus cámaras definidas.

Qué necesitas antes de empezar

Frigate es un NVR open source que corre en local, analiza el vídeo de tus cámaras y detecta personas, coches, mascotas u otros objetos sin mandar nada a servidores externos. Para montarlo desde cero necesitas tres cosas básicas.

Hardware: Cualquier máquina que pueda correr Docker o Home Assistant OS sirve. Un mini-PC con Intel N100, una Raspberry Pi 4 con 4 GB o una VM en Proxmox funcionan. Lo que importa es cuántas cámaras vas a conectar y si tienes o no aceleración de IA.

  • Sin acelerador (solo CPU): viable con 1-2 cámaras en hardware razonablemente moderno. Con más de 2 la CPU puede quedarse al 80-100 % sostenido.
  • Google Coral USB: ejecuta inferencias a ~100 FPS con modelos tflite de 300×300 según la documentación oficial. Escala bien a 6-8 cámaras con CPU mínima. El USB-A básico ronda los 60-80 € según disponibilidad.
  • Intel iGPU (QuickSync/OpenVINO): si tu host tiene procesador Intel de 6.ª gen en adelante, es una opción gratuita y bastante capaz antes de plantearte el Coral.

Cámaras IP con RTSP: Frigate consume streams RTSP (puerto 554 por defecto). La mayoría de cámaras IP de gama media lo soportan, pero necesitas que el stream sea accesible desde tu red local, sin pasar por la nube del fabricante.

Frigate recomienda un mínimo de 4 GB de RAM para instalaciones con 4 o más cámaras sin acelerador dedicado.

Instalar Frigate: Docker o add-on de Home Assistant

Hay dos caminos principales. Ninguno es objetivamente mejor; depende de cómo tengas montado tu homelab.

Frigate como contenedor Docker

Esta opción funciona en cualquier host Linux con Docker instalado: una VM en Proxmox, un NAS o directamente un mini-PC dedicado. Un docker-compose.yml mínimo tiene este aspecto:

services:
  frigate:
    image: ghcr.io/blakeblackshear/frigate:stable
    container_name: frigate
    privileged: true
    restart: unless-stopped
    shm_size: "128mb"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /ruta/config:/config
      - /ruta/media:/media/frigate
    ports:
      - "5000:5000"
      - "8554:8554"
    environment:
      FRIGATE_RTSP_PASSWORD: "tu_password"

El parámetro shm_size es relevante: Frigate usa memoria compartida para los frames de vídeo. Con varias cámaras en alta resolución necesitarás subirlo. Si tienes Coral USB, añade también el acceso al dispositivo:

    devices:
      - /dev/bus/usb:/dev/bus/usb

Frigate como add-on en Home Assistant OS

Si corres HAOS, puedes instalar Frigate desde la tienda de add-ons añadiendo el repositorio oficial de la comunidad. Ve a Configuración → Add-ons → Tienda de add-ons y busca el repositorio de Frigate NVR.

La ventaja es que el add-on gestiona logs y ciclo de vida desde la UI de HA. Si quieres usar el Coral en una VM HAOS en Proxmox, necesitas configurar passthrough USB desde Proxmox, lo que añade algún paso extra.

Configurar las cámaras en frigate.yml

Toda la lógica de Frigate vive en frigate.yml. Es el fichero más importante y el que más tiempo vas a pasar ajustando.

Cómo encontrar el stream RTSP de tu cámara

Cada fabricante tiene su propia URL RTSP. Algunos ejemplos reales:

  • Reolink (substream, 640×480): rtsp://admin:password@192.168.1.x:554/h264Preview_01_sub
  • Hikvision (canal 1, mainstream): rtsp://admin:password@192.168.1.x:554/Streaming/Channels/101
  • Dahua: rtsp://admin:password@192.168.1.x:554/cam/realmonitor?channel=1&subtype=1

Puedes verificar la URL con VLC antes de meterla en Frigate: Medio → Abrir ubicación de red y pega la URL RTSP. Si VLC muestra imagen, Frigate también la verá.

Estructura mínima del fichero de configuración

Un frigate.yml funcional con una cámara y detección en CPU:

mqtt:
  host: 192.168.1.x
  user: frigate
  password: tu_password

cameras:
  entrada:
    ffmpeg:
      inputs:
        - path: rtsp://admin:pass@192.168.1.20:554/h264Preview_01_sub
          roles:
            - detect
    detect:
      width: 640
      height: 480
      fps: 5
    objects:
      track:
        - person
        - car

El fps: 5 en el bloque detect es clave: Frigate no necesita analizar 30 fps para detectar objetos. Con 5 fps la carga en CPU cae de forma significativa y la detección sigue siendo efectiva para la mayoría de casos de uso. Si tienes Coral, añade el bloque de detector:

detectors:
  coral:
    type: edgetpu
    device: usb

Detección de objetos: qué esperar y cómo ajustarla

El modelo por defecto de Frigate es MobileNet SSD, entrenado para detectar personas, coches, mascotas y otros objetos comunes. Funciona bien para la mayoría de casos domésticos, pero tiene sus limitaciones.

Los falsos positivos son normales. Las sombras de árboles al viento, mascotas moviéndose rápido o cambios bruscos de iluminación pueden disparar alertas espurias. No es un bug; es la limitación inherente de los modelos base. Puedes reducirlos con:

  • Zonas (zones): define áreas de la imagen donde sí te interesa detectar. Por ejemplo, solo la puerta de entrada, ignorando la calle al fondo.
  • Máscaras de movimiento: excluye zonas donde siempre hay movimiento irrelevante, como árboles o una TV visible desde la cámara.

La diferencia entre CPU y Coral en la práctica: con un N100 sin Coral y tres cámaras a 5 fps, la CPU puede estar entre el 40-60 % dedicada solo a inferencia. Con el Coral USB cae a menos del 10 %, con mejor latencia de detección. Si tu instalación supera las dos o tres cámaras y el hardware no es un servidor de verdad, el Coral empieza a justificarse.

Integrar Frigate con Home Assistant

Aquí es donde el sistema cobra sentido de verdad: Frigate detecta, Home Assistant reacciona.

Configurar MQTT con Mosquitto

La integración de Frigate con HA usa MQTT como canal de eventos. No es plug-and-play: hasta que no configures el broker en ambos lados, los sensores no aparecerán en HA. El proceso básico:

  1. Instala el add-on Mosquitto broker desde la tienda de add-ons de HA.
  2. Crea un usuario de HA dedicado para Frigate, sin permisos de administrador.
  3. Añade esas credenciales al bloque mqtt: de tu frigate.yml.
  4. En HA, comprueba que la integración MQTT apunta a tu broker local (127.0.0.1 si el broker está en el mismo host que HA).

Una vez conectado, Frigate publica eventos en topics como frigate/events y frigate/entrada/person. Home Assistant los consume y crea automáticamente entidades de cámara y sensores binarios de detección.

Automatizaciones con los eventos de Frigate

Con la integración activa, el salto a las automatizaciones es directo. Un ejemplo básico en YAML, notificación push al detectar una persona en la cámara de entrada:

alias: Alerta persona en entrada
trigger:
  - platform: mqtt
    topic: frigate/entrada/person
    payload: "1"
action:
  - service: notify.mobile_app_tu_telefono
    data:
      title: Persona detectada
      message: Alguien en la entrada

A partir de aquí la lógica la decides tú: encender luces, activar sirenas, cruzar la detección con el horario o con el estado de presencia en casa. Frigate solo genera los eventos; Home Assistant hace el resto.

Almacenamiento de clips y snapshots

Por defecto Frigate guarda clips y snapshots en /media/frigate dentro del contenedor. Tú mapeas esa ruta a donde quieras en el host: un disco USB, un NAS montado por NFS, o una carpeta local.

Una referencia práctica para calcular espacio:

  • Un clip de 30 segundos en H.264 a 1080p ocupa entre 3-8 MB según el movimiento en escena.
  • Con 3 cámaras y retención de 7 días en una zona moderadamente activa, calcula entre 20-60 GB.

La configuración de retención va en el propio frigate.yml:

record:
  enabled: true
  retain:
    days: 7
    mode: motion
snapshots:
  enabled: true
  retain:
    default: 14

El modo motion guarda solo los fragmentos con actividad detectada, no vídeo continuo 24/7. Para una instalación doméstica es lo más razonable si el espacio es limitado. Ten en cuenta que si el disco se llena Frigate puede comportarse de formas inesperadas; merece la pena configurar alertas de espacio en disco desde HA antes de que eso ocurra.

Preguntas frecuentes

Q: ¿Funciona Frigate con cualquier cámara IP que tenga?

A: Depende de si tu cámara expone un stream RTSP accesible en la red local. La mayoría de cámaras IP de gama media-alta lo hacen, pero algunas marcas low-cost solo ofrecen acceso a través de su app propietaria en la nube, lo que las deja fuera. Antes de comprar, busca 'RTSP' en las especificaciones o en el firmware.

Q: ¿Vale una Raspberry Pi para correr Frigate con 3 cámaras?

A: Con CPU sola, lo más probable es que se sature. Frigate recomienda mínimo 4 GB de RAM para 4+ cámaras, pero el cuello de botella real es la inferencia: sin un acelerador como el Coral USB, cada cámara extra pesa en el procesador y la latencia crece. Con 2 cámaras y una Pi 4 de 4 GB puedes tener algo funcional, con 3 ya es arriesgado.

Q: ¿Cuánto cuesta el Google Coral y merece la pena?

A: El Coral USB Accelerator ronda los 60-80 € según disponibilidad (el stock sube y baja bastante). Si tienes 3 o más cámaras, la diferencia es notable: el Coral ejecuta inferencias a ~100 FPS con modelos tflite de 300x300, frente a los pocos FPS que saca una CPU de bajo consumo. Si solo tienes 1-2 cámaras en hardware decente, igual puedes vivir sin él.

Q: ¿Qué pasa si Frigate da falsos positivos con mis mascotas?

A: Es algo habitual con los modelos base (MobileNet SSD). El modelo detecta 'persona' y 'animal' pero no distingue bien entre tu gato pasando y una persona real en condiciones de poca luz o con sombras. Puedes ajustar zonas de detección y umbrales de confianza en frigate.yml para reducirlos, aunque eliminarlos del todo requiere modelos más específicos o afinados.

Q: ¿Cómo se conecta Frigate con Home Assistant para las alertas?

A: Hay dos vías: vía MQTT (necesitas tener Mosquitto broker instalado y configurado, que Frigate usa para publicar eventos) o la integración nativa disponible desde HA 2023.x que simplifica parte del proceso. No es plug-and-play: tienes que configurar el broker o la integración manualmente. Una vez conectado, los eventos de Frigate (persona detectada, vehículo, etc.) se convierten en triggers para tus automatizaciones de HA.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *