Aves · Fauna · IA · Cámaras · Biodiversidad
BirdNET + Frigate — Procesamiento de campo¶
Identificación de aves por canto (BirdNET, 6000+ especies) y detección de fauna con cámaras (Frigate, IA YOLO). Corren en Horus (servidor secundario con GPU para IA) bajo demanda para no consumir recursos cuando no se necesitan.
Como usuario¶
Funcionalidades (para la finca)¶
| Funcionalidad | Navegador | Ubuntu | Android | FireTV |
|---|---|---|---|---|
| Ver detecciones de aves en el dashboard de Grafana | ✅ | ✅ | ✅ | ❌ |
| Recibir alertas en ntfy cuando se detecta una especie nueva o rara | ❌ | ❌ | ✅ | ❌ |
| Consultar el historial de fauna en farmOS | ✅ | ✅ | ✅ | ❌ |
| Ver clips de fauna detectada en Immich (álbum biodiversidad) | ✅ | ✅ | ✅ | ❌ |
Primeros pasos: Abre el dashboard de Grafana desde el navegador y busca el panel Biodiversidad. Las detecciones recientes aparecen automáticamente. Configura ntfy en tu Android para recibir alertas de nuevas especies.
Integración con otros servicios de SmallCountry¶
| Servicio | Cómo se integra |
|---|---|
| Grafana | Dashboard de biodiversidad con detecciones en tiempo real |
| farmOS | Registro automático de detecciones de fauna |
| Immich | Álbum biodiversidad con clips e imágenes de detecciones confirmadas |
| ntfy | Alertas de nuevas especies detectadas |
| Node-RED | Dispara la grabación y enruta resultados |
| n8n | Orquestación — enciende y apaga Horus según demanda |
Servicios que lo hacen posible¶
- BirdNET — Identificación de aves por canto (6000+ especies)
- Frigate — Detección de fauna con IA (YOLO)
- Mosquitto — Broker MQTT (protocolo de mensajería ligera para IoT) para mensajería entre servicios
- Node-RED — Enrutamiento de detecciones
- Python — Scripts de análisis de audio
Para el administrador (diseño previsto)
Ejecución: Horus (bajo demanda, no 24/7)
Tier: 4
Impacto: 🟢 Bajo — Servicio no crítico, bajo demanda
n8n workflow gestiona el ciclo de vida:
1. WoL (encendido remoto por red) a Horus
2. Procesar grabaciones
3. Apagar por inactividad
GPU (procesador gráfico (usado para IA)): RTX 2070 en Horus para inferencia YOLO y BirdNET
Healthcheck: Verificar que las detecciones aparecen en el dashboard de Grafana.
Almacenamiento: Las grabaciones sin detecciones se procesan y descartan. Solo las detecciones confirmadas se guardan en Immich.
Problemas comunes:
- "No aparecen detecciones en Grafana" → verificar que Mosquitto y Node-RED están corriendo en Horus
- "Horus no enciende" → verificar WoL y conectividad de red
Para el arquitecto (diseño previsto)
graph TD
A[Micrófonos de campo] -->|archivos .wav| B[BirdNET]
C[Cámaras IP RTSP] -->|stream| D[Frigate YOLO]
B -->|detección| E[Mosquitto MQTT]
D -->|detección| E
E -->|topic| F[Node-RED]
F -->|registro| G[farmOS]
F -->|clip/imagen| H[Immich]
F -->|métrica| I[Grafana]
F -->|alerta rara| J[ntfy]
K[n8n] -->|WoL / shutdown| L[Horus]
Hardware: Horus con GPU RTX 2070 para inferencia.
BirdNET: Analiza archivos de audio (.wav) grabados por micrófonos de campo.
Frigate: Procesa streams RTSP de cámaras IP con modelo YOLO.
Mosquitto MQTT: Cola de mensajes. BirdNET y Frigate publican detecciones. Node-RED se suscribe y enruta a farmOS, Immich, Grafana y ntfy.
Almacenamiento: Temporal en Horus. Las grabaciones sin detecciones se descartan tras procesarse. Las detecciones confirmadas se guardan como assets en Immich (álbum biodiversidad).
Orquestación:
- Playbook: deploy-birdnet-frigate.yml
- Rol Ansible: roles/birdnet-frigate/
- Tofu: modules/birdnet-frigate/
- Semaphore, Forgejo Actions
- Repo: sc-infra/birdnet-frigate