こんにちは。iOS開発Gの石田です。
最近家電を操作して、自分の部屋をスマートハウス化しようといろいろやっているのですが、そこで考えたことをまとめてみました。
我が家の現状
我が家で最も活躍しているのは、ネットワーク対応学習型リモコンのIRKitです。家電が規格に対応していなくても赤外線リモコンさえあれば操作できるので、自作アプリに組み込んで赤外線対応家電を操作しています。 以前の記事で紹介したとおり、Siriで音声認識を実現しています。 最近は、「帰ったよ」というアプリを作り、起動するとテレビ、エアコン、照明、BDプレイヤーが起動して、セットしておいたお気に入りのBDが流れるようにしています。
【ネクスト】iPhoneの「Siri」で家電を操作 - YouTube
またスマホなどから操作できる電球であるPhilipsのHueや、室内・室外環境を計測するウェザーステーションのNetatmoを、カスタム条件トリガーを作れるIFTTTで制御し、湿度が低くなったりCO2濃度が高くなったときに部屋の色を変えたり、自宅から半径500mを出入りするたびに 照明が付いたり消えたりするようにしています。
こちらが簡単に自宅の制御系を表したものです。
IFTTTとは、If This Then Thatの略で、これをしたらあれをする、というWebサービスの組み合わせを自分で作ることができるサービスです。 最近はWebサービス感覚で使用できる家電が出されてきており、IFTTTに対応している家電であれば、トリガーと動作を設定するだけで制御できてしまうので非常に便利です。
トリガーとしても用いることができるものとしては、電話がかかってくる、メールが来る、Facebookの通知、GPSで指定の領域に入る、などがあります。
課題
しかしながら、IFTTTを用いて制御していると不満なことがでてきます。それはトリガーの条件が1つしか登録できないことです。 例えば、「IF 指定さえた領域に入る Then 照明をつける」、という命令を設定しているのですが、時間の指定ができないので昼間でも電気がついてしまいます。 時間の範囲指定ができればよいのですが、シンプル故に使いやすいIFTTTでは設定することができません。
本来私が設定したい命令は、
『 暗い時間に家に帰ったら 』
であり、よりセンサ等が分かるようにより具体的に書くと
『 「現時刻」が「本日の日の入りの時刻」を過ぎているかつ、「スマートフォンの位置情報」が自宅の半径500mよりも外の位置から中の位置に変化した 』
となります。
このように、より快適に家電を制御するためには、複数の一次情報を組み合わせて、人の行動に合致した二次情報を作り、トリガーとする必要があります。
二次情報への加工
たとえば、「家に帰る20分前にエアコンをつける」ことを考えます。頭の中では「帰る」と思うだけですが、コンピュータはそれが分からないので工夫する必要があります。 仕事では基本的に外出がなく、いつも同じ駅から通勤・帰宅する私にとっては、「夜に品川駅に着く」ことが「家に帰る20分前」とほぼ同義です。よって
『 「現時刻」が19時から24時かつ、「スマートフォンの位置情報」が品川駅の半径200mよりも外の位置から中の位置に変化した 』
というトリガーを設定すればよいわけです。※1
しかしこのトリガーは私専用であり、同じ勤務地、最寄駅でも営業職の人では当てはまりません。同じ品川勤務でも営業の人は外出することが多く、直帰することもあるでしょう。そうすると、品川駅を通らずに自宅に帰る可能性もあり、私と同じ条件を設定したところでこのトリガーが引かれず、エアコンのついていない寒い部屋に帰る羽目になります。
このように同じ「家に帰る20分前」でも、人によってトリガーの条件が異なります。故に自分の行動パターンを把握したうえで各自トリガー設定する必要があります。 しかしこのような複雑なトリガーの設定を世間一般の人が皆やりたいわけではありません。(私は楽しいですが)
初めに複雑な設定が必要であるならば、スマートハウスはなかなか普及しないでしょう。 ユーザーが何もしなくても、気の利いた制御をしてくれるためには、ユーザーの行動を学習して適切なトリガーを自動で設定してくれることが必要になってきます。 これに近いことを既にやっているのが、GoogleNowです。
GoogleNowのレコメンド機能
GoogleNowは、膨大な個人情報を提供する代わりに、適切なタイミングでユーザーが興味のある情報を「カード」という形で提供してくれるアプリです。※2
行動を分析して、Android端末およびAndroid Wearにカードとして情報を表示するものなのですが、Googleは少し前からスマートハウスにも応用を始めました。 昨年人工知能が付いたサーモスタットであるNestを作っている企業を買収し、NestをGoogleNowと連携させるサービスが始まっています。
Nestは、家の温度をまとめて調整してくれる装置の一種で、もともと人工知能が入っており、帰宅時間を予測して勝手に室温を適切に保ってくれるようです。これ自体でスマートハウスのハブとしての役割を担う可能性があるのですが、GogoleNowと連携することによって、位置情報によるより正確な帰宅時間の予測と、「OK,Google」による音声認識による操作が可能になったようです。
グーグルが買収したNestって何がすごいの? そもそもサーモスタットって? : ギズモード・ジャパン
GoogleNowとスマートハウスの連携はとても強力で、他の規格から一歩抜き出ていると思います。 そのうちAppleのHomeKitのようなスマートハウス規格を発表して、家電メーカーがそれを組み込み、スマホがスマートハウスのハブを担うことになるでしょう。 使っているスマホがiPhoneかAndroidかによって、家を決める時代が来るかもしれません。
最後に
個人が趣味でスマートハウス化している段階から、一般人が普及するスマートハウスを便利に利用する段階の間にあるのは、難しい設定や操作無しで快適な動作ができる人工知能ができるかどうかだと思います。 ですがスマートハウスの現状はまだ規格が出始めた段階で、家電自体がスマートハウスの規格に対応しないうちはまだまだ普及の段階ではありません。さらにスマート家電と呼ばれるものは最上位機種の付加機能として導入されると思われるので、価格が高いうちはなかなか普及しないでしょう。
よってしばらくは、自分の家の家電を自由に操作し、自分の行動パターンから適切なトリガーを設定して、一足先にスマートライフ生活を楽しんでいこうと思います。 自分が設定したとおりに家電が動くのはとても楽しいことです。
※1 正確には、私が仕事終わりでどこか別のところに遊びにいこうとするときは、必ず品川駅を使う必要があるので、この条件だと「家に帰る」のか「遊びに行く」のか分かりません。確実に「家に帰る」方向に行ったと判断するためには、品川駅から出て通勤路線上の次の駅の範囲に入るという条件を足す必要があります。さらに家に帰る方向に行ったとしても、最寄駅を過ぎて別のところに行く可能性もあります。すると最寄駅を過ぎて次の駅に行った時点で「家に帰らない」という判断をして命令を取り消す必要があります。自分の行動パターンを元にプログラミングをしているようですね。
※2 私は1年ほど前からNexus5でGoogleNowを使用し続けているのですが、既存のECサイト等にあるようなレコメンドの質とは大きく異なり、かなり私個人にあった情報をおススメしてきてくれます。 例としては、最寄駅についたら通勤に使える電車の時刻を教えてくれる、PCでGoogleMapを使っていきたい場所を調べると、行き方がカードで表示されている、普段行かないところに遊びに行くと周囲の情報を教えてくれる、興味のある分野の記事のおススメ、よくチェックしているページが更新されたら通知してくれる、1か月で歩いた距離を教えてくれるなどがあります。噂によると、設定しなくても1週間GoogleNowを使うだけで勤務地が設定されるらしいです。 それもそのはず、GoogleNowには、検索履歴、メールの中身、位置情報、GoogleMapの使用履歴など、かなり濃い個人情報を提供しています。これらをもとにビッグデータ分析や学習アルゴリズムを駆使して、私たちの興味のある情報を分析しています。