Detekcja ruchu VMD z kamer HIKVISION [kod źródłowy]

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

Witam.

Dzisiaj udostępniam kawałek kodu umożliwiający odczyt stanu detekcji ruchu VMD z kamer / rejestratorów firmy HIKVISION.
Dzięki niemu, po dodaniu obsługi skryptów SUPLA.FRACZ.COM kolegi @FRACZ możliwe będzie wykonywanie akcji po stronie SUPLI w przypadku wykrycia ruchu w kamerze - np. zapalenie światła przed domem.

Zasada działania.

Program łączy się z urządzeniem firmy HIKVISION wysyłając zapytanie GET o treści "/ISAPI/Event/notification/alertStream".
Jeśli odpowiedz "200 OK" nie nastąpi w określonym czasie, sugerując że urządzenie jest zajęte, wydłużony zostaje czas "Delay_time" oczekiwania przy następnym pytaniu.
Jeśli jednak nastąpi odpowiedź "200 OK", ale nie znajdziemy odpowiedzi "</EventNotificationAlert>" sugerując że urządzenie jest zajęte, wydłużony zostaje czas "Delay_time2" oczekiwania przy następnym pytaniu.
W przypadku jeśli któraś odpowiedź nastąpi, to skracany jest odpowiedni czas "Delay_time" lub "Delay_time2", dzięki temu ESP sam oblicza sobie odpowiedni czas pomiędzy pytaniem, a odpowiedzią.

W testowanych urządzeniach łączny czas pomiędzy pytaniem GET, a odpowiedzią wynosił:
Rejestrator HIKVISION DS-7104HQHI-K1 (firmware V3.5.35 build 180316) - około 4 sekundy;
Kamera IP HIKVISION DS-2CD2120F-I (firmware V5.4.5 build 170123) - około 200ms.

W przypadku stwierdzenia w odpowiedzi wyrażenia "<channelID>1</channelID>" oraz "<eventType>VMD</eventType>" uznaje się że kamera 1 wykryła ruch.

Po szczegóły dotyczące protokołu ISAPI firmy HIKVISION odsyłam do linku http://down.dipol.com.pl/Cctv/-Hikvisio ... ervice.pdf

Kod źródłowy w ARDUINO IDE:
VMD Hikvision 1.0.0 .zip
Zapraszam do testów i rozwijania kodu.

Pozdrawiam, Duch__
You do not have the required permissions to view the files attached to this post.

Return to “Pomysły i koncepcje”