Coder Social home page Coder Social logo

outsourcedguru / ecobee-app Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 300 KB

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

License: MIT License

JavaScript 52.71% CSS 0.22% HTML 47.07%
ecobee thermostat ecobee-digital-thermostats ecobee-devices smartphone

ecobee-app's Introduction

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

ecobee-app's People

Watchers

 avatar  avatar  avatar

ecobee-app's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.