nest開発環境構築

nestって「ねぐら」って意味なんですね。心地よいねぐらを作ってくれるって事か。

先日のnestお勉強編にて、アメリカのサーモスタットの必要性と、しかし文化の違い?からかnestは日本において出番が少ないという状態なのはよくわかりました。そもそも、日本で24VoltageACのサーモスタットなんて代物は存在しない??少なくとも我が家にはない。Googleが買収する前から、「自分の家ではつかえねぇなぁ・・・」てことでスルーしてたんですよね。でもなぜか今nestが会社にあってですね、ほんのちょっと触る機会がありまして、再びワクワクしております。数年ぶりに「自宅スマートホーム化計画」が自分の中で再燃中、是非とも使えるようにしてみたいわけですよ。

で、最終的にやりたいのは、「ベンツのように車が自宅に近づいたら暖房or冷房ON」をしてみたいという、それだけなのです。まあ、nestに対応した冷暖房があるわけではないので、実際に実現はできませんが。実際は我が家であれば「IRKit」のほうがやりたいことを実現できるのだけれど。

というわけでnestは持っていないし買っても設置出来ないわけですから、ここは実機無しで開発環境を構築して、サンプルアプリでも動かしてることとしましょう。

まずは、クロームのプラグインを導入します。

nest_developer_tool

nest_add_extension

https://home.nest.com/を開きます。

クロームのメニューより その他ツール>デベロッパーツール を開きます。

nest_from_menu

タブのNestを選択

nest_developer_tool_shot

Thermostatsの+ボタンを押してサーモスタットを追加します。

nest_add_themostat

ではサンプルを動作させてみたいと思いますが、その前に、nestアプリで動作させてみましょうか。iPhoneのApp Storeにてnestで検索するとすぐ見つかります。

IMG_0208IMG_0209IMG_0210

すると何の事はない、単にWebと同じ画面が開くだけのアプリのようです。

気を取り直してサンプル動作です。さて、事前知識としてnest APIがどのように動作するか確認します。

  • サーモスタットからのデータはnestのサーバーにupされる。
  • Nest APIが提供されており、サーモスタットにはREST、Firebaseでアクセス可能。
  • Developer Serviceを介してNest APIにアクセスすることも、iPhoneなどから直接Nest APIを呼ぶことも可能。
  • OAuth2.0で認証するようだ。

ではSample Codeの一番上にあるThermostat Controlから試してみます。

control-jquery-master.zip をダウンロード、展開。

まずはツール類をダウンロード、インストール。

node.jsをインストールします。

ビルドにはそこそこ時間がかかります。次にバージョンを確認

上記バージョンを有効にする

パスを設定する。

反映して、バージョン確認

ちなみにyosemiteでbrew updateがうまう行かない場合、次の記事および次の記事で無事解決しました。

つぎにYeomanです。Yeomanについてはこちらの記事を参考。

Yeomanはnode.jsのパッケージ管理コマンドであるnpmコマンドを使用してインストールします。こちらのページを参考にインストールしましょう。

展開したサンプルのフォルダに入ります。 例えば以下のように。

次に、展開したサンプルの環境構築を行います。bower installを行うとbower.jsonに記載されているdependenciesのとおり、ライブラリが構築されます。

jqueryとjquery-cookie、それにfirebaseが導入されるようですね。それではbower installしてみましょう。

次にnpm installします。npm installをオプション無しで実行すると、package.jsonの内容に従って、packageをインストールします。

ではインストールします。

次に、https://developer.nest.com/clients/より環境変数を取得します。

空っぽなので作成します。

nest_client

Clientの説明とパーミッションを設定。* の欄は必須なのでここだけ埋めていきます。今のところ個人用なのでIndivisualで設定。Select up two categoriesも適当に選択。Support URLは適当に記載。

テストなのでパーミッションはすべてONのread/writeにしていきます。説明も適当に記載。

nest_Create_Client

作成されたCliantのCliant IDとClient Selectを環境変数にセットします。

では、サンプルを実行してみましよう。

エラーが出ます。プロジェクトにgruntがインストールされていない?下のコマンドを打ち込みます。

再度サンプルを実行してみましょう。

こんどはうまく動きました。でも上記の通りエラーが出ています。

足りないモジュールをインストールして再度gruntを実行します。

gruntを実行してlocalhostを開くと、認証プロセスに遷移します。

nest_Works_with_Nest

nest_login_Works_with_Nest

nest_pin_code

ログインするとPincodeが表示されます。しかし、ここから、どうすればいいのかわかりません。

どうすればいいんだ!そうこうしているとそろそ出勤時間です。続きはまた明日

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です