Upload
doantuyen
View
226
Download
0
Embed Size (px)
Citation preview
PAGE 1 OF 8 © 2015 BRILLIANTSERVICE CO.,LTD.
IoTを実現する Google Nest APIでスマートホーム開発環境を整える
株式会社ブリリアントサービス
金 田 浩 明
nest とはサーモスタットのように人々に愛されていない器械に焦点を当て、これをリデザインし合理的なデザインかつ利便性の向上を果たした次世代のサーモスタットである。現在 Nest Developer Programとして nestを操作するための APIが公開されており、本文書では nest についての説明を日米の冷暖房文化の違いを交えて説明した上で開発環境の構築方法について解説したい。
nestはサーモスタットである
Nest Learning Thermostat(以降 nest)とはネスト・ラボが開発したサーモスタットである。ネスト・ラボとは、アップルに在籍し、iPod の開発チームとして知られるトニ・ファデルが共同創業者として立ち上げた会社として知られている。
nest はサーモスタットの再発明と言っても良いだろう。いままで当たり前に存在していたものだがそこにインターネットと各種センサーを結びつけ、新たな価値を見いだしたのである。
といっても日本に住む我々にはいまいちピンとこない部分もある。まずは「サーモスタット」とはなんであるかを説明し、さらに米国と日本の冷暖房事情について説明したい。
サーモスタットとは
サーモスタットとは、温度を調整する装置である。
“工業生産,実験などの操作を一定温度のもとで行うため,また住宅の室温を快適にするため,特定の個所,容器の温度を長時間,一定に保つようにする装置。またこれを備えた容器 (恒温槽) 。気体 (トルエン) ,液体 (水銀) などの熱膨張を利用,またはバイメタル,サーミスタを用い,温度が変ると継電器でクーラーまたはヒータを作動させる。”
出典|ブリタニカ国際大百科事典
つまり、熱膨張を利用してスイッチを ON にしたりOFF にしたりして、温度調整をする器械、これがサーモスタットなのである。
米国の冷暖房事情
アメリカの一般家屋は日本と違い、全館冷暖房(セントラルヒーティング)が一般的で、日本でよくみられるエアコンはほとんど使われない。多くの家庭では地下室などにガス炉がありここで暖めた吸気をファンで各部屋に運ぶ仕組みになっている。壁や天井、床下にダクトが張り巡らされており、部屋の床面や天井に吹き出し口がある。人がいない部屋もすべて暖房で暖められる仕組みである。冷風も同じく、ファンで各部屋に送られる。
そのため、温度の設定は家屋のどこかに設置されたサーモスタットを通して行う。このサーモスタットは古いタイプだと ON と OFF、それに温度の設定しか行えない。温度の設定も小さなバーを動かす原始的なもので、微妙な温度設定が難しいものもある。新しいタイプだと時間が来たら温度を上げる・下げるといった操作が出来るものもあるが、あまり使い勝手のよいものではない。
そもそも電気代の安い米国では 24 時間つけっぱなしという家庭も多いようである。
日本の冷暖房事情
日本では全館冷暖房がある家は少なく、多くは各部屋にエアコンと室外機をセットで設置する場合がほとんどである。エアコンはそれぞれ独立しており、各部屋に置かれたリモコンで操作するのが一般的。人がいる部屋だけを暖める事が多く、出かけるときにはこまめにエアコンの電源を切るのが普通である。そのため日本では「サーモスタット」といわれてもピンと来ないのだ。
PAGE 2 OF 8 © 2015 BRILLIANTSERVICE CO.,LTD.
IoTの本命、スマートホーム
近年注目を集めている IoT(Internet of Things)の本命といえば、「ウェアラブルデバイス」「車」そして「スマートホーム」である。現在この3つが IoT の本命と有力視されている。
その「スマートホーム」に Google が本気を見せている。Google は 2014 年 6 月、ネスト・ラボを買収。買収額はなんと 32億ドルだ。現在では「Works with Nest」として nestをスマートホームの「ハブ」として位置づけている。nest のサーモスタットを使えば、Google Nowを通じて温度調節が出来るようになる。
今まで、スマートホームの普及の上で大きな問題は、家電メーカーごとに定められた仕様により、同じメーカー間でしか連携が出来ないというフラグメンテーションが発生している点があげられる。nest は家電メーカー発ではないためそのようなことはなく、普及を後押しするだろう。
ただし、前述の日本の冷暖房事情の通り、各部屋にエアコンを設置する日本家屋の文化からすると、Nest がそのまま日本で発売され普及するにはしばらくかかりそうである。
日本での普及は見込めないにしても、欧米諸国でヒットするポテンシャルを秘めているスマートホームのnest は今後欧米で急速に普及する可能性があるため、海外市場を見据えて今からスマートホームの動向もしっかりと押さえておきたい。
nest開発にあたっての情報源
2014年 6月、ネスト・ラボは「Nest Developer Program」を発表。nest 製品とサードパーティ製の製品やサービスとの連携を可能にした。
Nest APIを使用し、nestの情報を取り出したり nestをコントロールしたりする事が可能になったのである。
弊社では実際に Nest Learning Thermostatを購入しており、今回筆者は実機を試してみる機会を得た。早速開発環境を構築したので解説したい。
今回 nestでの開発環境を構築するにあたり日本語の情報源はほとんど存在しない。素直に nestのホームページで情報を得るのが得策であろう。以下に参考にしたURLを記載しておく。
https://developer.nest.com/documentation/cloud/nest-‐api-‐intro
nestの能力
以下に nestの仕様について記載する。nestには独自の人工知能が搭載されており、家に人がいる時間帯を自動で学習する。そのためのセンサー類が搭載されている。
LCDディスプレイ 320x320ピクセルの丸形ディスプレイ
対応言語 英語・フランス語・スペイン語
センサー類 温度センサー
湿度センサー
近接場活動センサー
遠距離場活動センサー
光センサー
Wi-‐Fi 802.11b/g/n @ 2.4GHz
802.15.4 @ 2.4GHz
nestを起動する
nest は基本的に既存のサーモスタットの置き換えである。交流 24v のサーモスタットに対応している。そのため交流 24V を電源として動作する。HVAC(冷暖房空調設備)自体の内部構造に詳しくはないが、HVAC ではおそらく交流 24V の接触機を使い交流 120V(米国)
PAGE 3 OF 8 © 2015 BRILLIANTSERVICE CO.,LTD.
を ON、OFF する仕組みが一般的ではないかと思われる。
nest の裏側を見るといくつもの端子がある。使用中のサーモスタットを取り外し、サーモスタットに繋がっていたケーブルをこの nest裏側の端子に接続変更すれば設置は完了である。次の URL より、自宅の冷暖房設備が nestに対応しているか確認する事が出来る。
https://nest.com/thermostat/installation/#works/?mode=buy
また、wiki を見ると一般的なサーモスタットの配線に関する情報を得る事が出来る。
http://en.wikipedia.org/wiki/Thermostat
RH(24 volt HEAT)および W(Heat)に 24VACを供給すると、nestの内蔵バッテリーに電源が供給される。
しかしながら、日本で nestを充電し起動するための交流 24V を得る事自体が以外に難しい。Amazon で購入出来るものはほとんどが AC/DC アダプタであり、AC/AC アダプタ、それも 24VAC のものとなると、私の知る限りでは下記の製品のみである。
http://www.amazon.co.jp/gp/product/B001876Y0Y/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B001876Y0Y&linkCode=as2&tag=emboss-‐22
しかし、単純に nest を起動してみたいのであれば、nest の電源を入れるだけであれば背面にあるサービス用 USBポートを使えば良い。
https://nest.com/support/article/What-‐s-‐the-‐mini-‐USB-‐port-‐on-‐the-‐back-‐of-‐the-‐display-‐for
上記 URL にある通り、nest は通常 HVAC のケーブルから給電するが USB ポートを使用すれば迅速に充電する事が出来るのである。
nest開発環境構築
それでは実際に nestを操作するサンプルアプリケーションを動作させてみる。今回の目標は、nest の提供する iOSサンプルを動作させる事である。
日本では nestを HVAC へ接続する環境が気軽に準備出来ないため、nest 実機は使用せず、シミュレータでアプリケーションを実行する。
nest仮想環境の準備 下記 URL へアクセスし、Nest Developer Tool というchromeプラグインを導入する。
https://chrome.google.com/webstore/detail/nest-‐developer-‐tool/dcmagkgecphmneocilhoihpoibfddfjl
https://home.nest.com/
を開く。まだ nestのアカウントを作成していないのなら、Sine upのリンクより E-‐mailとパスワードを指定してアカウントを作成する。
ログイン後、Chrome のメニューより「その他ツール」>「デベロッパーツール」を開く。
PAGE 4 OF 8 © 2015 BRILLIANTSERVICE CO.,LTD.
タブより Nestを選択。
Thermostatsの+ボタンを押してサーモスタットを追加する。
これで、アカウントに対して nestを追加出来た。
nestクライアントの作成 まず、前提知識として Nest API がどのように動作するか確認する。
ü サーモスタットからのデータは nest のサーバーにアップロードされる。
ü Nest APIが提供されており、サーモスタットにはREST、Firebaseでアクセス可能。
ü Developer Serviceを介して Nest APIにアクセスすることも、iPhone などから直接 Nest API を呼ぶことも可能。
ü OAuth2.0で認証する。
https://developer.nest.com/clients/
よりクライアントを作成する。最初は次の画像のようにクライアントは作成されていない。REGISTER NEW CLIENTより新しいクライアントを作成する。
PAGE 5 OF 8 © 2015 BRILLIANTSERVICE CO.,LTD.
Clientの説明とパーミッションを設定。* の欄は必須なのでここだけ埋めいく。また、今のところテスト目的なので Indivisualで設定。Select up two categories も任意に選択。Support URLは任意に記載としておく。テストなのでパーミッションはすべて ON の read/write にしておく。説明も適当に記載。
注意点として「OAuth Redirect URI(Leave blank for PIN-‐based authorization)」任意の https:// の URLを記載する。記載がないと OAuth2の認証処理が動作しない。
iOSサンプルのダウンロードと設定 今回の iOS実行環境は以下の通りである。
ü mac OS X 10.10.1(yosemite)
ü Xcode 6.1.1
それでは、サンプルを入手する。
https://developer.nest.com/documentation/cloud/ios-‐nestdk
より iOS-‐NestDK-‐master.zip をダウンロードして展開する。
iOS-‐NestDK.xcodeproj を実行する。このアプリはサーモスタットのコントロールのデモンストレーションである。Redme に記載されている通り、まず、Constants.mを 開 き 、 `NestClientID`, `RedirectURL` 及 び `NestClientSecret` を
https://developer.nest.com/clients/
に表示されている値に書き換えて実行する。
nestをコントロールしてみる
それでは実行しよう。次のような画面が表示されれば成功である。
次にブラウザで https://home.nest.com/を開いてみる。
PAGE 6 OF 8 © 2015 BRILLIANTSERVICE CO.,LTD.
現在の温度は華氏 70度、設定温度は 58度である。iOSの画面と同じ値を表示している。
ではここで iOSから設定温度を 80度に設定する。
すると、直ちに nestにも反映される。
今度は、温度が下がってきた場合をテストしてみる。Nest Developer Toolで室温が華氏 82度になったと仮定し設定を行う。
すると、iOS 側にも自動的に反映され、室温が 82 度(摂氏 27度ぐらい)になる。
PAGE 7 OF 8 © 2015 BRILLIANTSERVICE CO.,LTD.
総括
nest で出来る事 Nest Learning Thermostat では nest API で次の操作が行える。
ü 現在の温度を確認
ü 設定温度の表示および設定
ü ファンのタイマー設定
ü 温度モードの表示及び設定
ü 湿度の確認
ü オンライン状態と最後の接続情報を表示
最後に これで nest を自由に操作出来るようになった。なにかと面倒な OAuth2 処理であるが、今回の検証ではnest のサンプルプログラムが充実しており、気軽に始められることが判った。今回は触れなかったがnode.js を使用した web アプリも試し、こちらも iOS同様サンプルがしっかりしていたため、すぐに webサービスを開発しはじめることも可能であろう。
そうなるとあとは、あなたが nest で何をするかだ。例えばメルセデス・ベンツでは車の中から nest で空調を制御出来る。ワールプールの洗濯機は nest と通信し、出掛けているならより低い温度で長時間乾燥する事で電気料金を節約する。このように車と家電、家電と家電が連携し、更なる価値を創造する事が出来るのである。生活をちょっと便利にするスマートホーム。是非あなたの手ですばらしいサービスを造り上げてほしい。
株式会社ブリリアントサービス 大阪開発部 金田浩明
〒530-0047 大阪市北区西天満二丁目 6番 8号 堂島ビルヂング 8階 TEL:06-6363-5735 FAX:06-6363-5736 https://www.brilliantservice.co.jp/contact/
PAGE 8 OF 8 © 2015 BRILLIANTSERVICE CO.,LTD.
免責事項
本資料に掲載された情報は、より多くの方々に nest を知っていただき、技術に触れ、役立てて頂くことを目的としたものです。
本資料に掲載された情報の利用にあたっては各自の判断に基づき行うものとし、それによって生じた一切の損害について弊社および情報提供者は一切の責任を負いません。