TapHome

Kamera Dahua — Czujnik ruchu

Packet Parser → HTTP
Dodane przez
Ostatnia aktualizacja: 04. 2026
Kamera Dahua — Czujnik ruchu

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).

ParametrWartość
ProtokółHTTP (port 80)
Odstęp odpytywania1000 ms
Endpoint/cgi-bin/eventManager.cgi?action=getEventIndexes&code=VideoMotion
Uwierzytelnianiebrak (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ągu Error:No Events, więc szablon przełączyłby się na stały stan „ruch aktywny". Musisz zatem albo włączyć anonimowy dostęp do eventManager.cgi w 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=False i 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.

  1. Zaloguj się do interfejsu webowego kamery pod http://<ip-kamery>/
  2. Przejdź do Setting → Event → Video Detection → Motion Detection
  3. Zaznacz Enable i kliknij Save
  4. Ustaw obszar detekcji (Area) — zaznacz region(y), w których ruch ma być śledzony. Domyślnie aktywna jest cała klatka.
  5. 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.
  6. Skonfiguruj okno czasowe Period (harmonogram uzbrojenia) tak, aby obejmowało godziny, w których TapHome ma reagować na ruch (zazwyczaj 24/7).
  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:

1
2
var VideoMotionEvent := SENDHTTPREQUEST("/cgi-bin/eventManager.cgi?action=getEventIndexes&code=VideoMotion");
return(INDEXOF(VideoMotionEvent.Content, "Error:No Events") = -1);

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:

  1. W kamerze wymuszone jest uwierzytelnianie HTTP. Nieuwierzytelnione zapytanie szablonu otrzymuje w odpowiedzi stronę HTML 401 Unauthorized. Ponieważ strona ta nie zawiera ciągu Error:No Events, szablon interpretuje ją jako „ruch aktywny". Rozwiązanie: zezwól na anonimowy dostęp do eventManager.cgi albo wyłącz uwierzytelnianie w kamerze.
  2. Bardzo stare firmware’y zwracają pustą treść zamiast Error:No Events w 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)
  1. Detekcja ruchu jest wyłączona w kamerze — sprawdź ponownie Setting → Event → Video Detection → Motion Detection → Enable
  2. Bieżący czas wypada poza skonfigurowanym oknem Period (harmonogram uzbrojenia)
  3. Obszar detekcji Area nie pokrywa fragmentu sceny, w którym występuje ruch
  4. Sensitivity jest za niska lub Threshold za wysoki — dostrój na podstawie waveform na żywo w interfejsie webowym
  5. Kamera znajduje się w oknie back-off Anti-dither po poprzednim zdarzeniu
Brak odpowiedzi / timeout
  1. Sprawdź dostępność kamery: ping <ip-kamery> i otwórz http://<ip-kamery>/ w przeglądarce
  2. Potwierdź, że HTTP na porcie 80 jest włączone w Setting → Network → Port
  3. Potwierdź, że HTTPS jest wyłączone (lub przynajmniej nie wymuszane) w Setting → Network → HTTPS
  4. Upewnij się, że CCU TapHome i kamera są w tej samej podsieci / VLAN

Dostępne urządzenia

Kamera Dahua Moduł
Czujnik ruchu Kontakt reed Tylko do odczytu

Binarny stan ruchu wyprowadzony ze strumienia zdarzeń VideoMotion — zgłasza Ruch, gdy kamera ma aktywne zdarzenie, i Brak ruchu, gdy endpoint zwraca 'Error:No Events'

boolean text_contains

Czujnik ruchu

Odczyt
var VideoMotionEvent := SENDHTTPREQUEST("/cgi-bin/eventManager.cgi?action=getEventIndexes&code=VideoMotion");

return(INDEXOF(VideoMotionEvent.Content, "Error:No Events") = -1);
Możliwe ulepszenia (10)
  • Realtime motion push (Attach stream) — Long-lived multipart HTTP stream pushing Start/Stop events without polling. Would lower latency and bandwidth, but needs a streaming parser.
  • Smart motion — human detection — AI-filtered event that only triggers on humans; reduces false positives from rain, insects, shadows.
  • Smart motion — vehicle detection — AI-filtered event that only triggers on vehicles (cars, bikes, trucks).
  • Tripwire (line crossing) — Triggers when an object crosses a user-defined line — useful for directional detection.
  • Intrusion (region entry) — Triggers when an object enters or leaves a user-defined polygon region.
  • Camera local alarm input — State of the camera's on-board alarm input terminal (dry contact). Not exposed by this template.
  • Video loss — Useful as a diagnostic — indicates the camera sensor has lost the video signal.
  • Snapshot capture — Returns a JPEG still image — could be wired to an action trigger, but out of scope for a binary sensor template.
  • HTTP authentication — Template issues unauthenticated GETs. User must disable auth on the camera or allow anonymous access to eventManager.cgi — otherwise a 401 HTML body can be misread as permanent motion.
  • HTTPS transport — Template has UseHttps=False hardcoded and uses port 80. HTTPS-only firmware is not supported.

Źródła