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.

ProtocoloLatenciaCalidadConfiguración
WebRTC< 1sAltaIntegrado desde HA 2024.11
RTSP< 1sAltaConexión directa a la cámara
HLS5–15sMediaIntegrado con las cámaras de HA
MJPEG1–2sBajaFallback 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/h264

Streaming 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:

  1. En Home Assistant, ve a Ajustes → Dispositivos y servicios → Reolink
  2. Haz clic en tu dispositivo de cámara
  3. En Entidades, encuentra las entidades deshabilitadas (mostradas en gris o tras un interruptor "Mostrar deshabilitadas")
  4. Habilita la entidad de cámara Clear (p. ej., camera.entrada_clear o camera.entrada_clear_lens_0)
  5. 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:

EntidadTipoDescripción
Bitrate fluent/clearNúmero (deslizador)Bitrate del stream para cada canal. Ajusta para controlar el uso de ancho de banda.
Tasa de fotogramas fluent/clearNúmero (deslizador)Tasa de fotogramas para cada canal. Mayor FPS = vídeo más fluido.
Sensores de posición PTZSensorPosición actual de paneo e inclinación (solo lectura).
Botones PTZBotónMovimiento direccional (izquierda, derecha, arriba, abajo) y parada. HomeBe·at usa mantener pulsado para movimiento continuo.
Zoom PTZNúmero (deslizador)Nivel de zoom óptico. HomeBe·at divide el rango en pasos utilizables para el control de zoom +/-.
Preajustes PTZSelección/BotónPosiciones 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

  1. Verifica que go2rtc esté activo — En Home Assistant, ve a Ajustes > Complementos y comprueba que go2rtc esté activo.
  2. Verifica la conectividad UDP — WebRTC requiere tráfico UDP entre el servidor de HA y tu dispositivo. Algunas redes corporativas o restrictivas bloquean UDP.
  3. 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.

Consejo: Si experimentas problemas de conexión con WebRTC, comprueba que tu red permite tráfico UDP entre el servidor de HA y tu dispositivo.