264_監視カメラ(動体検知・メール通知まで)をRaspberryPiで★

監視カメラ(動体検知・メール通知まで)をRaspberryPiで構築
http://netbuffalo.doorblog.jp/archives/3942942.html
を参考
—————
Motionのインストール
—————
Motionのインストール
$ sudo apt-get install motion
Motionの設定
$ sudo vi /etc/motion/motion.conf
デーモンとして起動させたいのでdaemonをon(★★★←今はoffのまま)
daemon on
デーモンの場合、設定ファイルにprocess_id_fileとして定義されているプロセスID記録用のディレクトリも作成。
$ sudo mkdir /var/run/motion
(デーモンとして起動した場合は$ sudo /etc/init.d/motion stopで停止)
フレームレートの設定
1秒間に撮影するフレーム数を変更。標準では2、ここでは30fpsに変更
# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
framerate 30
イメージ・サイズ
# Image width (pixels). Valid range: Camera dependent
width 320
# Image height (pixels). Valid range: Camera dependent
height 240
動体検知しきい値
Motionは撮影した画像を比較し、変化したピクセル数を基準に動体検知します。
標準では1500ですが、60にして感度を上げます。
# Event Gap is the seconds of no motion detection that triggers the end of an event.
# An event is defined as a series of motion images taken within a short timeframe.
# Recommended value is 60 seconds (Default). The value -1 is allowed and disables
# events causing all Motion to be written to one single movie file and no pre_capture.
# If set to 0, motion is running in gapless mode. Movies don’t have gaps anymore. An
# event ends right after no more motion is detected and post_capture is over.
event_gap 60
コーデックの指定
ffmpeg_video_codecで動画ファイルのフォーマットを指定。
標準ではswfですが、今回はmpeg4(作成されるファイルはavi形式)に変更。
# Codec to used by ffmpeg for the video compression.
# Timelapse mpegs are always made in mpeg1 format independent from this option.
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
# mpeg1 – gives you files with extension .mpg
# mpeg4 or msmpeg4 – gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf – gives you a flash film with extension .swf
# flv – gives you a flash video with extension .flv
# ffv1 – FF video codec 1 for Lossless Encoding ( experimental )
# mov – QuickTime ( testing )
?
ffmpeg_video_codec mpeg4
ライブカメラ、管理ポートの設定
webcam_port(8081)、control_port(8080)パラメータで、配信(Live Webcam)及び管理用のWebサーバが起動。
(そのままにしておきます。)
録画終了イベント発生時のアクション実行
(・・・別途・・・)
motionの動作確認
$ sudo motion
target_dirで指定した/tmp/motionにイメージ・ファイルが作成されます。
—————
muttとGmailを使ってコマンドからメール送信
—————
muttをインストール。
$ sudo apt-get install mutt
mutt用の設定ファイルを作成
$ vi /path/to/mutt.conf
メールを送信する為の最低限の設定は次の通り
set charset=”utf-8″
set send_charset=”us-ascii:iso-2022-jp”
set from = “h.yoshihara1204@gmail.com”
set realname = “監視カメラくま吉”
set smtp_url = “smtp://h.yoshihara1204@smtp.gmail.com:587/”
set smtp_pass = “A**********0”
設定ファイルが準備できたら次のコマンドで動作確認してみましょう。
$ echo “Hello world” | mutt -F /path/to/mutt.conf -s “監視カメラくま吉(mail direct)” h.yoshihara1204@gmail.com
指定したアドレスにメールが届けばOK。
(おおお、、メール来たよ。監視カメラくま吉くん!!)
motionから呼び出すシェル(on_movie_end.sh)を次のような内容で用意…と。
場所は、
/path/to/on_movie_end.sh
に。
==================================
#!/bin/sh
AVI_PATH=$1
AVI_DIR=`dirname $AVI_PATH`
MP4_NAME=”MOTION-`date +’%Y%m%d-%H%M%S’`.mp4″
MP4_PATH=$AVI_DIR/$MP4_NAME
EMAIL_TO=通知・送信先@gmail.com
EMAIL_SUB=”監視カメラくま吉くん”
EMAIL_BODY=”動体を検知しました”
MUTT_CONF=/path/to/mutt.conf
# convert to mp4
#ffmpeg -i $AVI_PATH -f mp4 -s 320×240 -vcodec mpeg4 -b 3000k -acodec aac -ab 128k $MP4_PATH > /dev/null 2>&1
if [ $? -eq 0 ]; then
# send email by mutt & gmail
# echo $EMAIL_BODY | mutt -F $MUTT_CONF -s $EMAIL_SUB -a $MP4_PATH — $EMAIL_TO
echo “Hello world” | mutt -F /path/to/mutt.conf -s “監視カメラくま吉(mail direct)” h.yoshihara1204@gmail.com
  if [ $? -eq 0 ]; then
# clean up old motion files (over 60 minnutes)
#find $AVI_DIR -type f -mmin +60 | xargs rm -rf
fi
fi
==================================
準備完了。。
$ sudo motion
で監視・通知カメラを起動。。。
はい、ダメ。。。メール来ない。
まず、変換(avi->mpeg4)が失敗??
直前コマンドがMP4の変換やってるので、それが上手くできなくてメールも飛ばない?かも。。。と。
メールはアラームだけにしてみる。
少し待たないと(直前コマンドの正常終了$?=0を見ているから、その1?分後あたりにメールが飛ぶらしい。。)
(図1)動いてる、監視カメラにくまお君がうつされたはず・・・
(図2)ファイルも保存された・・・と
(図3)このevent終了を見ている、、ようだ・・
(図4)メール通知だけにしたら来た!
 
以上

263_デーモンが残っている場合の確認と削除

◎◎◎
■httpのデーモンが残っている場合の確認と削除
使ってること一目瞭然、後はそれを切っちゃえばOK
# /usr/sbin/lsof -i | grep http
# kill -9 *****
◎◎◎
・・・・
やべ!これ
249_sakuravps2_httpのデーモンが残っている場合の確認と削除★
と同じ・・・
ボケてしまった。。。
・・・・

262_sakuravps2_voicemail設定★

保留音とボイスメールに挑戦しましょう。
まずは保留音!!
http://itpro.nikkeibp.co.jp/article/COLUMN/20070913/281834/
を参考。
ボイスメール
Asterisk にはボイスメール機能の設定方法は多数あるようだが、まずは簡単に。
①voicemail.conf を作成・編集:
[general]
format=wav49
attach=no
maxmessage=180
[default]
5001 => 1234,Hirokazu_SPhone
5002 => 1234,Fumiko_SPhone
5003 => 1234,Win10
*CLI> module reload app_voicemail
*CLI> voicemail show users
②extensions.confでの設定
exten => 500101,1,Voicemail(5001)
exten => 500201,1,Voicemail(5002)
exten => 500301,1,Voicemail(5003)
exten => 5999,1,VoiceMailMain()
うーーんなんか録音された感あるけど。。
声小さいけど、、なんとか再生までOK。。。
*CLI> voicemail show users
でユーザとメッセージ件数が表示される。。。
ここまで!!とりあえずOKか??
では、さらに、、、
「5000の内線にかけて20秒応答がなかったらボイスメールに接続、録音があったらメールする」
にする。
ーーーーーーーーーーーー
https://wiki.archlinuxjp.org/index.php/Asterisk
を参考
ーーーーーーーーーーーー
ボイスメール
voicemail.conf を作成・編集:
[general]
format=wav49
serveremail=asterisk
attach=yes
mailcmd=/usr/sbin/sendmail -t
maxmessage=180
maxgreet=60
[default]
5001 => 1234,Hirokazu_SP,h1729708@yahoo.co.jp
5002 => 1234,Fumiko_SP,h1729708@yahoo.co.jp
5003 => 1234,Win10,h1729708@yahoo.co.jp
上記の説明・・
メールボックスの設定です。フォーマットは:
mailbox => password,user,email
100 => 1234,Me,me@mydomain.com
の場合、’Me’ というユーザー名でメールアドレスが me@mydomain.com、パスワードが 1234 のメールボックス 100 が設定されます。
それから、ボイスメールボックスにメッセージを残す方法と、記録されたメッセージにアクセスする手段を用意する必要があります。
extensions.conf に戻り、既存のエントリを次のように変更します:
exten => 100,1,Dial(SIP/me1,20)
exten => 100,2,Voicemail(100@default)
最初の ‘exten’ は ‘Dial()’ で20秒間電話を呼び出します。応答がない場合、default コンテキストの 100 番のボイスメールボックスに転送します。
さらに以下のように設定することで実際にボイスメールにアクセスすることができます:
So when we call 600, the application ‘VoiceMailMain’ goes to 100 in the default context. The s allows for automatic login.
なので、
exten => 5001,1,Dial(SIP/5001,20)
exten => 5001,2,Voicemail(5001@default)
とします。
ーーーーーーーーーーーー
では、、、どうかな???
・・・・・・おおお、来たーーーーーOK!!!!
ーーーーーーーーーーーー
(図1)Voicemail
(図2)メール
(図3)添付もOK、聞こえる!
ーーーーーーーーーーーー
ボイスメール(今の設定状況2017/05/06)
ーーーーーーーーーーーー
[general]
format=wav49
serveremail=asterisk
attach=yes
mailcmd=/usr/sbin/sendmail -t
maxmessage=180
maxgreet=60
[default]
5001 => 1234,Hirokazu_SP,h1729708@yahoo.co.jp
5002 => 1234,Fumiko_SP,h1729708@yahoo.co.jp
5003 => 1234,Win10,h1729708@yahoo.co.jp
exten => 5999,1,VoiceMailMain,s100@default
ーーーーーーーーーーーー
これまでの設定(2017/05/06)
ーーーーーーーーーーーー
[5000]
[5001]Hirokazu_SP
[5002]Fumiko_SP
[5003]Win10
[5004]
[5005]
[5006]
[5007]
[5008]
[5009]
[5010]
[5999]Hirokazu_SP_VoiceMail再生
[9001]Thank you for your attention
[9002]Heelo World
[9003]音声ガイダンスPlayback(queue-callswaiting)
[9004]音声ガイダンスPlayback(please-try-again)
[9005]音声ガイダンスPlayback(queue-holdtime)
[9006]音声ガイダンスPlayback(queue-thereare)
[9007]音声ガイダンスPlayback(queue-reporthold)
[9008]音声ガイダンスPlayback(queue-periodic-announce)
[9009]音声ガイダンスPlayback(invalid)
[2000]ConfBridge
;****2017/05/05 MeetMe_setting_3*****
exten => 2000,1,Progress()
exten => 2000,n,Wait(1)
exten => 2000,n,ConfBridge(1,default_bridge,default_user)
;— voice mail setting on 2017/05/06—–;
;
exten => 500101,1,Voicemail(5001)
exten => 500201,1,Voicemail(5002)
exten => 500301,1,Voicemail(5003)
exten => 5999,1,VoiceMailMain()
exten => 5001,1,Dial(SIP/5001,20)
exten => 5001,2,Voicemail(5001@default)

261_sakuravps2_保留音の設定★

保留音とボイスメールに挑戦しましょう。
まずは保留音!!
https://wiki.archlinuxjp.org/index.php/Asterisk
参考。
保留音
保留音はとても楽しい機能です。簡単に設定することができます。/etc/asterisk/musiconhold.conf を編集して以下を追加してください。。。と。
まずは、directoryを強引に作成してみる。。。
#
[default]
mode=files
directory=moh
後はお気に入りの MP3 を /var/lib/asterisk/moh にコピー。
ディレクトリ内の音声ファイルが順番に再生されます (順番も指定できます)。
あれ・・・?hold音はすでに鳴るようになっとる・・・????
とすると、どこにhold音保存してるんかな???
やはり、
http://tech.cm55.com/wiki/asterisk/musiconhold
によると、、、、
保留音を指定しているのは/etc/asterisk/musiconhold.confという設定ファイルで、デフォルトでは/var/lib/asterisk/mohディレクトリ内のwavファイルが使用される。 ただし、デフォルトの状態ではなぜかその中の一つの特定wavしか使用されず、そしてなぜそれが毎回選択されるのか不明。
で、
mp3のデコーダはデフォルトでは含まれていないので、ビルド前に入れておく必要がある
AsteriskでIP電話機器の保留音を設定する。

AsteriskでIP電話機器の保留音を設定する。


も見たほうが。。

いや、
http://blogger.seya.org/2014/07/asterisk_16.html
が良い。
うーーーん。mp3が再生されないや。。。。
やっぱり、ツール入れないとダメか。。。(WAV音源はでdefault音源が再生されます)
まだ途中。。。
AsteriskでIP電話機器の保留音を設定する。(MP3)

AsteriskでIP電話機器の保留音を設定する。


をやってみるか・・・
mp3プレイヤー mpg123をインストールする。
【RPMforgeリポジトリ導入】
# yum install yum-plugin-priorities
# yum install yum-priorities
# vi /etc/yum.repos.d/CentOS-Base.repo

[base]
priority=1 ←追加
?
#released updates
[updates]
priority=1 ←追加
?
#additional packages that may be useful
[extras]
priority=1 ←追加
# cd
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
は、どうやら廃止サイトになったらしい。。。。
(「RPMForge (RepoForge) 終了のお知らせ」
http://qiita.com/bezeklik/items/ba4ccd806ae39d35f782)
なので、ここから
# yum install http://ftp.riken.jp/Linux/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# rpm -ivh rpmforge-release-*.rpm
# yum -y update rpmforge-release
mp3プレイヤーであるmpg123のインストール。
# yum install mpg123
Asterisk保留音設定ファイルmusiconhold.conの編集
?
再生やディレクトリの設定ファイルです。今回はmp3音源による再生する。
設定ファイルの編集
# makedir /var/lib/asterisk/mohmp3 && chmod 755 /var/lib/asterisk/mohmp3
# vi /etc/asterisk/musiconhold.conf
;directory=moh
directory=/var/lib/asterisk/mohmp3
mode=mp3
/var/lib/asterisk/mohmp3ディレクトリにMP3ファイルを転送。
# service asterisk restart
どうかな????
(行けたね!!!)
以上

260_sakuravps2_電話会議の設定★

電話会議の設定を。
http://www.spanky-world.com/asterisk/asterisk-page021.html
を参考に。
私のsakuravps2のasteriskには、
[5000]から[5010]の11番号帯が
/etc/asterisk

sip.conf
に登録済み。
会議通話ボックスを1001~1002の2つ作成。
「1001」の会議ボックスに入る際に、
パスワード『1234』をダイヤルしなければ会議に参加できないように。
「1002」の会議ボックスは、パスワード無し、で設定してみる。
■設定
①/etc/asterisk/meetme.confを編集
[rooms]
;
; Usage is conf => confno[,pin][,adminpin]
;
;conf => 1234
;conf => 2345,9938
conf => 1001,1234
conf => 1002
②/etc/extensions.confを編集
;****2017/05/05 MeetMe_setting*****
exten => 5000,1,MeetMe(1001|M)
exten => 5000,n,HangUp
exten => 5010,1,MeetMe(1002|M)
exten => 5010,n,HangUp
;****2017/05/05 MeetMe_setting*****
上記の例では、
5000をダイヤルすると、会議通話ボックス(1001)へ
5010をダイヤルすると、会議通話ボックス(1002)へ
ログインできるようになります。。。と。
やってみる!!・・・はい、ダメ。Declined(603)、、だと。
sip.confに登録外の番号でやってみる。。。
②/etc/extensions.confを編集
;****2017/05/05 MeetMe_setting_2*****
exten => 8001,1,MeetMe(1001|M)
exten => 8001,n,HangUp
exten => 8002,1,MeetMe(1002|M)
exten => 8002,n,HangUp
;****2017/05/05 MeetMe_setting_2*****
はい、まだダメ。。。。
http://stackoverflow.com/questions/23195771/no-application-meetme-for-extension-error-in-asterisk
を参考に。
すると、なんと!!
「Now MeetMe is deprecated,you should use confbridge.」
だと!!(=非推奨、未使用!!)
You need to edit confbridge.conf file and add this sample code:
; — ConfBridge Bridge Profile Options —
[default_user]
type=user
[default_bridge]
type=bridge
max_members=50 <—の;を取った!
In extension.conf file add this:
exten => 2000,1,Progress()
exten => 2000,n,Wait(1)
exten => 2000,n,ConfBridge(1,default_bridge,default_user)
なので、
;****2017/05/05 MeetMe_setting_3*****
exten => 2000,1,Progress()
exten => 2000,n,Wait(1)
exten => 2000,n,ConfBridge(1,default_bridge,default_user)
;****2017/05/05 MeetMe_setting_3*****
で、結局、このMeetMeは使わず、ConfBridgeってやつでとりあえず実現。。。
したみたいね・・・
以上

259_slackのfile_delete_結局まだダメ

slackのファイルを1件ずつ削除は面倒・・・なので
http://qiita.com/sotayamashita/items/cb811f512162e61f56f4
を参考!
sakuravps
Aa*****6
$ vi slack.py
——————————–
# This code is taken from Santiago’blog below
# https://www.shiftedup.com/2014/11/13/how-to-bulk-remove-files-from-slack
import requests
import json
import calendar
from datetime import datetime, timedelta
_token = “xoxp-169850188932-170503111255-169851330916-e8dfbff8d7561bf686f4fc656083ed2f”
_domain = “kuma-team-group”
if __name__ == ‘__main__’:
while 1:
files_list_url = ‘https://slack.com/api/files.list’
date = str(calendar.timegm((datetime.now() + timedelta(-30))
.utctimetuple()))
data = {“token”: _token, “ts_to”: date}
response = requests.post(files_list_url, data = data)
if len(response.json()[“files”]) == 0:
break
for f in response.json()[“files”]:
print “Deleting file ” + f[“name”] + “…”
timestamp = str(calendar.timegm(datetime.now().utctimetuple()))
delete_url = “https://” + _domain + “.slack.com/api/files.delete?t=” + timestamp
requests.post(delete_url, data = {
“token”: _token,
“file”: f[“id”],
“set_active”: “true”,
“_attempts”: “1”})
print “DONE!”

——————————–

pip インストール:
$ curl -KL https://bootstrap.pypa.io/get-pip.py | python
Warning: error trying read config from the ‘L’ file
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 1487k  100 1487k    0     0  4289k      0 –:–:– –:–:– –:–:– 4298k
Collecting pip
Using cached pip-8.1.1-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
pip バージョン確認:
$ pip -V
<sakuravpsの場合>
pip 9.0.1 from /usr/lib/python2.6/site-packages (python 2.6)
<RaspberryPi2号機の場合>
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
pip で requests をインストール:
$ pip install requests
<sakuravpsの場合>
/usr/lib/python2.6/site-packages に requests があるか確認:
$ cd /usr/lib/python2.6/site-packages
<RaspberryPi2号機の場合>
/usr/local/lib/python2.7/site-packages に requests があるか確認:
$ cd /usr/local/lib/python2.7/site-packages
$ ls | grep requests
requests
requests-2.13.0.dist-info
$ python slack.py で実行
消えない・・・
別のサイト
https://blog.animereview.jp/box_to_slack/
を参考
$ sudo gem install slackpolice
Commands:
slackpolice archive –api-token=API_TOKEN       # archive no members channels
slackpolice help [COMMAND]                      # Describe available commands or one specific command
slackpolice remove_files –api-token=API_TOKEN  # remove expired files
を使ってみる・・・・
$ slackpolice remove_files –api-token=xoxp-169850188932-170503111255-169851330916-e8dfbff8d7561bf686f4fc656083ed2f
$ slackpolice remove_files –days 0 –api-token xoxp-169850188932-170503111255-169851330916-e8dfbff8d7561bf686f4fc656083ed2f
うーーん、どちらもpythonはRaspberryPiではうまく動いた(Pyhtonのverが2.7であること、sakuravpsは2.6だったのでエラーだった。。)
けど・・・ファイルは消えない。。。
大量になてアーカイブファイルになると消えるのかも。
そんなに使い続けるわけにいかないので、slackは期間限定で使う方がよいかも。(私のようなタイプは。。)
以上

258_sakuravps2_Pythonアップデート(2.6 -> 2.7)

Pythonアップデート(2.6 -> 2.7)
http://qiita.com/Hiroyama-Yutaka/items/8a52d54819a0923436a7
を参考
sakuravps2のPythonのverをあげておくか。。
# python -V
Python 2.6.6
必要モジュールのインストール
# yum install zlib-devel openssl-devel
python2.7のダウンロード〜インストール
# cd /usr/local/src
# curl -O https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
# tar zxf Python-2.7.13.tgz
# cd Python-2.7.13
# ./configure
# make && make altinstall
# mv /usr/bin/python /usr/bin/python.26
# cp /usr/local/src/Python-2.7.13/python /usr/bin/python
# python -V
Python 2.7.13
(簡単ですね!)
yum復旧
yumが使えなくなっていると思われる。・・・らしいので。
# yum list installed
yumで使うpythonを古い版に向けることで対応する。・・らしい。
# vi /usr/bin/yum
× : #!/usr/bin/python
○ : #!/usr/bin/python.26
まとめ
以上で対応完了と思われる。
とくにyumが使えなくなるところは、yumがpythonで動いていることが頭に入っていないと見落としがち。
(はい、その通りでした。)
ありがとうございます。
以上

257_sakravps1号機_Thank_you!

sakravps初代1号機(東京サーバ)は、私の無知な仕業のためasteriskのインストール中に「lib64のエラーです」のメッセージに惑わされ、強引削除!

その結果、SSHとHTTPが使えなくなり、NagiosからもCriticalエラーとおしかりをうけ、やむなくSakuravps(石狩サーバ)2号機に移行となりました。

なんとかこのブログのおかげで4/12から作業して、主要なPRG類の移行は終わったので、明日5/5で1号機を閉じようかと。。。

このITよくわからずのおやじに付き合ってくださいましたあーーーー!

(すでに、稼働停止中・・)

以上

 

 

255_sakravps2_監視カメラ_slack_TEL通知_でもまだエラーあり

slackで動体監視を!
まだ途中で動作不安定なので。。
232_RasPi監視カメラ-slackへ転送・・まだNG
234_RasPiで監視カメラの動体検知で電話通知・・slack投稿OK
の再トライになります。
http://qiita.com/kinpira/items/bf1df2c1983ba79ba455
を参考
■motionの準備、インストール
$ sudo apt-get install -y motion
■motion.confの設定変更
# vi /etc/motion/motion.conf
<変更内容>
daemon off
ffmpeg_output_movies off
target_dir /tmp/motion
■Slackの設定
■Slackのアカウント登録(済)
username:h1729708
pass:y********20170416
Group:kuma-team
■SlackToken発行ページからAPI用のTokenを発行
https://api.slack.com/methods/channels.list/test
URL
https://slack.com/api/channels.list?token=xoxp-169850188932-170503111255-169851330916-e8dfbff8d7561bf686f4fc656083ed2f&pretty=1
{
“ok”: true,
“channels”: [
{
“id”: “C50ET3AGP”,
“name”: “general”,
“is_channel”: true,
“created”: 1492320797
・・・・・
・・・・・
■Slackerをインストール
$ sudo pip install slacker
■インストール後、まずは対話型でTEST
$ python
>>>from slacker import Slacker
>>>token = “xoxp-169850188932-170503111255-169851330916-e8dfbff8d7561bf686f4fc656083ed2f”
>>> slacker = Slacker(token)
>>> channel_name = “#” + “general”
>>> message = ‘API on 2017/05/03 07:42 朝だよ!’
>>> slacker.chat.post_message(channel_name, message)
(私も)来ました!
(私も)無事Slackに投稿できる事を確認できました。
■画像UPLOAD
まずmotionの動き確認、撮影できるか?
motionを実行して、カメラが動体検知して/tmp/motion/に画像ファイルが生成されていれば成功
# motion -c /etc/motion/motion.conf
結果
root@raspberrypi20170226:/tmp/motion# ls -l
合計 136
-rw-r–r– 1 root root 10330  5月  3 08:12 01-20170503081223-01.jpg
-rw-r–r– 1 root root 10720  5月  3 08:12 01-20170503081224-00.jpg
-rw-r–r– 1 root root 10351  5月  3 08:12 01-20170503081224-01.jpg
-rw-r–r– 1 root root 10364  5月  3 08:12 01-20170503081225-00.jpg
-rw-r–r– 1 root root 10858  5月  3 08:12 01-20170503081225-01.jpg
-rw-r–r– 1 root root 11242  5月  3 08:12 01-20170503081226-00.jpg
-rw-r–r– 1 root root 10660  5月  3 08:12 01-20170503081226-01.jpg
-rw-r–r– 1 root root 10740  5月  3 08:12 01-20170503081227-00.jpg
-rw-r–r– 1 root root 10731  5月  3 08:12 01-20170503081227-01.jpg
-rw-r–r– 1 root root 10382  5月  3 08:12 01-20170503081228-00.jpg
-rw-r–r– 1 root root 10706  5月  3 08:12 01-20170503081228-01.jpg
(うん、いい感じ。。)
では、画像のUPLOAD
$ python
>>> from slacker import Slacker
>>> token = “xoxp-169850188932-170503111255-169851330916-e8dfbff8d7561bf686f4fc656083ed2f”
>>> slacker = Slacker(token)
>>> channel_name = “#” + “general”
>>> slacker.files.upload(‘/tmp/motion/01-20170503081227-00.jpg’)
(あれ?投稿もされとる・・・)
Pinする、、ができてる?そっか、前回もう「ちゃんとチャンネル指定」してたんだー。
もう一回チェック。
コマンドだけで動くか?
# motion -c /etc/motion/motion.conf
(うん、いい感じ。。いや、TELのPRGがエラー起こしている、で止まっている。・・・)
memo<これは別件メモ>
print ‘<br />【1】<br />’;
print ‘<br />$ sudo motion -c /etc/motion/motion.conf<br />’;
print ‘<br />で起動<br />’;
print ‘<br />slackでは、最新の記述<br />’;
print ‘<br />call----TEL着信あり<br />’;
print ‘<br />nocallーーーTEL着信なし<br />’;
print ‘<br />を読み取って動作<br />’;
print ‘<br />【2】<br />’;
print ‘<br />$ cd /home/pi/mjpg-streamer<br />’;
print ‘<br />$ sudo sh start_server.sh<br />’;
print ‘<br />で、定点カメラ録画なしが始まる<br />’;
print ‘<br />webでは、URL<br />’;
print ‘<br />http://192.***.***.**:8080(内から)<br />’;
print ‘<br />http://121.***.***.**:8080(外から)<br />’;
print ‘<br />でアクセス動作<br />’;
<エラー内容>
Traceback (most recent call last):
File “/home/pi/motion/motion.py”, line 120, in <module>
outgoing_call()
File “/home/pi/motion/motion.py”, line 42, in outgoing_call
shutil.move(CALLFILE_DIR + CALLFILE_NAME, OUTGOING_DIR)
File “/usr/lib/python2.7/shutil.py”, line 302, in move
copy2(src, real_dst)
File “/usr/lib/python2.7/shutil.py”, line 130, in copy2
copyfile(src, dst)
File “/usr/lib/python2.7/shutil.py”, line 82, in copyfile
with open(src, ‘rb’) as fsrc:
IOError: [Errno 2] No such file or directory: ‘/home/pi/motion/auto_call.call’
[1] [NTC] [ALL] motion_loop: End of event 1
と、電話のエラーが出るなあ・・・・・
3つのpythonファイルをマージしたから、TEL部分を除いてみるか。。
「motion.py.bak」がのこってたので、これを「motion.py」にして。
再度実行!
##############################
TOKEN      = ‘xoxp-169850188932-170503111255-169851330916-e8dfbff8d7561bf686f4fc656083ed2f’
CHANNEL    = ‘C50ET3AGP’
# slack API : files.upload
# 参考:https://api.slack.com/methods/files.upload
####
def upload_file(file_path, channel):
    with open(file_path,’rb’) as f:
param = {‘token’:TOKEN, ‘channels’:CHANNEL,}
r = requests.post(“https://slack.com/api/files.upload”, params=param,files={‘file’:f})
if __name__ == “__main__”:
    arg     = sys.argv
file_path = arg[1]
    upload_file(file_path, CHANNEL)

##############################

# motion -c /etc/motion/motion.conf
これは・・だめ!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
もとに戻し!!!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://qiita.com/kinpira/items/bf1df2c1983ba79ba455
を参考に
motion.conf

########20170503 adding########*************************************#
on_picture_save python /home/pi/motion/motion.py %f
########20170503 adding########*************************************#
を設定
# su –
# cd /tmp/motion
# motion -c /etc/motion/motion.conf
ううーーーーーん、下記のエラーが出るなああ、一応動くようだけど。。。。
Traceback (most recent call last):
File “/home/pi/motion/motion.py”, line 121, in <module>
outgoing_call()
File “/home/pi/motion/motion.py”, line 43, in outgoing_call
shutil.move(CALLFILE_DIR + CALLFILE_NAME, OUTGOING_DIR)
File “/usr/lib/python2.7/shutil.py”, line 292, in move
raise Error, “Destination path ‘%s’ already exists” % real_dst
shutil.Error: Destination path ‘/var/spool/asterisk/outgoing/auto_call.call’ already exists
FALSE
Traceback (most recent call last):
File “/home/pi/motion/motion.py”, line 121, in <module>
outgoing_call()
File “/home/pi/motion/motion.py”, line 43, in outgoing_call
shutil.move(CALLFILE_DIR + CALLFILE_NAME, OUTGOING_DIR)
File “/usr/lib/python2.7/shutil.py”, line 292, in move
raise Error, “Destination path ‘%s’ already exists” % real_dst
shutil.Error: Destination path ‘/var/spool/asterisk/outgoing/auto_call.call’ already exists
^C[1] [NTC] [ALL] motion_loop: End of event 1
(続く・・・)
(解1)
http://stackoverflow.com/questions/31813504/move-and-replace-if-same-file-name-already-existed-in-python
shutil.move(os.path.join(src, filename), os.path.join(dst, filename))