...

スマートホームを実現するGoogle nestで開発環境を整える

by user

on
Category: Documents
29

views

Report

Comments

Transcript

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