No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 1 commit ahead, 1 commit behind dreamhouseapp:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
app.json
package.json
server.js

README.md

DreamHouse サーモスタット

このサンプルアプリを使用すると、DreamHouse アプリから Ecobee3 スマートサーモスタットを制御できるようになります。デモをご覧ください。

Demo

初めに、Ecobee3 スマートサーモスタットが必要です。これを実際の空調システム(HVAC)またはモックの HVAC システムと接続します。サーモスタットをセットアップし、インターネットに接続して、Ecobee アカウントと接続します。

ローカルで実行:

  1. ngrok をインストールします。
  2. ngrok を実行します。 ngrok http 5000
  3. Ecobee のデベロッパーダッシュボードで新しいデベロッパーアプリを作成し、*Authorization Method(認証方式)*を Authorization Code(認証コード)に、*Redirect Domain(リダイレクトドメイン)*を、使用する ngrok ドメインに設定します。API key をメモしておきます。
  4. アプリを起動します。 ECOBEE_APP_KEY=<Ecobee アプリのキー> npm run dev
  5. 暖房(またはモックの暖房)をオンにします。 http://<ngrok ID>.ngrok.io/on
  6. アプリの認証が完了すると、サーモスタットの設定温度が 10 度上がり、暖房が入ります。
  7. 暖房をオフにします。 http://<ngrok ID>.ngrok.io/off

Heroku で実行:

  1. Ecobee のデベロッパーダッシュボードで新しいデベロッパーアプリを作成し、*Authorization Method(認証方式)*を Authorization Code(認証コード)に、*Redirect Domain(リダイレクトドメイン)*を、仮のドメイン名に設定します。API key をメモしておきます。
  2. アプリをデプロイします。Deploy on Heroku
  3. 新しく作成した Ecobee デベロッパーアプリの *Redirect Domain(リダイレクトドメイン)*を Heroku アプリのドメイン(例:foo-bar-123.herokuapp.com)に変更します。
  4. 暖房をオンにします。 http://<Heroku アプリの名前>.herokuapp.com/on

アプリのアーキテクチャ

このアプリケーションでは、Ecobee の OAuth API を使用して、Ecobee REST API で使用するアクセストークンを取得します。ここでは、デモ用にアクセストークン(およびリフレッシュトークン)をメモリにキャッシュします。実際の環境で使用するアプリでは、よりセキュアで、マルチユーザー対応の認証処理方法を使用する必要があります。アクセストークンを使用して現在の温度を読み取り、10 度単位で温度を上げ下げします(/on/off のどちらのエンドポイントにアクセスするかに応じます)。これは、REST API 呼び出しから Ecobee API を使用することで実行します。このアプリは、Node.js と Express で作成されており、ソースの全文は server.js ファイルにあります。