Skip to content

A Node.js-based server for portables to view/update Ecobee digital thermostats remotely

License

Notifications You must be signed in to change notification settings

OutsourcedGuru/ecobee-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ecobee-app

A Node.js-based server for portables to view/update Ecobee digital thermostats remotely

This application server runs in Node.js, serving up an interface for portable devices like smartphones. The intent is to control one or several Ecobee digital thermostats.

ecobee

In order to use and appreciate any of this, it is expected that you 1) own an Ecobee thermostat, 2) have created/registered an account on their Ecobee.com website, 3) have joined their https://www.ecobee.com/developers site by clicking the Become a Developer button and 4) have registered one or more Ecobee devices into the same scope. Once done, you would then have access to the Developer tab on their online portal. This is a requirement for generating a necessary appKey for the /config.js file.

It's good to know what style of Ecobee device that you have. Mine are of the EMS Si variety so my /config.js file's scope variable indicates "ems". If your Ecobee is more of the consumer style (rather than business-style like mine), it will be necessary to change this scope to match. Their developer website would give you this guidance of course.

Security

The system is probably a little too secure in that each server->client instance requires a PIN-based credentialing step. The process per-session looks like this:

  1. If it's not otherwise running, start the server with "npm start" from the program directory
  2. Visit the server's address, for example, http://servername:3000 from your smartphone or from the same computer as the server (http://localhost:3000 in this case)
  3. Note the PIN request number issued on this screen
  4. From any computer, log into the Ecobee.com website with your email/password from an earlier registration you've hopefully done
  5. Visit the App tab from their portal and enter in the PIN request
  6. Authorize the application to run
  7. Back on the web session from step 2 above, select the Complete Link link at the bottom of this screen
  8. You should see a list of Ecobee thermostats
  9. Select one to see its current values and optionally, to control its temperature

Installation

Here are the instructions for installing the application server.

  1. git clone https://github.com/OutsourcedGuru/ecobee-app.git
  2. cd ecobee-app
  3. npm install
  4. Log into your Ecobee.com portal, click the Developer tab, and create a new application

developer portal

  1. Copy/paste the API key into your local /config.js file's apiKey value
  2. In the EMS (or similar) main tab, navigate to the Thermostats section and note the scope path

scope

  1. Update your /config.js file's scopePath value.
  2. npm start
  3. From the same or another computer, visit http://servername:3000
  4. Note the PIN request number

getpinscreen

  1. Back in the Ecobee portal's EMS (or similar) tab, navigate to My Apps, enter this PIN and click the Install App button, authorizing this app

installapp authorize

  1. Back in the application session, click the Complete Link button at the bottom of the screen
  2. If successful, you should see a collection of thermostats that are registered against your account and in the scope you found earlier on their portal.

thermostats singlemanual

Donate Cryptocurrency
eth-receive btc-receive
Ethereum Bitcoin

About

A Node.js-based server for portables to view/update Ecobee digital thermostats remotely

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published