iPhoneの「ホーム」アプリから定点観測のシャッターを切る

gyazoとRaspberry Piで水耕栽培の定点観測をしてslackに投稿する - Muchuu

この記事で設定していた水耕栽培は今はやらなくなってしまって、カメラが余ってしまったので今は最近飼い始めた文鳥の定点観測に使っています。こんな感じに

2時間に1回撮影するようにしていて、割と頻繁に撮影されたのが見られるのでなかなか良いです。

ですが、変なポーズをしているタイミングで撮影されてしまったりすると「もしかして死んでいるんじゃ無いか…?」と無駄な心配をしてしまう事があったため、手動でも撮影出来るようにしてみようと設定しました。

最初はbotでも設定してslackなりで指示を出して撮影しようかと思ったのですが、ios10からのiPhone「ホーム」アプリを使いこなしてみようと設定しました。Raspberry Piに。パッケージインストールが面倒なぐらいで、問題無く設定することが出来ました。

以下設定方法。

nodeパッケージで提供されているhomebridgeというものを入れます。プラガブルに利用できて、コマンド実行が行えるプラグインも一緒に入れます。

まずはhomebridgeのインストールでgccが古いと利用できないので4.8を優先して使うように。

sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50

apt-getで入るnodejsのバージョンが古いので新しい物が入るように。

sudo apt-get autoremove nodejs

sudo mkdir /usr/local/nvm
sudo chmod 777 /usr/local/nvm
git clone https://github.com/creationix/nvm.git /usr/local/nvm
source /usr/local/nvm/nvm.sh

nvm ls-remote
nvm install v7.4.0
sudo bash -c 'echo source /usr/local/nvm/nvm.sh > /etc/profile.d/nvm.sh'
nvm alias default v7.4.0

nanoエディタが起動しsudoの動作定義ファイルが開きます。sudo実行時にpathの設定が引き継がれるように

$ sudo visudo
次の行をコメントアウトします。
#Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

次の行を追加します。
Defaults    env_keep += "PATH"


$ sudo apt-get install libavahi-compat-libdnssd-dev
$ sudo npm install -g homebridge

以下のコマンド実行で起動する&.homebridgeのディレクトリを作成されるのを確認する。

homebridge

C-c で一端終了。

コマンド実行のプラグインのインストール

sudo npm install homebridge-cmd -g

設定情報の収集。設定ファイルに自分自身のmacアドレスの指定。 (ちなみに設定するRaspberry Piはワイヤレス接続されているものです。eth0の値でok)

$ ifconfig | grep 'ハードウェアアドレス'
eth0      Link encap:イーサネット  ハードウェアアドレス b8:27:eb:12:f2:ed
wlan0     Link encap:イーサネット  ハードウェアアドレス 00:22:cf:45:55:71

小文字だとプラグインの設定に対応していないのでローマ字を大文字にして以下のjsonに設定する

b8:27:eb:12:f2:ed => B8:27:EB:12:F2:ED

$ vi .homebridge/config.json


{
    "bridge": {
        "name": "のりもちカメラ",
        "username": "B8:27:EB:12:F2:ED",
        "port": 51821,
        "pin": "031-45-156"
    },

    "description": "カメラのシャッターを切ります",

    "accessories": [
       {
           "accessory": "CMD",
           "name": "カメラ",
           "on_cmd": "sh /home/pi/bin/observation | slack -c '#norimochi'",
           "off_cmd": ""
       }
   ]
}

ちなみに文鳥の名前は「のりもち」と言います。

homebridge

iosでホームアプリを立ち上げ、アクセサリの追加。 jsonのpinで設定した番号を入力かiphoneのカメラが立ち上がるので読み込む。

設定されたアイコンをタップして実行されるのを確認できればok

こんな画面

以下自動実行させる方法。

あとから見つけたけど公式にラズパイでの設定方法書かれてあったのね….. こちらの自動設定方法を真似る。

sudo wget https://raw.githubusercontent.com/fhd/init-script-template/master/template -O /etc/init.d/homebridge


 $ which homebridge
/usr/local/nvm/versions/node/v7.4.0/bin/homebridge

init.dの設定はテンプレートままだと使えないので記述変更する。「# Provides: 」の所にhomebridgeの設定したり各設定環境を書き換える。

$ sudo vi /etc/init.d/homebridge


# Provides: homebridge

dir="/home/pi"
cmd="DEBUG=* /usr/local/nvm/versions/node/v7.4.0/bin/homebridge"
user="pi"


$ sudo chmod 755 /etc/init.d/homebridge
$ sudo update-rc.d homebridge defaults

$ sudo /etc/init.d/homebridge start

あとは以下のtailでログを確認しながら再度起動の確認をすればok

tail -f /var/log/homebridge.*

感想

簡単に設定できて良かった。

だけど「ホーム」アプリはonとoffを設定するのが普通の使い方みたいで、今回のような「撮影を1回実行して終了」のようなoffの動作が必要ないものには対応する操作がなく、onした後に1回offをしないといけないので面倒ではある。小さいハックをすれば回避出来るような問題かもしれないが。

iPhoneで設定したが、それだと外出先では操作が出来なくなる(命令を送信するホストが居なくなる)のでホームハブと呼ばれているApple TV(第4世代)が必要になるみたい。iPadでも代用出来るらしいのでそっちで設定してみるつもりです。

あとは設定出来るユーザーが基本は同じiCloudアカウントじゃないと出来ないみたいだけど、ホームハブの設定をしておけば招待可能みたいです。嫁と一緒に使いたかったのでこれがやりたかった。詳しくはappleのページ

1 Notes

  1. muchu-uの投稿です