RICOH THETA Vの Person Detection & Counting プラグインを使って IFTTT Webhook から Node-RED にデータを送るメモです。
2020/11/3 の状況で進めます。
RICOH THETA V 購入
ふとした雑談で人数カウントの話をしていたところ 「RICOH THETAプラグインストア」に新たな公式プラグイン「Person Detection & Counting」を公開 という株式会社リコーさんのプレスリリースを発見しまして RICOH THETA V を購入しました。
それ以外にも、 HoloLens 2 や Web VR に触れていると空間を切り取るという意味でも、いろいろと考えるところがあるので、使ってみたいデバイスだったので良い機会です。
PC用基本アプリケーション「RICOH THETA」インストール
RICOH THETAのダウンロードページ からPC用基本アプリケーション「RICOH THETA」をセットアップしておきましょう。
私は Windows 10 で行いました。セットアップファイルをダウンロードしてインストールします。
インストール中・・・
無事インストールされました。
さっそくプラグインインストール
プラグインでさらに便利に、使いやすく。自分だけのTHETAに進化させよう! | RICOH THETA
こちらのページの下部にプラグインのインストール方法が書かれています。
PCに RICOH THETA V を接続します。
Person Detection & Counting のページに行ってインストールボタンをクリックします。
プラグインをインストールをクリックします。
Chromeでこのような画面がでてくるので、 RICOH THETA を開くボタンをクリック。
プラグインインストールがはじまります。
インストールが完了しました。
プラグインの設定
IFTTTのアカウントは取得している前提で進めます。
Person Detection & Counting のページに、persondetectionandcounting_ja.pdf という説明書があるのでこれに従って進めます。(今後もバージョンが上がったりドキュメントの置き場所変わったりしそうなので、これくらいの案内にしておきます)
まずは説明書通りスプレッドシート連携を試しましょう
設定を進めていくと、このように IFTTT の Webhook 設定を THETA アプリケーションの方に写し取って IFTTT 連携を行うことになりますがうまく設定できないことがあり、まずは説明書のおすすめどおりスプレッドシート連携を試しましょう。
私もこのように設定して進めました。
設定を成功させ、ちゃんとデータが来ることを確認します。
余談: Webhook → Webhook IFTTT 連携をいきなり試して 400 エラーが出たり試行錯誤をした
2020/11/3 現在、persondetectionandcounting_ja.pdf には、このように様々なエラーコードの説明も書いてあります。
ここに書かれているエラーはよく読めばエラー内容が分かりので解決できるはずです。
私はWebhook → Webhook IFTTT 連携をいきなり試して 400 が出てしまいました。これは例外中の例外(401エラーだと本当にキーが間違っています)。
入力したキーは間違っていなかったのですが、この場合は前述のスプレッドシート連携を丁寧に試したところ、設定が通ったのか、うまくいくようになりました。(このあたり再現性が悪いのですが、とにかく、公式が推奨している Twitter か スプレッドシート の連携のどちらかを先に試すことをおススメします)
Node-RED につなげる IFTTT 設定を作る
さて、Node-RED につなげる IFTTT 設定を作り、RICOH THETA Vから Node-RED へデータが流れるようにします。
Webhook → Webhook IFTTT 連携を作ります。
このような設定で対応しました。ごくごくシンプルなつくりです。value1 が人数、 value2 が撮影した日時が入っています。
Node-RED の設定
Node-RED はこのようなフローを作ります。 IFTTT から受け取るためにも、どこかの公開されたサーバーで動いている Node-RED を使いましょう。
GETリクエストを受け取る http in ノードと http response ノードで構成されています。 msg.req.body と書かれている debug ノードできたJSONデータを受け取ります。
インポートできるフローはこちらです。
[{"id":"7081031d.1bae2c","type":"http in","z":"1fc2cb56.eec965","name":"","url":"/theta","method":"get","upload":false,"swaggerDoc":"","x":140,"y":180,"wires":[["e1414b3c.453ae8","fd34993.89bfb68"]]},{"id":"fd34993.89bfb68","type":"debug","z":"1fc2cb56.eec965","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"req.body","targetType":"msg","x":390,"y":120,"wires":[]},{"id":"e1414b3c.453ae8","type":"http response","z":"1fc2cb56.eec965","name":"","statusCode":"","headers":{},"x":370,"y":180,"wires":[]}]
こちらをデプロイしたら準備完了です。
実際に送ってみる
早速、 RICOH THETA V 側から撮影ボタンをクリックして送ってみましょう。プラグインの設定は一通り済ませて、プラグインモードにして、外部にデータが送れるように無線 LAN クライアントモードになっている前提で進めます。
サイドバーのデバッグタブに、IFTTTで設定したデータが送られてきました!