WebRTC streaming

WebRTC poskytuje streaming kamier s najnižšou latenciou v HomeBe·at. Tu sa dozviež, ako ho nastaviť s tvojou inštanciou Home Assistant.

Prečo WebRTC?

HomeBe·at podporuje viacero streamovacích protokolov. WebRTC ponúka najlepšiu rovnováhu medzi nízkou latenciou a kvalitou — typicky pod 1 sekundu oneskorenia, oproti 5–15 sekundám pri HLS.

ProtokolLatenciaKvalitaNastavenie
WebRTC< 1sVysokáVstavaný od HA 2024.11
RTSP< 1sVysokáPriame pripojenie ku kamere
HLS5–15sStrednáZabudované v kamerách HA
MJPEG1–2sNízkaZabudovaný fallback

go2rtc v Home Assistant

go2rtc je vstavaný v Home Assistant od verzie 2024.11 a poskytuje WebRTC streaming priamo.

Požiadavky

  • Home Assistant 2024.11+ s integráciou go2rtc
  • Inštalácia založená na Dockeri (HA OS, Container alebo Supervised) — go2rtc NIE JE dostupný v inštaláciách Python/Core
  • UDP sieťové pripojenie medzi serverom HA a tvojím zariadením

Predvolená konfigurácia

Moderné verzie Home Assistant zahŕňajú podporu go2rtc priamo. Ak tvoje kamery poskytujú RTSP stream, HA môže automaticky využiť go2rtc na doručenie cez WebRTC. Skontroluj, či entity kamier zobrazujú možnosť streamu „WebRTC“ v dashboarde HA.

Manuálna konfigurácia go2rtc

Pre kamery, ktoré sa nekonfigurujú automaticky, ich môžeš pridať do konfigurácie go2rtc.yaml:

streams:
  front_door:
    - rtsp://admin:[email protected]:554/stream1
  backyard:
    - rtsp://admin:[email protected]:554/h264

Streaming v HomeBe·at

HomeBe·at podporuje WebRTC, HLS a MJPEG streaming pre kamery Home Assistant, plus RTSP pre vlastné kamery. Aplikácia automaticky zistí, ktoré protokoly sú pre každú kameru dostupné, a použije ten najlepší. Protokol streamu môžeš zmeniť pre každú kameru v nastaveniach aplikácie.

Podporované kodeky

HomeBe·at podporuje H.264, H.265 (HEVC), VP8, VP9 a AV1. Kodek sa automaticky dohodne medzi go2rtc a aplikáciou počas WebRTC handshaku. Nie je potrebná manuálna konfigurácia — ak tvoja kamera streamuje v H.265, bude natívne dekódovaný.

Kamery Reolink

Kamery Reolink, ktoré poskytujú samostatné entity streamu fluent (nízke rozlíšenie) a clear (vysoké rozlíšenie), fungujú natívne s HomeBe·at. Aplikácia deteguje tieto kanály rozlíšenia a používa ich na prepínanie kvality — Stredná kvalita sa pripája k fluent streamu, Vysoká kvalita ku clear streamu. Tým sa predchádza obmedzovaniu bitrate a poskytuje sa najlepšia obrazová kvalita na každej úrovni. Multi-objektívové kamery (napr. Reolink Duo 3 PoE) sa zobrazujú ako samostatné kamery, jedna na objektív.

Povolenie entít Clear kanálu

Štandardne Home Assistant povolí len entitu kamery fluent (nízke rozlíšenie) pre kamery Reolink. Pre vysokú kvalitu streamovania v HomeBe·at musíš povoliť clear kanál:

  1. V Home Assistant prejdi na Nastavenia → Zariadenia a služby → Reolink
  2. Klikni na tvoje kamerové zariadenie
  3. V časti Entity nájdi zakázané entity (zobrazené šedo alebo za prepínačom „Zobraziť zakázané“)
  4. Povoľ entitu kamery Clear (napr. camera.prijazd_clear alebo camera.prijazd_clear_lens_0)
  5. Počkaj niekoľko sekúnd, kým HA zaregistruje entitu, potom reštartuj HomeBe·at alebo sa znovu pripoj

Po povolení HomeBe·at automaticky deteguje clear kanál a použije ho pre vysokú kvalitu streamovania.

Ďalšie entity Reolink

Kamery Reolink poskytujú niekoľko ďalších entít, ktoré HomeBe·at môže využiť, ak sú povolené v Home Assistant:

EntitaTypPopis
Fluent/Clear bitrateČíslo (posuvník)Bitrate streamu pre každý kanál. Úpravou ovládaš spotrebu šírky pásma.
Fluent/Clear snímková frekvenciaČíslo (posuvník)Snímková frekvencia streamu pre každý kanál. Vyššie FPS = plynulejšie video.
PTZ senzory polohySenzorAktuálna pozícia otáčania a nakláňania (len na čítanie).
PTZ tlačidláTlačidloSmerový pohyb (vľavo, vpravo, hore, dole) a zastavenie. HomeBe·at používa podržanie pre kontinuálny pohyb.
PTZ zoomČíslo (posuvník)Úroveň optického zoomu. HomeBe·at rozdelí rozsah na použiteľné kroky pre ovládanie zoomu +/-.
PTZ predvoľbyVýber/TlačidloUložené pozície kamery (napr. „Vchodové dvere“, „Príjazd“).

Na povolenie týchto entít postupuj rovnako ako pri clear kanáli — nájdi ich medzi zakázanými entitami zariadenia v Home Assistant a zapni ich.

Riešenie problémov

WebRTC sa nepripája

  1. Skontroluj, či beží go2rtc — V Home Assistant prejdi na Nastavenia > Doplnky a over, že go2rtc je aktívny.
  2. Skontroluj UDP pripojenie — WebRTC vyžaduje UDP prevádzku medzi serverom HA a tvojím zariadením. Niektoré firemné alebo reštriktívne siete blokujú UDP.
  3. Skontroluj chybové kódy — Ak HA vráti „unknown_command“, WebRTC endpoint neexistuje (aktualizuj na HA 2024.11+). Ak vráti „not_found“, integrácia go2rtc nie je načítaná.

Automatický fallback

Ak WebRTC zlyhá, HomeBe·at okamžite prepne na MJPEG a súčasne sa pokúsi nadviazať HLS stream. Keď je HLS pripravený, prevezme rolu od MJPEG. Na kamere uvidíš aktualizáciu odznaku aktívneho protokolu počas postupu fallbacku.

Používatelia, ktorí nemôžu použiť WebRTC

  • Inštalácie Home Assistant typu Python/Core (bez go2rtc)
  • Používatelia, ktorí manuálne zakázali go2rtc
  • Siete, ktoré blokujú všetku UDP prevádzku

V týchto prípadoch HomeBe·at automaticky prepne na MJPEG alebo HLS.

Tip: Ak máš problémy s pripojením cez WebRTC, skontroluj, či tvoja sieť umožňuje UDP prevádzku medzi serverom HA a tvojim zariadením.