5/29/2019

IP Camera Vstarcam + Mostion Record + Send Slack

IP Camera Vstarcam + Mostion Record + Send Slack

กล้อง
1. ติดตั้ง App Eye4 ตามคู่มือ
2. ต่อ Lan หรือ Wifi ให้ออกเน็ตตรงได้ ครั้งแรกเพื่อให้ใช้งานได้
3. Scan Qrcode ที่ใต้แทน
4. ใส่รหัส 888888
5. ตั้งรหัสใหม่ ตามที่ต้องการ User เป็น admin
6. Add เข้า App แบบ Manual จด Mac Address ไว้
7. ย้ายเข้า วง 0 รับ DHCP
8. ที่เครื่อง Com Linux Scan หา Port
ตัดตั้งโปรแกรม nmap
9. Run คำสั่งที่ User sa เท่านั้น root ใช้ไม่ได้
ใช้คำสั่ง
  1. nmap -p- IP
เช่น nmp -p- 192.168.0.207
Starting Nmap 7.60 ( https://nmap.org ) at 2019-04-11 09:44 +07
Nmap scan report for 192.168.0.207
Host is up (0.0092s latency).
Not shown: 65531 closed ports
PORT STATE SERVICE
9600/tcp open micromuse-ncpw
10080/tcp open amanda
10544/tcp open MOS-soap-opt
60340/tcp open unknown


ใช้ port ที่เป็น unknown
10. เข้า Webbrowser IP และ Port
192.168.0.207:60340

Port จะ เปลี่ยนไปเรื่อย ๆ เมื่อ Reboot กล้อง จะใช้งานต้องเอา DHCP ออก Fix IP และ Port ไปเลยจะได้ไม่เปลี่ยน

11. แสดงข้อมูลผ่านหน้า web แบบใส่รหัสไปด้วย
http://##:###@192.168.0.207:60340/videostream.cgi?user=##&pwd=###
## = user
### = pwd
ที่ตั้งในข้อ 5.

12. นำไปแสดงที่ HA แก้ configuration.yaml
เพิ่ม ใน panel_iframe:
  1.  camera2:
  2.     title: 'Camera207'
  3.     url: 'http://##:###@192.168.0.207:60340/videostream.cgi?user=##&pwd=###'
  4.  
  5.   camera3:
  6.     title: 'Camera195'
  7.     url: 'http://##:###@192.168.0.195:46992/videostream.cgi?user=##&pwd=###'

แสดงผลได้
Link เพิ่มเติม
https://community.home-assistant.io/t/vstarcam-installation/68264

***ก่อน Config Fix IP ของกล้องและ Port ให้เรียบร้อย ก่อนทำ ***
13. ที่เครื่อง pi ติดตั้ง motion
  1. sudo apt-get install motion
  2. locale-gen en_US en_US.UTF-8 th_TH th_TH.UTF-8


14. Config Motion
ใช้ netcam_url อ่าน Video จาก Camera IP Vstarcam
ที่มา https://itworldexplorer.blogspot.com/2017/08/rtsp-ip-motion.html
หรือ https://www.youtube.com/watch?v=Z_aumd75CU4
*** Backup motion.conf เดิมไว้ก่อนเสมอ ***
แก้ดังนี้
  1. nano /etc/motion/motion.comf

width 640
height 480
framerate 10
netcam_url http://192.168.2.133:8080/videostream.cgi?user=##&pwd=###
netcam_userpass ##:### #user:pwd
netcam_keepalive on
threshold 1
noise_level 24
noise_tune off
event_gap 0
ffmpeg_output_movies on #บันทึก Video ด้วย ไว้ส่งเก็บ Qnap
locate_motion_mode on
locate_motion_style redbox #สีที่จะให้ครอบตอน motion
text_changes on
target_dir /home/pi/Pictures #ที่เก็บไฟล์
stream_port 0
webcontrol_port 0
on_picture_save if [ ! -z "$(ls %f|grep 4.jpg)" ]; then mutt -s "Motion detectted" suwit.jph@gmail.com -a "%f" < /dev/null; fi #ใส่ Code เพื่อให้ส่งเมล์

แล้ว Save

15. แก้ rc.local
nano /etc/rc.local
ใส่ Cod ก่อน exit 0
find /home/pi/.thumbnails/normal/.|xargs rm&
rm /home/pi/sent&
sudo rm /var/mail/pi&


16. Test run คำสั่ง
  1. motion

เปิด Termenal ขึ้นมาอีกอันดู Log เวลามีการเคลื่อนไหวจะ Save รูป
  1. tail /var/log/motion/motion.log

/var/log/motion/motion.log
[1] [WRN] [NET] [Apr 11 15:54:06] netcam_next: called with no data in buffer
[1] [WRN] [NET] [Apr 11 15:54:06] netcam_next: called with no data in buffer
[1] [NTC] [EVT] [Apr 11 15:54:10] event_new_video FPS 4
[1] [NTC] [EVT] [Apr 11 15:54:10] event_newfile: File of type 8 saved to: /home/pi/Pictures/01-20190411155410.avi
[1] [NTC] [ALL] [Apr 11 15:54:10] motion_detected: Motion detected - starting event 1
[1] [NTC] [EVT] [Apr 11 15:54:11] event_newfile: File of type 1 saved to: /home/pi/Pictures/01-20190411155410-02.jpg
[1] [NTC] [NET] [Apr 11 15:54:11] netcam_read_html_jpeg: Potential split boundary - 4095 chars flushed, 1 re-positioned
[1] [NTC] [EVT] [Apr 11 15:54:11] event_newfile: File of type 1 saved to: /home/pi/Pictures/01-20190411155411-00.jpg
[1] [NTC] [EVT] [Apr 11 15:54:12] event_newfile: File of type 1 saved to: /home/pi/Pictures/01-20190411155412-00.jpg
[1] [NTC] [ALL] [Apr 11 15:54:13] motion_loop: End of event 1


17. ได้รูป และ Video
18. เขียน Code ส่ง Slack และ Backup เก็บที่ Qnap
  1. nano slack_post.py

from slackclient import SlackClient

sc = SlackClient("Pass Slack Client")

import glob
import os
import time

time.sleep(3) # Delays for 5 seconds. You can also use a float value.

list_of_files = glob.glob('/home/pi/Pictures/*.jpg')
latest_file = max(list_of_files, key=os.path.getctime)


with open(latest_file) as file_content:
sc.api_call(
"files.upload",
channels="CF6GEHBDF",
file=file_content,
title="IP Camera Room A 192.168.2.133."
)


19. เขียน Code backup ไป Qnap และลบ .jpg
nano backup_camera.sh

### backup_camera.sh ###
#!/bin/bash
date_2dayago=`date -d "1 day ago 13:00" '+%Y-%m-%d'`
date_yesterday=`date -d "yesterday 13:00" '+%Y-%m-%d'`
date_today=`date '+%Y-%m-%d'`
mkdir $date_yesterday
find /home/pi/Pictures -type f -name '*.avi' -newermt $date_2dayago ! -newermt $date_today -exec mv -t $date_yesterday {} +
tar -czf if_$date_yesterday.tar.gz $date_yesterday
mv 192.168.2.133_$date_yesterday.tar.gz /home/pi/backup
rm -r $date_yesterday


20. ตั้ง Crontab ให้ทำงาน
  1. 0 6 * * * bash /home/pi/backup_camera.sh
  2. 0 7 * * * rm /home/pi/Pictures/*.jpg


ตัวอย่างเพิ่มเติม [url]https://intranet.sci.com/blog.php?u=281&b=1667
[/url]

21. แก้ motion.conf เพิ่มเติม ใส่ ส่ง Slack และ ให้ Run Dimond Service
  1. nano /etc/motion/motion.conf

on_movie_start python /home/pi/slack_post.py
daemon on

  1. nano /etc/default/motion

start_motion_daemon=yes


22. สั่งให้ Run Service
  1. sudo service motion start
  2. sudo service motion restart


ลอง tail log ดูว่า service ทำงานหรือไม่
  1. tail /var/log/motion/motion.log

No comments:

Post a Comment