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))

254_sakravps2_温湿度センサの計測件数php★

少しBigData貯めてみようかと。。。RaspberyyPiの容量大丈夫かな・・まっいいか。

場所は、/var/www/html

ファイルは、ras_gra/20170504_tmp_cnt.php

URLは、http://ik1-313-16602.vs.sakura.ne.jp/ras_gra/20170504_tmp_cnt.php

以下コードーーーーー

<?php
//MySQLに接続し、データベースを選択します。
$conn = mysql_connect(‘ik1-313-16602.vs.sakura.ne.jp’,’root’,’Aa1234567890′) or die(mysql_error());
mysql_select_db(‘20161129_sensor’) or die(mysql_error());
//SQLクエリを実行します。
$res = mysql_query(‘SELECT * from t_sensor where water_need=”insert real data” order by Num DESC’) or die(mysql_error());
//SQLクエリを実行します。(カウント追加2016/12/30)
$res1 = mysql_query(‘SELECT count(*) from t_sensor where water_need=”insert real data”‘) or die(mysql_error());
//結果を出力します。
while ($row1 = mysql_fetch_array($res1, MYSQL_NUM)){
echo “vpsのt_sensor件数は、<br />\n”;
echo $row1[0].”\t”;
echo “<br />件です。<br />\n”;
echo “——————\n<br>”;
}
while ($row = mysql_fetch_array($res, MYSQL_NUM)){
echo $row[0].”\t”;
echo $row[1].”\t”;
echo $row[2].”\n”;
echo $row[3].”\n”;
echo $row[4].”\n”;
echo $row[5].”\n”;
echo $row[6].”\t”;
echo $row[7].”\n”;
echo $row[8].”\n”;
echo $row[9].”\n”;
echo $row[10].”\n”;
echo “<br />\n”;
echo “——————\n<br>”;
}
//結果セットを開放し、接続を閉じます。
mysql_free_result($res);
mysql_close($conn);
?>
以上ーーーーー

253_sakuravps→sakravps2への移行完了(旧sakuravps閉じます)★

いろいろ手かかりました。

多少グレードも上がったかも。

何より自分のスキルが少しは上がったかな・・・?

ブログ[99]からやり直し。
153.126.154.106
ik1-313-16602.vs.sakura.ne.jp
1.環境,sakuravps2
[●済][99]Apache2.4のインストール
[●済][100]Java8, Tomcat8インストール
[●済][103]rootのPasswdを変えましょう。sakuravpsyuユーザ作成
[●済][104]さくらVPSに挑戦5、鍵認証の設定
[●済][106]さくらVPSに挑戦5、PHP設定
[●済][107]さくらVPSに挑戦5、MySQL設定
[●済][125]phpmyadminインストール
[●済][118]Nagios_SAKURAVPSにNagiosをインストール,121_Nagios on SAKURAVPS
[●済][117]Collectd_SAKURAVPSにcollectdをインストール
[●済][128]WordPress_on_SAKURAVPS2
[    ][130]munin_SAKURAVPS
未 [101]Apache2.4とTomcat8連携
未 [105]さくらVPSに挑戦5、ドキュメントルート(DocumentRoot)
未 [157]Cumulocity
2.AP,sakuravps2
[●済][●pi3で構築⇒[   ]]Asterisk_IP電話 2017/04/14
[●済][174-175]温湿度センサ
[●済][193-197]php_photo (Google Cloud Vision API完成!)その4
[●済][201]水分センサ,php移動
[●済][156](2017/01/15)156_API-test_on_sakuravps、API_livedoor天気予報表示成功!
3.新AP
[●済][●pi2で構築⇒Pi1へ、asterisk、209_Raspberry Pi_Asterisk_IP電話(その3)やっと成功!!
[●済][●pi2で構築⇒Pi1へ、streamer、229_RaspberryPi監視カメラ-再び1
未 [●pi2で構築⇒Pi1へ、監視カメラ、Slackで保存<=まだ動作不安定のため
未 [●pi2で構築⇒Pi1へ、監視カメラの動体検知、電話通知<=まだ動作不安定のため
4.今後
[    ][]PaspberryPi、音声認識+音声合成で会話、DocomoAPI活用
[    ][]asterisk、電話会議
[    ][]asterisk、サウンドファイル生成
[    ][]asterisk、サウンドファイル設定
(旧1)
(旧2)
(旧3)
(旧4)
(新1)
(新2)
(新3)
(新4)
以上、では、旧sakuravpsを閉じます!!!!

252_RaspberryPi_監視カメラstreamerのraspberrypi間移行★

では、Streamerの移行します。
USBカメラを接続する
$ lsusb
(図1)
IPの確認
$ ifconfig
inetアドレス:192.168.0.8
MJPG-streamer
$ sudo apt-get update
$ sudo apt-get install -y subversion libjpeg-dev imagemagick
Subversionをインストールしたら、「MJPG-streamer」を取得して、インストール。
$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
$ cd mjpg-streamer
$ make
$ sudo make install
ストリーミングサーバーの起動
$ vi start_server.sh
以下を追加
********************************
#!/bin/sh
PORT=”8080″ #ポート番号
ID=”raspai” #ID
PW=”Aa123456″ #パスワード
SIZE=”320×240″ #画面サイズ
FRAMERATE=”2″ #フレームレート
MJPEGDIR=/home/pi/mjpg-streamer
export LD_LIBRARY_PATH=/usr/local/lib
$MJPEGDIR/mjpg_streamer \
-i “input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n” \
-o “output_http.so -w /usr/local/www -p $PORT -c $ID:$PW”
#export LD_LIBRARY_PATH=/usr/local/lib
#./mjpg_streamer \
#        -i “input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n” \
#        -o “output_http.so -w /usr/local/www -p $PORT -c $ID:$PW”
#
********************************
以下のスクリプトを実行すると、ストリーミングサーバが立ち上がります。
$ sudo sh start_server.sh
(not foundって言われたけど。。。。)
アクセスして動作確認する
ブラウザで
http://192.168.0.8:8080
をURL欄に入力して、ページを表示します。
はい、ダメ!!not foundだって!!
で、
226_RaspberryPi監視カメラ1?OK・・・
に戻ってやり直し。
motion のインストール
$ sudo apt-get install -y motion
次にmotion.confの設定を変更
$ sudo vi /etc/motion/motion.conf
毎回手動で起動させるためdaemonの設定をoffにます。
daemon off
動画も必要無いので止めます
ffmpeg_output_movies off
写真を書き出すようにします。
target_dir /var/lib/motion
準備ができたら起動★★★★★
$ sudo motion
$ sudo motion -c /etc/motion/motion.conf
で写真画像は、
/var/lib/motion
に保存されとる。。。
で、、、画像オンリーは???
$ cd /home/pi/mjpg-streamer
$ sudo sh start_server.sh
http://192.168.0.8:8080
でカメラの映像が見れる
(いったーーー!!!)
で、定点カメラ録画なしが始まる
webでは、URL
http://121.109.154.54:8080
でアクセス
$ nohup sudo sh start_server.sh
で常時起動にしておこう。。。

251_RaspberryPi_内線電話asteriskのraspberrypi間移行★

内線電話asteriskのraspberrypi間での移行
RaspberryPi2号機(192.168.0.9)から
RaspberryPi1号機(192.168.0.8)へ移行
209_Raspberry Pi_Asterisk_IP電話(その3)やっと成功!!
$ sudo apt-get install asterisk
$ cd /etc/asterisk
$ vi sip.conf
general セクションだけ探して書き換えたら、あとは末尾に
書き足せばOKです。。。。と。
localhost=192.168.0.8/255.255.255.0
;2017/05/01 setting start =====================
[5000]
type=friend
username=5000
secret=pass
canreinvite=no
host=dynamic
[5001]
type=friend
username=5001
secret=pass
canreinvite=no
host=dynamic
[5002]
type=friend
username=5002
secret=pass
canreinvite=no
host=dynamic
[5003]
type=friend
username=5003
secret=pass
canreinvite=no
host=dynamic
[5004]
type=friend
username=5004
secret=pass
canreinvite=no
host=dynamic
[5005]
type=friend
username=5005
secret=pass
canreinvite=no
host=dynamic
[5006]
type=friend
username=5006
secret=pass
canreinvite=no
host=dynamic
[5007]
type=friend
username=5007
secret=pass
canreinvite=no
host=dynamic
[5008]
type=friend
username=5008
secret=pass
canreinvite=no
host=dynamic
[5009]
type=friend
username=5009
secret=pass
canreinvite=no
host=dynamic
[5010]
type=friend
username=5010
secret=pass
canreinvite=no
host=dynamic
;2017/05/01 setting end =====================
Asterisk の設定:
$ cd /etc/asterisk
$ vi rtp.conf
デフォルトで10,000個のポートを使用するようになっているので
適当に減らします。。。。と。
rtpstart=10000
;rtpend=20000
rtpend=10010
Asterisk の設定:/etc/asterisk/extensions.conf
[default] セクションを下記のように変更します。。。。と。
;2017/05/01 setting start ==================
exten => _5XXX,1,Dial(SIP/${EXTEN},30)
exten => _5XXX,2,Congestion
exten => _5XXX,102,Busy
exten => 9001,1,Playback(queue-thankyou)
exten => 9002,1,Playback(hello-world)
;2017/05/01 setting end =====================
root@(none):/home/pi# asterisk -r vvvvvc
(none)*CLI> dialplan reload
再起動します。
pi@raspberrypi ~ $ sudo service asterisk restart
いやーーーできた!!!、なったわ!!!

250_sakuravps2_TOMCATの管理画面アクセス設定★

TOMCATの管理画面アクセス設定
Apache Tomcat 7.0.39 管理画面へのアクセス設定(tomcat-users.xml)
http://www.checksite.jp/apache-tomcat-7-0-39-tomcat-users/
Message body
Tomcatの管理者権限アカウント設定の方法

を参考
俺の場合、tomcatのホームディレクトリは、
cd /opt/tomcat/apache-tomcat-8.5.13
なので、
# cd /opt/tomcat/apache-tomcat-8.5.13/conf
# vi tomcat-users.xml
をいじる。
の前に、、、Tomcatユーザの作成を
Tomcatをroot権限で実行していると、何かしらのセキュリティホールがあった際にサーバのroot権限が取られてしまうかもしれない。それはセキュリティ上よろしくないので、実行専用のユーザとして、tomcatというアカウントを作成する。このtomcatユーザは、ログインシェルに/sbin/nologinを指定して通常利用はできないようにしておく。
# useradd -s /sbin/nologin tomcat
Tomcatをroot権限で実行することは、現在においては自殺行為なので絶対にしてはいけない
・・・でも、これはやっていたようなので。。
設定をいじる。
「tomcat-users.xml」ファイル。
ここに、role と user を有効にした後、、、、
設定追加
<?xml version=’1.0′ encoding=’utf-8′?>
<tomcat-users>
◎◎◎
<role rolename=”admin”/>
<role rolename=”admin-gui”/>
<role rolename=”admin-script”/>
<role rolename=”manager”/>
<role rolename=”manager-gui”/>
<role rolename=”manager-script”/>
<role rolename=”manager-jmx”/>
<role rolename=”manager-status”/>
<user name=”admin” password=”Aa123456″ roles=”admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status” />
</tomcat-users>
◎◎◎
■tomcatの起動や停止には順番
tomcatの起動や停止には順番があります。起動時はtomcat -> apacheの順に、停止時は逆にapache -> tomcatの順に停止します。
[起動]
# /opt/tomcat/apache-tomcat-8.5.13/bin/startup.sh
# /opt/httpd/httpd-2.4.25/bin/apachectl start
(これでなく、# service httpd start (またはrestart) が良い)
[停止]
# /opt/httpd/httpd-2.4.25/bin/apachectl stop
(これでなく、# service httpd stop が良い)
# /opt/tomcat/apache-tomcat-8.5.13/bin/shutdown.sh
◎◎◎
■httpのデーモンが残っている場合の確認と削除
使ってること一目瞭然、後はそれを切っちゃえばOK
# /usr/sbin/lsof -i | grep http
# kill -9 *****
◎◎◎
[124] (2016/11/15)124_Tomcat 9.0_ServerStatus/ManagerApp
参照!!
# cd /opt/tomcat/apache-tomcat-8.5.13/webapps/manager/META-INF

# vi context.xml
を編集<!–  ・・・・・–>に!
以上(なんとか表示、、、フウーーーーー)

248_sakuravps2_tomcatの起動や停止には順番★

■tomcatの起動や停止には順番
tomcatの起動や停止には順番があります。起動時はtomcat -> apacheの順に、停止時は逆にapache -> tomcatの順に停止します。
[起動]
# /opt/tomcat/apache-tomcat-8.5.13/bin/startup.sh
# /opt/httpd/httpd-2.4.25/bin/apachectl start

(これ使わず、# service httpd restart が良い)
[停止]
# /opt/httpd/httpd-2.4.25/bin/apachectl stop
# /opt/tomcat/apache-tomcat-8.5.13/bin/shutdown.sh

以上

 

247_sakuravps2_移行まとめ

ブログ[99]からやり直し。
153.126.154.106
ik1-313-16602.vs.sakura.ne.jp
1.環境,sakuravps2
[●済][99]Apache2.4のインストール
[●済][100]Java8, Tomcat8インストール
[●済][103]rootのPasswdを変えましょう。sakuravpsyuユーザ作成
[●済][104]さくらVPSに挑戦5、鍵認証の設定
[●済][106]さくらVPSに挑戦5、PHP設定
[●済][107]さくらVPSに挑戦5、MySQL設定
[●済][125]phpmyadminインストール
[●済][118]Nagios_SAKURAVPSにNagiosをインストール,121_Nagios on SAKURAVPS
[●済][117]Collectd_SAKURAVPSにcollectdをインストール
[●済][128]WordPress_on_SAKURAVPS2
[    ][130]munin_SAKURAVPS
未[101]Apache2.4とTomcat8連携
未[105]さくらVPSに挑戦5、ドキュメントルート(DocumentRoot)
未[157]Cumulocity
2.AP,sakuravps2
[●済][●pi3で構築⇒[   ]]Asterisk_IP電話 2017/04/14
[●済][174-175]温湿度センサ
[●済][193-197]php_photo (Google Cloud Vision API完成!)その4
[●済][201]水分センサ,php移動
[●済][156](2017/01/15)156_API-test_on_sakuravps、API_livedoor天気予報表示成功!
3.新AP
[●pi2で構築⇒[    ]Pi1へ、straemer、外部ネットワークからスマホからペットを遠隔監視
未 [●pi2で構築⇒[    ]Pi1へ、監視カメラ、Slackで保存<=まだ動作不安定のため
未  [●pi2で構築⇒[    ]Pi1へ、監視カメラの動体検知、電話通知
4.今後
[    ][]PaspberryPi、音声認識+音声合成で会話、DocomoAPI活用
[    ][]asterisk、電話会議
[    ][]asterisk、サウンドファイル生成
[    ][]asterisk、サウンドファイル設定