Kamera w Home Assistant krok po kroku: ONVIF i generic camera
Kamera podpięta do Home Assistant przestaje być samotną wyspą: jej obraz i detekcja ruchu zaczynają sterować światłem, powiadomieniami i nagrywaniem. Pokażę dwie drogi, ONVIF i generic camera, oraz ustawienia, dzięki którym podgląd nie zarżnie serwera.
Treść zweryfikowana przez: Michał Sawicki, Kwalifikowany pracownik zabezpieczenia technicznego, 14 lat montaży
Krótko
Kamerę dodasz do Home Assistant integracją ONVIF (Ustawienia, Urządzenia i usługi, Dodaj integrację): kamera musi być zgodna z ONVIF Profile S i mieć strumień H.264. Alternatywnie użyj integracji generic camera i wklej adres RTSP strumienia. Potem dodajesz kartę z podglądem na dashboard i budujesz automatyzacje na sensorze ruchu.
Co musisz mieć, zanim zaczniesz
Ten poradnik zakłada działający serwer Home Assistant. Jeśli dopiero go stawiasz, zacznij od tekstu Home Assistant do bezpieczeństwa: start i wróć tu po instalacji. Potrzebujesz też kamery IP dostępnej w tej samej sieci co serwer, z włączonym ONVIF lub RTSP w jej ustawieniach, oraz loginu i hasła do niej.
Jedna rzecz przed startem, która oszczędza późniejsze debugowanie: utwórz w kamerze osobne konto dla Home Assistant, bez praw administratora. Dokumentacja integracji ONVIF wprost to zaleca. Gdy kiedyś zmienisz główne hasło kamery, integracja nie padnie razem z nim.
ONVIF czy generic camera: co wybrać
Home Assistant ma dwie standardowe drogi podpięcia kamery. Różnice zebrałem w tabeli:
| Cecha | Integracja ONVIF | Generic camera |
|---|---|---|
| Co daje | Obraz plus encje zdarzeń: ruch, wykrycie osoby, sabotaż (zależnie od kamery) | Sam obraz ze strumienia |
| Wymagania | Kamera zgodna z ONVIF Profile S, strumień H.264 | Dowolny adres RTSP lub URL zdjęcia |
| Konfiguracja | Automatyczne wykrywanie lub adres i port | Ręczne wklejenie adresu strumienia |
| Kiedy wybrać | Kamera wspiera ONVIF i chcesz automatyzacji z detekcją | Kamera bez ONVIF albo nietypowe źródło obrazu |
Zasada praktyczna: najpierw próbuj ONVIF, bo dostajesz sensory zdarzeń za darmo. Generic camera zostaw jako plan B. Czym dokładnie jest protokół strumienia, wyjaśniam w haśle RTSP.
Wymagania ONVIF: Profile S i H.264
Dokumentacja integracji na home-assistant.io stawia dwa twarde warunki. Po pierwsze, kamera musi być zgodna z ONVIF Profile S, czyli profilem obejmującym strumieniowanie wideo. Po drugie, integracja szuka strumieni kodowanych w H.264. Wiele nowszych kamer nadaje domyślnie w H.265 i wtedy zobaczysz błąd o braku kamer do użycia. Rozwiązanie: w ustawieniach kamery przełącz przynajmniej jeden strumień (najlepiej pomocniczy) na H.264. Integracja wymaga też skonfigurowanej integracji FFmpeg, którą standardowa instalacja ma domyślnie.
Integracja ONVIF krok po kroku
- W ustawieniach kamery włącz ONVIF i, jeśli producent tego wymaga, utwórz konto użytkownika ONVIF. W wielu kamerach to osobny przełącznik w ustawieniach sieci.
- W Home Assistant wejdź w Ustawienia, potem Urządzenia i usługi.
- Kliknij Dodaj integrację i wyszukaj ONVIF. Jeśli kamera została wykryta automatycznie, pojawi się na liście sama.
- Podaj adres IP kamery, port ONVIF (typowo 80, 8000 lub 2020, zależnie od producenta; znajdziesz go w ustawieniach kamery) oraz login i hasło.
- Zatwierdź. Integracja utworzy encję kamery dla każdego zgodnego profilu wideo oraz sensory binarne zdarzeń, na przykład ruchu.
- Wejdź w urządzenie i wyłącz encje, których nie potrzebujesz. Pierwszy profil ma najwyższą jakość i jest używany domyślnie.
Jeśli kamera nie zgłasza sensora ruchu, sprawdź w jej ustawieniach, czy detekcja jest w ogóle włączona. Home Assistant tylko nasłuchuje zdarzeń, samej detekcji nie robi.
Generic camera: dodanie po adresie RTSP
- Ustal adres RTSP swojej kamery. Format podaje dokumentacja producenta; typowo zawiera adres IP, port 554, login i ścieżkę strumienia.
- Przetestuj adres w odtwarzaczu VLC (menu otwierania strumienia sieciowego). Jeśli VLC pokazuje obraz, Home Assistant też go pokaże.
- W Home Assistant wejdź w Ustawienia, Urządzenia i usługi, Dodaj integrację i wybierz Generic Camera.
- Wklej adres strumienia w polu Stream Source URL, podaj login i hasło, wybierz typ uwierzytelnienia (basic lub digest, według dokumentacji kamery).
- Zatwierdź podgląd testowy i zapisz.
Generic camera przyjmie też sam URL zdjęcia (Still Image URL), co przydaje się przy starych kamerach oferujących wyłącznie migawki JPEG.
Podgląd na dashboardzie
Encję kamery pokażesz na dashboardzie kartą obrazu z encji (picture entity) albo kartą przeglądu (picture glance), która obok podglądu wyświetla stany sensorów, na przykład ruchu i drzwi. Karta domyślnie odświeża miniaturę co kilka sekund, a strumień na żywo otwiera po kliknięciu. Do ściennego tabletu z podglądem całej posesji sprawdza się siatka kilku kart z miniaturami; strumienie na żywo zostaw do widoku pojedynczej kamery.
Automatyzacja z detekcją ruchu
Sensor ruchu z integracji ONVIF to zwykły sensor binarny, więc automatyzację klika się w edytorze bez kodu:
- Wejdź w Ustawienia, Automatyzacje i sceny, Utwórz automatyzację.
- Jako wyzwalacz wybierz stan sensora ruchu kamery zmieniający się na wykryto.
- Dodaj warunki, na przykład tylko po zmroku albo tylko gdy alarm uzbrojony.
- Jako akcję ustaw powiadomienie na telefon z załączoną migawką z kamery, włączenie światła przy wejściu albo start nagrywania.
- Ustaw czas blokady ponownego wyzwolenia, żeby seria zdarzeń nie zasypała Cię powiadomieniami.
Zacznij od jednej prostej automatyzacji i obserwuj ją przez kilka dni, zanim dobudujesz kolejne. Łatwiej wtedy złapać moment, w którym detekcja wyzwala się na koty i cienie.
Nagrywanie i migawki
Home Assistant udostępnia akcje camera.snapshot (zapis pojedynczej klatki do pliku) i camera.record (zapis fragmentu strumienia). Używa się ich w akcjach automatyzacji: ruch wyzwala migawkę, a plik trafia do katalogu, który wcześniej dopuścisz do zapisu w konfiguracji serwera (lista dozwolonych katalogów w pliku konfiguracyjnym). Traktuj to jako uzupełnienie, nie zamiennik rejestratora: ciągły zapis z wielu kamer to zadanie dla rejestratora NVR lub dedykowanego oprogramowania, a Home Assistant niech zostanie centrum zdarzeń.
Wydajność: substream zamiast głównego strumienia
Częsty błąd: podgląd czterech kamer w 4K na dashboardzie i zdziwienie, że Raspberry Pi się krztusi. Do miniatur na dashboardzie podpinaj strumień pomocniczy (substream) o niskiej rozdzielczości, a strumień główny zostaw rejestratorowi i widokowi pełnoekranowemu. W integracji ONVIF wybierz po prostu encję niższego profilu. Dokumentacja ostrzega też, że wstępne ładowanie strumienia (preload) skraca czas otwarcia podglądu, ale stale obciąża procesor, więc włączaj je wybiórczo. Ruch generowany przez strumienie policzysz w kalkulatorze przepustowości sieci.
Dobre praktyki bezpieczeństwa
- Osobne konto kamery dla Home Assistant z silnym, unikalnym hasłem, bez praw administratora.
- Aktualizuj firmware kamer i sam Home Assistant; integracje ONVIF zyskują poprawki z każdym wydaniem.
- Wyłącz UPnP na routerze i nie wystawiaj portów RTSP ani ONVIF do internetu. Zdalny podgląd rób przez bezpieczny dostęp do samego Home Assistant.
- Kamery trzymaj w osobnym segmencie sieci, z którego widzi je tylko serwer; przepis znajdziesz w poradniku VLAN dla kamer krok po kroku.
Typowe problemy
Błąd o braku kamer przy dodawaniu ONVIF: kamera nadaje tylko w H.265, przełącz strumień na H.264, jak w sekcji wymagań. Encja kamery jest, ale obraz zamarza lub pokazuje niedostępność: zacznij od checklisty kamera offline: co sprawdzić, bo przyczyna zwykle leży w sieci albo zasilaniu, nie w Home Assistant. Automatyzacja działa, ale telefon milczy: diagnostykę powiadomień przechodzisz według tekstu powiadomienia z kamery nie przychodzą. Sensor ruchu ONVIF nie zmienia stanu: część kamer wysyła zdarzenia dopiero po włączeniu detekcji i skonfigurowaniu obszarów w ich własnym panelu.