清水理史の「イニシャルB」

UiPathでネットワークカメラを操作! アイ・オーが公開したAPIを活用!

 アイ・オー・データ機器から公開されたネットワークカメラ「Qwatch」のAPIを使い、カメラに搭載されたHTTPサーバーに対してAPIコマンドを送信すると、設定情報の取得や変更、静止画や動画の取得が可能になる。今回は、「Curl」を使いつつ、RPAツール「UiPath Studio」も組み合わせることで、処理を自動化できるようにしてみた。

アイ・オー・データ機器のネットワークカメラ「Qwatch TS-WRLP」

ネットワークカメラのAPIをアイ・オーが広く公開

 2019年2月19日、アイ・オーから、ネットワークカメラ「Qwatch」シリーズのAPIが公開された。

 開発者やパートナー限定ではなく、誰もが入手可能なかたちで広くAPIが公開されるのは、コンシューマー向けネットワーク製品としては、なかなか珍しい例だろう。

 詳細は、こちらのニュース記事、またはアイ・オーのウェブサイトを参照していただきたいが、これにより、カメラに内蔵されたウェブページや純正アプリだけでなく、Curlのコマンドやウェブブラウザーなどを利用して、ある程度自由にネットワークカメラをコントロールできるようになった。

 APIの仕様書は、基本的に対象製品を購入したユーザー向けとされているが、カメラAPI使用許諾への同意と利用内容、所属先、従業員規模、氏名、住所、電話番号、メールアドレス、の各情報を入力することで、誰でも無料でダウンロードすることが可能となっている。

 対象機種は、TS-WRLP、TS-WRFE、TS-WRLC、TS-NA220W、TS-NA220、TS-NS210。このうちTS-WRLPは、クラウドサービスへの組み込み用APIも提供されているが、上記ダウンロードページでは、カメラ内部のHTTPサーバーにアクセスするためのローカルサービスへの組み込み用APIのみとなっている。

ダウンロードしたAPI仕様書

 SNSやクラウドストレージ、AIといったウェブサービスでは、公開されているAPIを使って独自アプリからのサービスの利用やサービス間の連携を実現できることが多い。しかし、本製品のようなハードウェアで、しかもコンシューマー向けに提供されているもので、広くAPIが公開されることは、これまであまり例がないのではないだろうか。

 ネットワークカメラは、従来の防犯や見守りを目的とした使い方だけでなく、店舗のオペレーション改革や顔認証による顧客サービスなど、さまざまな用途への応用が始まっている。こうした中でAPIを公開することで、より広い層にさまざまな使い方を検討してもらえれば、という狙いだろう。

 一般ユーザーでも比較的簡単に利用できるAPIとなるため、ちょっと工夫するだけで、用途の幅を広げることができる可能性がある。今回の事例をきっかけとして、コンシューマー向けのネットワーク機器でも、こうしたAPIの公開が広まることを期待したいところだ。

ウェブブラウザーさえあれば、すぐにAPIを試せる

 それでは、実際に試してみよう。今回利用したのは、円盤のようなユニークな形状のネットワークカメラ「TS-WRLP」だ。200万画素カメラを搭載し、1920×1080ピクセルの動画撮影に対応した製品で、IEEE 802.11n/g/b対応の無線LANか、100Mbps対応の有線LANでのネットワーク接続が可能。気温と湿度を検知できるセンサーも搭載している。

 先に触れたように、本製品だけは、クラウドサービスへ組み込むためのAPIも提供されているが、今回は広く公開されているローカルサービス向けAPIの方を試した。

 公開されているAPIでできることは、主に次の通りだ。

  • 設定情報の取得
  • 映像設定の変更(解像度やビットレートなどの変更)
  • 静止画の取得
  • 映像の取得
  • YouTube連携

 利用方法は簡単だ。HTTPでアクセスできる環境さえあればいいので、例えばウェブブラウザーを使って、仕様書に記載されているアドレスに対して特定のパラメーターを指定し、リクエストを投げるだけでいい。

 例えば、「action=listall」のように指定し、あらかじめ設定しておいた管理者アカウントとパスワードでログインすれば、次のように、カメラの設定情報が一覧表示される。

HTTPアクセスできれば使えるので、特別な環境は必要ない。対応カメラにウェブブラウザーでアクセスすれば、すぐに試せる

 取得できるのは、ファームウェアのバージョン、および映像関連の設定のみで、ネットワーク設定など、すべての情報が表示されるわけではない。このため、あくまでもカメラの映像を活用するための操作や、情報の表示のみに限定される。

 前述したように、TS-WRLPでは、温度と湿度を検知するセンサーが搭載されるので、この情報くらいは表示できるかと思ったが、今回のAPIでは対象外だった。

 バッチ処理や後述するRPAツールなどを使えば、複数台のカメラの設定を一括操作できるので、センサー情報やネットワーク設定など、もう一歩踏み込んだ情報もAPIで扱えると面白そうだ。

仕様書の例をそのまま使いたいなら、「Curl」か「POSTMAN」を

 このようにウェブブラウザーを使って、APIを簡単に利用可能だが、先に掲げた仕様書には、「curl」を使う使用例が紹介されている。

 curlは、最新バージョンのWindows 10であれば、標準でインストールされている。ただし、1つ注意が必要なのは、PowerShell環境の場合だ。スタートボタンを右クリックして「Windows PowerShell」を起動し、「curl」と実行しても、認証情報の指定でエラーが発生してしまう。

 これは、pcurl」が「Invoke-WebRequest」に割り当てられているためだ。このため、「c:\windows\system32\curl.exe」とパスを指定して実行するか、PowerShellではなくコマンドプロンプト上でcurlを実行する必要がある。

PowerShellでは、「curl」が「Invoke-WebRequest」に割り当てられている

 コマンドラインにあまり馴染みがないのであれば、「POSTMAN」というツールを使うのがお勧めだ。GETやPOSTなどのメソッド、アクセス先のURL、指定したいパラメーター、認証方式とアカウントなどを指定し、リクエストを送ると、画面上に結果が表示される。

 直感的に操作できる上、履歴が保存されるので、何度も同じリクエストを送るのも簡単。いろいろなAPIを試すのにも便利だ。

アドレスやパラメーターを指定して、リクエスト用のURLを生成
認証方式とアカウントを指定
結果も画面上で簡単に確認できる

UiPathでロボットに処理させてみる

 このほか、さまざまな言語を使って自分でAPIへのアクセス用プログラムを作ることも可能だ。今回は、もう少し敷居を下げて、RPAツールで操作できるようにしてみた。

 個人および小規模な組織であれば無料で利用できるRPAツール「UiPath Community Edition」を利用すると、画面上でパーツを組み合わせていくだけで、こうした処理を簡単に作成できる。

個人ユーザーなら無料で利用できる「UiPath Community Edition」を使って、こうした処理も自動化できる
今回作ったワークフロー。試行錯誤しながらでも、1時間もあれば、これくらいは難なく作れる

 今回、作った処理は次のようなものだ。詳細を説明するとスペースが足りないので、その概要のみ紹介しよう。

  1. Excelファイルからカメラのリストを読み込み(IPアドレスやIDが記載されている)
  2. リストから取得した情報を元に、リクエスト用のアドレスを生成
  3. Curlを呼び出して使ってリクエストを実行
  4. 読み込んだ設定情報(XML)から指定した情報(RTSPポート番号)を取得して表示
  5. RTSPポート番号を変更
  6. 静止画を取得して画像を保存

 PowerShellの心得があれば、コマンドラインで作成することもできるが、UiPathを使えば、こうしたExcelとの連携やXMLの構造化や値の取得が簡単にできる。これにより、Excelファイルに複数台のカメラをリストとして記述しておき、一括で設定を変更したり、静止画を取得するといった処理を自動化できるわけだ。

 なお、UiPathからリクエストを投げるのに、今回はCurlを使っている。UiPathは「HTTPリクエスト」という専用のアクティビティを備えているので、本来は、そちらを使った方がスマートなのだが、「HTTPリクエスト」でサポートする認証方式はBASIC認証、OAth1、OAth2のみで、QWatchへのアクセスに必要なダイジェスト認証に対応していないのだ。

 ウェブサービスの場合、HTTPリクエストの対応のみで十分なのだが、今回のように、デバイスへのアクセスにダイジェスト認証が使われるケースも増えてくる。個人的には、ぜひサポートをお願いしたいところだ。

 まあ、標準でサポートされていなくても、今回のようにCurlを使うなど、ほかの方法でどうにでも対応できてしまうのが、UiPathの面白いところではあるのだが……。

ルーターやNASもAPI公開されないかなぁ

 以上、アイ・オーから公開されたQwatch用のカメラAPIを実際に試してみたが、思った以上に簡単に使えるので、対応カメラを持っている人はぜひ試してみることをお勧めしたい。

 現在公開されている情報によれば、できることが限られているものの、工夫次第ではいろいろなことができそうだ。少なくとも、複数台のカメラの管理や設定変更などは、劇的に楽になる。

 こうなってくると、身近な機器のAPIがもっと公開されないかなぁ、と期待したくなってくる。ルーターやNASが公開されると実用性が高まりそうだ。遠からず、そういった製品の登場を期待したいところだ。

Amazonで購入

清水 理史

製品レビューなど幅広く執筆しているが、実際に大手企業でネットワーク管理者をしていたこともあり、Windowsのネットワーク全般が得意ジャンル。最新刊「できる Windows 10 活用編」ほか多数の著書がある。