المراقبة بالفيديو المنزلي. التنفيذ مع Zoneminder و Debian 8

مقدمة


يوم جيد.

بوجود NAS محلي يعمل بنظام Debian 8 (اعتدت على استخدام Ubuntu Server 12.04 و 14.04) ، جاءت الفكرة لتعيينه ، من بين أمور أخرى ، دور خادم المراقبة. تم اختيار Zoneminder كجزء الخادم . يجب أن تكون خوارزمية المراقبة بالفيديو على النحو التالي: لا يلزم التسجيل على مدار الساعة ، ولكن إذا لزم الأمر ، فإن القدرة على تمكين التسجيل عند وقوع حدث مطلوب - مما يؤدي إلى إطلاق حركة ، متبوعًا بإرسال إشعار عبر البريد الإلكتروني مع لقطات شاشة من الحدث. هذا ضروري لضمان السيطرة على الشقة عندما يكون هناك شخص غائب. حسنًا ، بالطبع ، تحتاج إلى القدرة على الاتصال عن بُعد والتحقق مما إذا كان كل شيء في محله.

في موقع المطور وجدت أكثر التفاصيلموقع wiki مخصص للتثبيت على Debian 8 64 بت. وبناءً على ذلك ، سوف أتخذ تعليمات التثبيت من هناك ، موضحا بعض النقاط بتعليقاتي.

قم بتثبيت Zoneminder


لذا ، لدينا خادم مثبت عليه Debian 8 64 بت في الحد الأدنى من التكوين (استخدمت netinstall). تحتاج أولاً إلى تعديل sources.list ، وإضافة backess Jessie إليها:

sudo nano /etc/apt/sources.list

في نهاية الملف ، أضف:

deb http://http.debian.net/debian jessie-backports main

أو قم بإلغاء تعليق هذا السطر ، إذا كان موجودًا بالفعل ، أي حذف # في بداية السطر. تحديث فهرس الحزمة:

sudo apt-get update

الآن كل شيء جاهز لتثبيت Zoneminder ، والذي سنفعله:

sudo apt-get install zoneminder

أثناء التثبيت ، سيتم أيضًا تثبيت Apache و MySQL و PHP تلقائيًا.
بعد اكتمال التثبيت ، أنشئ قاعدة بيانات MySQL:

sudo mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql

في عملية إنشاء قاعدة البيانات ، سيُطلب منك تحديد كلمة مرور الجذر. بعد ذلك ، قم بتنفيذ الأوامر التالية بالتسلسل (عبر sudo) ، بإدخال كلمة المرور في حالة الطلب:

mysql -uroot -p -e "grant all on zm.* to 'zmuser'@localhost identified by 'zmpass';"

mysqladmin -uroot -p reload

chmod 740 /etc/zm/zm.conf

chown root:www-data /etc/zm/zm.conf

قم بتشغيل Zoneminder autorun:
systemctl enable zoneminder.service

نضيف مستخدم www-data إلى مجموعة sudo ، وهذا ضروري للوصول إلى الكاميرات المحلية:

adduser www-data sudo

إطلاق Zoneminder:
systemctl start zoneminder.service

تحقق من تشغيل Zoneminder:
systemctl status zoneminder.service

إذا كان كل شيء في محله ، فيجب أن يكون إخراج الأمر كالتالي:

● zoneminder.service - ZoneMinder CCTV recording and surveillance system
   Loaded: loaded (/lib/systemd/system/zoneminder.service; enabled)
   Active: active (running) since  2016-07-10 18:48:30 IRKT; 5h 31min ago
  Process: 6413 ExecStop=/usr/bin/zmpkg.pl stop (code=exited, status=0/SUCCESS)
  Process: 6455 ExecStart=/usr/bin/zmpkg.pl start (code=exited, status=0/SUCCESS)
 Main PID: 6474 (zmdc.pl)
   CGroup: /system.slice/zoneminder.service
           ├─6474 /usr/bin/perl -wT /usr/bin/zmdc.pl startup
           ├─6507 /usr/bin/perl -wT /usr/bin/zmfilter.pl
           ├─6514 /usr/bin/perl -wT /usr/bin/zmaudit.pl -c
           └─6521 /usr/bin/perl -wT /usr/bin/zmwatch.pl

تكوين أباتشي:
a2enmod cgi

a2enmod rewrite

a2enconf zoneminder

أضف منطقتك الزمنية في PHP:
sudo nano /etc/php5/apache2/php.ini

نحن نبحث عن قسم [التاريخ] وتغيير المنطقة الزمنية للتاريخ إلى القسم المطلوب:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Irkutsk

حفظ - Ctrl + O ، خروج - Ctrl + X.
أعد تشغيل Apache:
service apache2 restart

لتتمكن من التحكم في Zoneminder من خلال Internet Explorer ، تحتاج إلى تثبيت Cambozola:

cd /usr/src && wget http://www.andywilcock.com/code/cambozola/cambozola-latest.tar.gz

tar -xzvf cambozola-latest.tar.gz

replace 936 with cambozola version downloaded

cp cambozola-0.936/dist/cambozola.jar /usr/share/zoneminder

يكتمل هذا بتثبيت Zoneminder. تحتاج الآن إلى تكوين نقل البريد بحيث يمكن لـ Zoneminder إعلامك بالأحداث عن طريق البريد الإلكتروني.

إعداد نقل البريد


لإرسال الإشعارات ، يمكن لـ Zoneminder استخدام ssmtp وتثبيته:

sudo apt-get update

sudo apt-get install ssmtp

قم بتثبيت mailutils في نفس الوقت إذا لم تكن هذه الحزمة مثبتة بالفعل:
sudo apt-get install mailutils

الآن قم بتكوين إعدادات البريد نيابةً عن الإخطارات التي ستذهب. افترض أن صندوق البريد موجود على gmail.com. افتح ssmtp.conf:
sudo nano /etc/ssmtp/ssmtp.conf

وإحضار هذا النموذج مع الإشارة إلى بياناتك وفقًا لذلك:
root=mymail@gmail.com
mailhub=smtp.gmail.com:587
hostname=localhost
RewriteDomain=gmail.com
UseSTARTTLS=YES
UseTLS=YES
AuthUser=mymail@gmail.com
AuthPass=myverystrongpassword

يعيد تصحيح اليمين:
sudo nano /etc/ssmtp/revaliases

نأتي إلى هذا النموذج:
root:pp@gmail.com:smtp.gmail.com:587
www-data:pp@gmail.com:smtp.gmail.com:587

ونتحقق من صحة الإعدادات عن طريق إرسال خطاب اختبار:
echo "Hello, World" | mail -s "My email check" mne@napochtu.ru

إذا نجح الاختبار ، فانتقل إلى الخطوة التالية - تثبيت MIME :: Lite و Net :: SMTP. تحقق مما إذا كانت هذه المكونات مثبتة:
perl -MMIME::Lite -e "print \"Module installed.\\n\";"

perl -MNet::SMTP -e "print \"Module installed.\\n\";"

التثبيت عن طريق الذهاب إلى غلاف بيرل:
sudo perl -MCPAN -e shell

install MIME::Lite
install Net::SMTP


الآن نحن بحاجة إلى إجراء بعض التغييرات المهمة للغاية ، والتي بدونها لن يعمل نقل البريد من Zoneminder. يرجى ملاحظة أنه يجب إجراء هذه التغييرات فقط إذا كان إصدار Zoneminder المثبت 1.29 أو أقل. بدءًا من الإصدار 1.30 ، هذه الإجراءات ليست ضرورية.

افتح ملف zmfilter.pl في المحرر:

sudo nano /usr/bin/zmfilter.pl

بالذهاب إلى السطر 1179 نرى ما يلي:
### Send the Message
MIME::Lite->send( "smtp", $Config{ZM_EMAIL_HOST}, Timeout=>60 );
$mail->send();

علق الخطوط
MIME::Lite->send( "sendmail", $Config{ZM_EMAIL_HOST}, Timeout=>60 );
و
$mail->send();

وإضافة سطر أسفلها
$mail->send('sendmail','/usr/sbin/ssmtp',$Config{ZM_EMAIL_ADDRESS});

ونتيجة لذلك ، بدءًا من السطر 1179 (في حالتي ، ولكن ليس رقم السطر هذا بالضبط) ، يجب أن يبدو الرمز كما يلي:
### Send the Message
#MIME::Lite->send( "sendmail", $Config{ZM_EMAIL_HOST}, Timeout=>60 );
#$mail->send();
$mail->send('sendmail','/usr/sbin/ssmtp',$Config{ZM_EMAIL_ADDRESS});

حفظ ، خروج. هذا يكمل العمل مع المحطة.

واجهة ويب Zoneminder


الإدارة متاحة على ip.adress.servera / zm ، اذهب. أول شيء تفعله هو الانتقال إلى خيارات -> المستخدمون ، وتعيين كلمة مرور المسؤول:



ثم انتقل إلى خيارات -> النظام ، وحدد المربع OPT_USE_AUTH:



إذا لم يتم ذلك ، فإن Zoneminder يسمح لك بالانتقال إلى واجهة الويب أو الاتصال عبر تطبيق عميل دون المطالبة بتسجيل الدخول / كلمة المرور ، وهو بالطبع غير آمن. من الغريب أن علامة الاختيار الضرورية للغاية لا يتم فحصها افتراضيًا.

الآن تكوين إرسال البريد الإلكتروني. انتقل إلى Optons -> البريد الإلكتروني والتهيئة عن طريق القياس:



في حقل EMAIL_BODY ، يمكنك تكوين تنسيق الإشعارات حسب حاجتك. على سبيل المثال ، إذا قمت بإضافة٪ EI1٪ إلى الحقل ، فسيتم إرفاق أول لقطة شاشة من لحظة تشغيل مستشعر الحركة بالرسالة. تتوفر قائمة كاملة بخيارات الإشعارات هنا .

مضيفا كاميرات


يمكن أن يعمل Zoneminder مع كل من كاميرات USB و IP. في الوقت الحالي ، لا تزال الكاميرات الخاصة بي في الطريق ، لذا كإصدار ضبط مؤقت مؤقت للكاميرا ، أستخدم هاتفي الذكي Alcatel Pop C2 Android القديم ، والذي تم تثبيت تطبيق IP Webcam عليه ، والذي يحول الهاتف الذكي إلى كاميرا Wi-Fi IP. بعد تثبيت التطبيق وتشغيله (أوصي أولاً بتعيين دقة دفق الفيديو في إعدادات التطبيق ، قمت بتعيين 800 × 480) ، تعرض شاشة الهاتف الذكي عنوان IP والمنفذ الذي يمكنك من خلاله الانتقال إلى واجهة الويب ومعرفة ما هو مثير للاهتمام هنا:



بشكل عام ، هناك الكثير من الإعدادات ، ولكننا مهتمون بالعنوان الذي يتم توفير بث الفيديو إليه. ونرى أن هناك معلومات لتكوين Zoneminder ، وهي أخبار جيدة. بالتحديد ، يتم تحديد مسار المضيف البعيد ، المسار الذي يجب إدخاله في إعدادات Zoneminder - بعد كاميرا IP التي تحتاج إلى إضافتها / فيديو:



ارجع إلى واجهة الويب Zoneminder لإضافة الكاميرا ، حدد إضافة شاشة جديدة:



في حقل الاسم ، اكتب الاسم المطلوب ، المصدر اكتب -> جهاز التحكم عن بعد:



في علامة التبويب المصدر ، املأ الحقول: اسم المضيف البعيد -> عنوان IP للهاتف الذكي ، منفذ المضيف البعيد -> المنفذ الذي تعمل عليه كاميرا الويب IP ، مسار المضيف البعيد -> المسار الذي رأيناه في إعدادات كاميرا الويب IP ، ووضح أيضًا دقة تدفق الفيديو ، والتي يجب أن تتطابق مع الدقة التي حددناها سابقًا في إعدادات كاميرا الويب IP:



نحفظ الإعدادات -> حفظ ، وفي قائمة Zoneminder الرئيسية نرى الكاميرا التي أضفناها:



بالنقر على الاسم الذي نرى الصورة فيه:



يمكن أن تعمل الكاميرات في عدة أوضاع ، والتي يتم تحديدها بواسطة معلمة الوظيفة في القائمة الرئيسية:



الوضع الذي يتم فيه التسجيل فقط الحركة في الإطار ، تسمى Modect ، وحددها. الآن لن يقوم النظام بتسجيل دفق الفيديو بشكل مستمر ، ولكن فقط إذا كانت هناك أسباب وجيهة. لكننا ما زلنا بحاجة إلى إشعار بالحركة في الإطار. لهذا تحتاج إلى تكوين عامل التصفية. افتح المرشحات في قائمة Zoneminder الرئيسية ، وقم بتكوينها وفقًا للشاشة ، واحفظها تحت أي اسم:



ولا تنس تحديد المربع المجاور لـ Run filter in background:



وبالتالي ، إذا تم الكشف عن الحركة في الإطار ، فسوف يقوم النظام بتسجيل الفيديو وإرسال إشعار إلى البريد.

تطبيقات العميل


إذا كان هناك عنوان IP دائم ، فلا شيء يمنعك من إعادة توجيه المنافذ في جهاز التوجيه والاتصال من الهاتف الذكي من الخارج عبر واجهة الويب ، خاصة أنه يمكنك تحديد إصدار الهاتف المحمول للواجهة في إعدادات Zoneminder ، ولكن ، بالإضافة إلى ذلك ، قررت البحث عن بعض تطبيقات الهاتف المحمول لهذا الأهداف. بعد البحث في Google Play عن الكلمة الرئيسية "zoneminder" ، استقرت على zmNinja لأن التقييم مرتفع جدًا وأعجبني لقطات الشاشة. يتم دفع الطلب ، نسخة تجريبية للتقييم الأولي ، للأسف ، لا. الوظيفة أكثر من كافية - عرض دفق الفيديو في الوقت الحقيقي ، عرض الأرشيف ، الأحداث المسجلة ، تبديل أوضاع الكاميرا ، إلخ.











هناك أيضًا إصدارات سطح المكتبzmNinja لنظام التشغيل Linux و Windows و Mac OS X - يتم توزيعها مجانًا. هذا ما يبدو عليه إصدار Linux الذي يعمل على Mint 18:



بشكل عام ، الواجهة هي نفسها لجميع الأنظمة.

هذا كل شيء ، شكرا لكم على اهتمامكم.

Source: https://habr.com/ru/post/ar396099/


All Articles