Mỗi kiểu camera của mỗi hãng đều có các hạn chế về số kết nối đồng thời với camera. Trường hợp camera vẫn hoạt động bình thường nhưng thiết bị bên ngoài thử kết nối lại nhiều lần (thí dụ reboot) thì có thể không kết nối được nữa.
Một thí dụ là script onvif-motion-recorder chạy trên RPi và RPi định kỳ reboot theo lịch thì sau đó script onvif-motion-recorder không thể kết nối với camera.
Một giải pháp là reboot camera trước khi thử kết nối lại
## reboot.sh
#!/bin/bash
/usr/bin/curl --digest -X PUT "http://user:password@camera_ip/ISAPI/System/reboot" >/dev/null 2>&1
## chờ camera hoàn tất khởi động trong 90s
/usr/bin/sleep 90
## chạy tất cả script qua pm2
/usr/local/bin/pm2 start all
## hoặc nếu không dùng pm2, gọi chạy script bằng node
## /usr/local/bin/node /path/to/script_name.js
- Đặt thuộc tính thi hành cho script
user@RPi:/# chmod +x /path/to/reboot.sh
- Script reboot.sh được gọi chạy mỗi khi khởi động
@reboot /path/to/reboot.sh
- Mặc định onvif-motion-recorder có thời gian chờ kết nối với camera là 120s, do đó có thể bỏ dòng sleep 90 trong script reboot.sh
- Trường hợp pm2 đã cài đặt startup, không cần cả câu lệnh pm2 start all. Chỉ còn phải khởi động lại camera mỗi khi RPi reboot