ビジネスプラットフォームテクノロジーセンターのやまさきあです。
先日、弊社ではクレスコフェアが開催されたのですが、
そのイベントの企画の1つであるデジタルアイデアコンテスト作品展示に、
RPA業務に携わっているメンバーで参加しました。
このコンテスト内で、私はUiPath を使って家電を動かす機能を担当したので、
今回は、どのようにして実装していったのかをお話しします。
まず、今回使用したものの紹介です。
・ライセンス認証済のUiPath Studioが入っているPC
・家電登録済のNature Remo(今回はNature remo 3 を使用しました。)
UiPath Studioについては過去の記事でも取り扱ってきたので、
ライセンス認証の説明については割愛します。
バージョンは2019.10.5を使用しました。
Nature remoについてはここで少し説明します。
Nature Remoは、赤外線リモコンをスマートフォンのアプリケーションから操作できるようにするデバイスです。
アプリケーション上に表示されるボタンを押すと、Nature remoを通して赤外線を送信することができます。
↓アプリケーションの画面の例です。ボタンを押すと、照明に信号を送信することができます。
今回は、このアプリケーションからの操作ではなく、
公式から提供されているAPIを用いて、UiPath から照明を操作してみます。
このとき、アプリケーションからメールアドレスを登録し、対象の家電を登録した
Nature remoを準備しておき、以下の操作を実施していきます。
家電操作に使用するアクティビティは「HTTP要求」というものです。
HTTP要求アクティビティを使うと、指定したWebAPIに対してHTTPリクエストを実行できます。
まず、こちらの設定を行う際に必要な情報を取得していきます。
必要なトークンを取得していきます。
https://home.nature.global/にアクセスし、ログインします。
Nature remoに登録したメールアドレスでログインしてください。
ログインが成功するとメールが送られてきますので、
「ログイン」ボタンを押してログインを行ってください。
ログイン後、Remoへのアクセスリクエスト許可画面が開きますので、許可します。
その後表示される「Go」ボタンを押すと、アクセストークン一覧画面が現れます。
「Generate access token」を押し、アクセストークンを作成します。
このトークンは後ほど使用しますので、メモしておいてください。
家電をAPIで操作するためには、操作対象家電のIDと対象ボタンの名称が必要となります。
この操作はUiPath から実施できますので、やっていきましょう。
まずは、家電IDを取得できるAPIを以下のページから見つけます。
今回は、家電リストを取得したいので、以下のAPIを使用します。
こちらは、上記からわかるように
要求メソッドが「GET」のAPIで、
エンドポイントは、ページ上部に記載のある「https://api.nature.global」(下図)に、
家電リスト取得APIの「/1/appliances」を付与した「https://api.nature.global/1/appliances」です。
また、コンテンツタイプは「json」なので、応答形式はこちらに合わせる必要があります。
この情報を元に、アクティビティを設定していきましょう。
ワークフローデザイナーパネルにHTTP要求アクティビティを追加すると、
HTTP要求ウィザードが開きます。
以下のように各項目をしていきます。
https://api.nature.global/1/appliances
GET
JSON
(ANYでも大丈夫です。)
こちらの設定ができたら、OKボタンを押してください。
次に、詳細設定を行っていきます。
設定するのは「オプション」内の「ヘッダー」と、「出力」内の「結果」です。
引数を追加し、「Authorization」という名称を設定し、「値」を「”Bearer”+”アクセストークン”」に設定します。
(アクセストークンは、「アクセストークンの取得」で取得した文字列を入れてください。)
APIを実行した結果が返ってきますので、そちらを格納する変数を「結果」に設定してください。
(変数の型はStringです。)
こちらを「メッセージをログ」アクティビティ等を用いて出力パネルに出力できるよう、設定してください。
以上で、アクティビティの設定は完了です。実行すると、結果が出力パネルに表示されます。
この中から、対象の家電の家電IDとボタンの名称を探します。
今回は出力の中から照明を探し、その上にある”device”の前にある”id”の後に記載されているが対象の家電IDとなります。
また、ボタンの名称は、”buttons”の後にある”name”の後に記載されているものです。
こちらの2つを使って照明に対する操作を実施するので、メモしておいてください。
必要な情報がすべてそろったので、家電操作を行う準備ができました。
今回は照明をオンにするという操作をやっていきましょう。
まずは、家電IDを取得できるAPIを以下のページから見つけます。
今回は、照明をオンにしたいので、以下のAPIを使用します。
この情報を元に、HTTP要求アクティビティを設定していきます。
https://api.nature.global/1/appliances/家電ID/light
家電IDは、準備の際に取得した文字列に置換してください。
POST
JSON
(ANYでも大丈夫です。)
上記項目の設定箇所は家電情報取得の際と一緒です。
ボタン名については、パラメータとして設定します。
準備の際に取得した文字列
(今回の環境では”on”なのでこちらを使います。)
「オプション」→「パラメータ」から設定します。
引数を追加し、名前に「button」、値に”on”を設定します。
これでUiPath から家電を操作する準備が完了しました。
実行してみると、無事に照明がつきました!なんだかうれしい。
私はこれまでの業務でAPIやHTTP要求を使ったことなく、
UiPath のHTTP要求アクティビティを使用したこともなかったので、今回とても苦戦しました。
ウェブで情報を検索しながらやっていたのですが、
家電をUiPath から操作する方法を記載している方が見当たりませんでした。
そのため、APIの使い方、HTTP要求の方法、HTTP要求アクティビティの使い方などの情報をつぎはぎして、
チームのメンバーに頼りながらなんとか課題をクリアすることができました。
とてもためになる経験になったと思います。
これまで、UiPath からExcel、Word等を動かしたことはあったのですが、
画面の外に出て何か物を動かすということは初めて行いました。
とても難しい課題ではありましたが、こんなこともできるんだな~と
RPA の可能性を感じ、とても面白いなと思いました。
これからもRPA で出来ることの幅を広げていけたらなと思います。
以上です。
長くなりましたが、読んでいただきありがとうございました!