Streaming con WebRTC
WebRTC proporciona el streaming de cámaras con menor latencia en HomeBe·at. Así es como configurarlo con tu instancia de Home Assistant.
¿Por qué WebRTC?
HomeBe·at admite múltiples protocolos de streaming. WebRTC ofrece el mejor equilibrio entre baja latencia y calidad — normalmente menos de 1 segundo de retardo, frente a los 5–15 segundos de HLS.
| Protocolo | Latencia | Calidad | Configuración |
|---|---|---|---|
| WebRTC | < 1s | Alta | Integrado desde HA 2024.11 |
| RTSP | < 1s | Alta | Conexión directa a la cámara |
| HLS | 5–15s | Media | Integrado con las cámaras de HA |
| MJPEG | 1–2s | Baja | Fallback integrado |
go2rtc en Home Assistant
go2rtc está integrado en Home Assistant desde la versión 2024.11 y proporciona streaming WebRTC de forma nativa.
Requisitos
- Home Assistant 2024.11+ con integración de go2rtc
- Instalación basada en Docker (HA OS, Container o Supervised) — go2rtc NO está disponible en instalaciones Python/Core
- Conectividad de red UDP entre el servidor de HA y tu dispositivo
Configuración predeterminada
Las versiones modernas de Home Assistant incluyen soporte para go2rtc de serie. Si tus cámaras exponen un stream RTSP, HA puede usar go2rtc automáticamente para la entrega WebRTC. Comprueba que tus entidades de cámara muestren la opción de stream "WebRTC" en el panel de HA.
Configuración manual de go2rtc
Para cámaras que no se autoconfiguren, puedes añadirlas a tu configuración de go2rtc.yaml:
streams:
front_door:
- rtsp://admin:[email protected]:554/stream1
backyard:
- rtsp://admin:[email protected]:554/h264Streaming en HomeBe·at
HomeBe·at soporta streaming WebRTC, HLS y MJPEG para cámaras de Home Assistant, además de RTSP para cámaras personalizadas. La app detecta automáticamente qué protocolos están disponibles para cada cámara y usa el mejor. Puedes cambiar el protocolo de streaming por cámara en los ajustes de la app.
Códecs compatibles
HomeBe·at soporta H.264, H.265 (HEVC), VP8, VP9 y AV1. El códec se negocia automáticamente entre go2rtc y la app durante el handshake WebRTC. No se necesita configuración manual — si tu cámara transmite en H.265, se decodificará de forma nativa.
Cámaras Reolink
Las cámaras Reolink que exponen entidades de stream fluent (baja resolución) y clear (alta resolución) funcionan de forma nativa con HomeBe·at. La app detecta estos canales de resolución y los usa para cambiar la calidad — la calidad Media se conecta al stream fluent, la calidad Alta al stream clear. Esto evita la limitación de bitrate y proporciona la mejor imagen en cada nivel de calidad. Las cámaras multi-objetivo (p. ej., Reolink Duo 3 PoE) aparecen como cámaras separadas, una por objetivo.
Habilitar entidades del canal Clear
Por defecto, Home Assistant solo habilita la entidad de cámara fluent (baja resolución) para las cámaras Reolink. Para obtener streaming de alta calidad en HomeBe·at, necesitas habilitar el canal clear:
- En Home Assistant, ve a Ajustes → Dispositivos y servicios → Reolink
- Haz clic en tu dispositivo de cámara
- En Entidades, encuentra las entidades deshabilitadas (mostradas en gris o tras un interruptor "Mostrar deshabilitadas")
- Habilita la entidad de cámara Clear (p. ej., camera.entrada_clear o camera.entrada_clear_lens_0)
- Espera unos segundos a que HA registre la entidad, luego reinicia HomeBe·at o reconéctate
Una vez habilitado, HomeBe·at detecta automáticamente el canal clear y lo usa para streaming de alta calidad.
Entidades adicionales de Reolink
Las cámaras Reolink exponen varias otras entidades que HomeBe·at puede usar si están habilitadas en Home Assistant:
| Entidad | Tipo | Descripción |
|---|---|---|
| Bitrate fluent/clear | Número (deslizador) | Bitrate del stream para cada canal. Ajusta para controlar el uso de ancho de banda. |
| Tasa de fotogramas fluent/clear | Número (deslizador) | Tasa de fotogramas para cada canal. Mayor FPS = vídeo más fluido. |
| Sensores de posición PTZ | Sensor | Posición actual de paneo e inclinación (solo lectura). |
| Botones PTZ | Botón | Movimiento direccional (izquierda, derecha, arriba, abajo) y parada. HomeBe·at usa mantener pulsado para movimiento continuo. |
| Zoom PTZ | Número (deslizador) | Nivel de zoom óptico. HomeBe·at divide el rango en pasos utilizables para el control de zoom +/-. |
| Preajustes PTZ | Selección/Botón | Posiciones de cámara guardadas (p. ej., "Puerta principal", "Entrada"). |
Para habilitar estas entidades, sigue los mismos pasos que para el canal clear — encuéntralas en las entidades deshabilitadas del dispositivo en Home Assistant y actívalas.
Solución de problemas
WebRTC no conecta
- Verifica que go2rtc esté activo — En Home Assistant, ve a Ajustes > Complementos y comprueba que go2rtc esté activo.
- Verifica la conectividad UDP — WebRTC requiere tráfico UDP entre el servidor de HA y tu dispositivo. Algunas redes corporativas o restrictivas bloquean UDP.
- Verifica los códigos de error — Si HA devuelve "unknown_command", el endpoint de WebRTC no existe (actualiza a HA 2024.11+). Si devuelve "not_found", la integración de go2rtc no está cargada.
Fallback automático
Si WebRTC falla, HomeBe·at cambia inmediatamente a MJPEG mientras intenta establecer simultáneamente un stream HLS. Una vez que HLS está listo, reemplaza a MJPEG. Verás cómo se actualiza la insignia del protocolo activo en la cámara conforme avanza el fallback.
Usuarios que no pueden usar WebRTC
- Instalaciones de Home Assistant Python/Core (sin go2rtc)
- Usuarios que han desactivado go2rtc manualmente
- Redes que bloquean todo el tráfico UDP
En estos casos, HomeBe·at cambia automáticamente a MJPEG o HLS.