Dużym problemem systemów NVR (Network Video Recorder) w stosunku do rozwiązań bazujących na platformach Windows/Linux (VMS – Video Management Software) jest praktycznie zerowe wsparcie w temacie bezpiecznego wyłączenia systemu w przypadku awarii zasilania. W tym krótkim poradniku postaram się przedstawić jeden ze sposobów jak bezpiecznie wyłączyć NVR, kiedy nie ma prądu.
One of the biggest difference between NVR (Network Video Recorder) and systems VMS (Video Management Software) based on well knowns OS (Windows/Linux) are weak support regarding power outage and safety turn of device. In this short guide I will try show one of the way how to turn off NVR during power outage.
Cel:
Jak bezpiecznie wyłączyć NVR, kiedy nie ma prądu – How to turn off NVR during power outage (NVR z testowanej serii nie wspiera natywnej obsługi UPS – zarówno przez USB jak i po sieci)
Prezentowane rozwiązanie bazowało na:
- NVR Dahua 4216
- UPS APC (interfejs USB)
- Wirtualna instancja Windows 10 PRO wraz z oprogramowaniem APC PowerChute Personal Edition
Rozwiązanie:
- Instancja Windows 10 musi mieć komunikację z UPS, tzn. musi otrzymać sygnał zamknięcia systemu w przypadku zaniku zasilania. System Windows 10 stosuje z wygody – obsługuje on domyślnie komendy “curl”, które są niezbędne, żeby prawidłowo zamknąć system.
- UPS oraz oprogramowanie może być praktycznie dowolne – ważne, żeby informacja o zmianie stanu (czyli zaniku zasilania) pojawiała się w event managerze.
- Po uruchomieniu systemu, wgraniu oprogramowania do UPS’a weryfikujemy czy system zamyka się poprawnie oraz jaką informację zostawia w event managerze.
- Tworzymy skrypt wyłączający NVRa (np. shutdown_nvr.bat):
1 2 3 |
echo Shutdown NVR... timeout 10 curl --user admin:abcd1234 --digest http://192.168.10.99/cgi-bin/magicBox.cgi?action=shutdown |
I w skrócie:
timeout 10 – 10 sekund opóźnienia przed wykonaniem właściwego wyłączenia (preferuje to rozwiązanie, gdyż łatwiej jest zmieniać/dopasowywać czas w pliku tekstowym)
admin – nazwa użytkownika z uprawnieniami administratora
abcd1234 – hasło 🙂
192.168.10.99 – adres IP NVR
5. W harmonogramie zadań dodajemy nowe zadania bazujące na informacji z event managera – event ID wyzwala akcję uruchomienia skryptu i zamyka NVR (unikamy wyłączenia NVR w przypadku zwykłego restartu maszyny – wyłączenie będzie powiązane tylko z awarią zasilania).
6. Po powrocie zasilania NVR uruchamia się sam i system wraca do normalnego funkcjonowania.
Jeżeli chodzi o inne warianty to można to zrealizować za pomocą:
- Linux (wirtualne/fizyczne, może Rasbery) jako trigger zamknięcia urządzenia
- Inne komendy, podejścia (proponuje tylko jedno z rozwiązań) – jak widać zadanie sprowadza się do wywołania metody GET
- NVRy, które mają wsparcie UPS po USB (rzadkość, ale producenci nad tym pracują) – warto tu również nadmienić, że przydałaby się współpraca z UPSami sieciowymi
- stosowanie VMS zamiast NVR 🙂
Poniżej pełen proces konfiguracji wraz z prezentacją działania rozwiązani:.
Purpose:
How to turn off NVR during power outage – tested NVR doesn’t support native UPS communication – both: network and USB).
Hardware equipment:
- NVR Dahua 4216
- UPS APC (interfejs USB)
- Virtual Windows 10 PRO with APC PowerChute Personal Edition software
Solution:
- Windows 10 needs to have proper communication with UPS – it needs to shutdown PC during power outage. I’m using Windows 10 because from default it supports “curl” commands.
- UPS and software can be any producer – important is to only leave (by this software) information about status change in evet viewer.
- After system and software confifuration (OS/UPS software) we are making short test whether system will shutdown properly and checking event viewer what kind of info is there.
- Shutdown script (e.g. shutdown_nvr.bat):
1 2 3 |
echo Shutdown NVR... timeout 10 curl --user admin:abcd1234 --digest http://192.168.10.99/cgi-bin/magicBox.cgi?action=shutdown |
In short:
timeout 10 – 10 seconds delay before command run – can be easily modify based on personal needs
admin – acount with administrating priviliges
abcd1234 – pass 🙂
192.168.10.99 – NVR IP adress
5. In schedule task we run a new task based on ID event from event manager which triger action to start script shutdown_nvr.bat. Based on thos approach we avoid accidental shutdown NVR during planned restart/shutdown of our OS.
6. After power back NVR should start and system will back to normal work.
Other propositions to make NVR shutdown possible:
- Linux OS – virtual/physical (can be Rasbery) – it’s also trigger to shutdown NVR system
- Other type of commands (my proposition is only one way to resolve this) – in general all you need to do is to request GET method
- Very rare topic but some NVR has built in communication with UPS – of course in many cases it’s only matter fimware version but I know that vendors work on it
- Using VMS instead of NVR 🙂
Plese check below video to see some more details: