
Dahua Technology to jeden z największych producentów kamer IP na rynku. Każda kamera Dahua (IPC, PTZ i termowizyjna) z detekcją ruchu udostępnia punkt końcowy HTTP CGI zwracający bieżący stan ruchu — TapHome wykorzystuje ten endpoint, by z dowolnej kamery Dahua zrobić binarny czujnik ruchu, który może wyzwalać sceny, nagrania lub powiadomienia.
Szablon co sekundę odpytuje jeden punkt końcowy CGI i mapuje odpowiedź na kontaktron: ruch aktywny lub brak ruchu. Nie jest wymagany żaden dodatkowy sprzęt, konto w chmurze ani strumień RTSP — TapHome i kamera komunikują się bezpośrednio w sieci lokalnej po nieszyfrowanym HTTP.
Konfiguracja
Sieć
Szablon rozmawia z kamerą na porcie TCP 80 po nieszyfrowanym HTTP. Podczas importu szablonu w TapHome podaj adres IP kamery (zalecana rezerwacja DHCP lub statyczny IP — kamery Dahua nie publikują stabilnej nazwy hosta mDNS).
| Parametr | Wartość |
|---|---|
| Protokół | HTTP (port 80) |
| Odstęp odpytywania | 1000 ms |
| Endpoint | /cgi-bin/eventManager.cgi?action=getEventIndexes&code=VideoMotion |
| Uwierzytelnianie | brak (patrz notka poniżej) |
Szablon wysyła nieuwierzytelnione żądania HTTP GET. Nowsze firmware’y Dahua wymagają uwierzytelnienia HTTP Basic lub Digest przy każdym wywołaniu CGI i bez poświadczeń zwracają stronę HTML
401 Unauthorized. Taka odpowiedź HTML nie zawiera ciąguError:No Events, więc szablon przełączyłby się na stały stan „ruch aktywny". Musisz zatem albo włączyć anonimowy dostęp doeventManager.cgiw kamerze, albo wyłączyć uwierzytelnianie HTTP w ustawieniach bezpieczeństwa kamery. Jeśli twoje środowisko wymaga dostępu uwierzytelnionego, ustaw przed kamerą lokalne reverse-proxy wstrzykujące poświadczenia.
Szablon ma na stałe ustawione
UseHttps=Falsei używa portu 80. Firmware’y wyłącznie HTTPS nie są obsługiwane. Jeśli twoja kamera wymusza HTTPS, wyłącz je w interfejsie webowym w Setting → Network → HTTPS.
Włączenie detekcji ruchu w kamerze
Aby getEventIndexes&code=VideoMotion zwracało stan aktywny, detekcja ruchu musi być w kamerze jawnie włączona. Fabrycznie w wielu modelach Dahua jest wyłączona.
- Zaloguj się do interfejsu webowego kamery pod
http://<ip-kamery>/ - Przejdź do Setting → Event → Video Detection → Motion Detection
- Zaznacz Enable i kliknij Save
- Ustaw obszar detekcji (Area) — zaznacz region(y), w których ruch ma być śledzony. Domyślnie aktywna jest cała klatka.
- Wyreguluj czułość Sensitivity (0 – 100, wyższa = łatwiejsze wyzwolenie) i próg Threshold (0 – 100, niższy = łatwiejsze wyzwolenie) korzystając z waveform na żywo. Czerwony = ruch wykryty, zielony = brak ruchu.
- Skonfiguruj okno czasowe Period (harmonogram uzbrojenia) tak, aby obejmowało godziny, w których TapHome ma reagować na ruch (zazwyczaj 24/7).
- Ustaw Anti-dither na 1 – 5 s, jeśli chcesz krótki back-off między kolejnymi zdarzeniami.
Kamera musi też mieć konto użytkownika z uprawnieniami Operator lub wyższymi (wymagane do odczytu eventManager.cgi, gdy uwierzytelnianie jest wymuszone).
Możliwości urządzenia
Stan ruchu
Szablon udostępnia jedno urządzenie typu kontaktron odzwierciedlające bieżący stan ruchu z kamery:
- Ruch — kamera zgłasza aktywne zdarzenie
VideoMotion - Brak ruchu — kamera odpowiada
Error:No Events
Stan wyprowadzany jest ze skryptu odpytującego z interwałem 1 sekundy:
| |
Po zakończeniu ruchu kamera utrzymuje zdarzenie jako aktywne przez EventHandler.Delay sekund (domyślnie 30 s), zanim zwróci Error:No Events. Czujnik w TapHome pozostaje więc wyzwolony do 30 sekund po ostatnim ruchu, nawet jeśli logika PIR kamery już się zwolniła. Aby skrócić ten czas, zmniejsz wartość Delay w konfiguracji zdarzeń kamery.
Czujnik w TapHome używa standardowych etykiet i18n Ruch (aktywny) i Brak ruchu (spoczynek), spójnie z innymi binarnymi czujnikami ruchu w systemie.
Modele kompatybilne
Dowolna kamera IP Dahua udostępniająca standardowe HTTP API v1.40 (lub nowsze) z endpointem eventManager.cgi — obejmuje to zdecydowaną większość serii IPC-H, IPC-K, IPC-E, PTZ oraz termowizyjnych wydanych od 2013 roku. Szablon jest niezależny od rozdzielczości, kodeka i obiektywu — odczytuje tylko binarną flagę zdarzenia.
Rozwiązywanie problemów
Czujnik jest ciągle WŁĄCZONY (wciąż pokazuje ruch)
To najczęstszy problem, zwykle z dwóch powodów:
- W kamerze wymuszone jest uwierzytelnianie HTTP. Nieuwierzytelnione zapytanie szablonu otrzymuje w odpowiedzi stronę HTML
401 Unauthorized. Ponieważ strona ta nie zawiera ciąguError:No Events, szablon interpretuje ją jako „ruch aktywny". Rozwiązanie: zezwól na anonimowy dostęp doeventManager.cgialbo wyłącz uwierzytelnianie w kamerze. - Bardzo stare firmware’y zwracają pustą treść zamiast
Error:No Eventsw stanie spoczynku. Pusty ciąg również nie zawiera markera, więc szablon zgłasza ruch nieprzerwanie. Rozwiązanie: zaktualizuj firmware kamery do wersji, która zwraca poprawną odpowiedź idle.
Otwórz http://<ip-kamery>/cgi-bin/eventManager.cgi?action=getEventIndexes&code=VideoMotion w przeglądarce i sprawdź surową odpowiedź. Zdrowa odpowiedź w stanie spoczynku to tekstowe ciało zawierające Error:No Events.
Czujnik jest ciągle WYŁĄCZONY (nigdy nie pokazuje ruchu)
- Detekcja ruchu jest wyłączona w kamerze — sprawdź ponownie Setting → Event → Video Detection → Motion Detection → Enable
- Bieżący czas wypada poza skonfigurowanym oknem Period (harmonogram uzbrojenia)
- Obszar detekcji Area nie pokrywa fragmentu sceny, w którym występuje ruch
- Sensitivity jest za niska lub Threshold za wysoki — dostrój na podstawie waveform na żywo w interfejsie webowym
- Kamera znajduje się w oknie back-off Anti-dither po poprzednim zdarzeniu
Brak odpowiedzi / timeout
- Sprawdź dostępność kamery:
ping <ip-kamery>i otwórzhttp://<ip-kamery>/w przeglądarce - Potwierdź, że HTTP na porcie 80 jest włączone w Setting → Network → Port
- Potwierdź, że HTTPS jest wyłączone (lub przynajmniej nie wymuszane) w Setting → Network → HTTPS
- Upewnij się, że CCU TapHome i kamera są w tej samej podsieci / VLAN