[OBSOLETE] .. Updated Open Source Ecobee Device Type and SmartApps

##[RELEASE] v0.9.13 now available for testing and general use

I have spent the majority of the last month focusing on finding a way to make the API Authentication more stable. After initial moderate success using watchdog timers, etc I realized that a completely different approach was needed. Digging around the Ecobee APIs and developer community I believe I have the right approach for the task.

My test stub that I developed to solely test the authentication model has been running without fail since February 16 (Timestamp: 2016-02-16 23:49:16 CST) with continuous polling and re-authentication taking place over that entire period (including simulated testing of failed scheduled events).

I have taken the learning from this test and incorporated them into the main SmartApp. It has been running smoothly for me now for over a week on my development branch (so much so that the wife even commented that the notifications had stopped!)

You can find these updates in the main Ecobee3 branch. If you are using GitHub integration simply update (don’t forget to update both the SmartApps and the Device Handlers). If this testing goes well I plan to release this more broadly as a 1.0 release hopefully by next weekend.

Manual updaters can find the code here: https://github.com/StrykerSKS/SmartThingsPublic/tree/StrykerSKS-Ecobee3/smartapps/smartthings/ecobee-connect.src

Here is a list of the other changes in this release (since the 0.9.0-RC6 release; those that have updated along the way will already be familiar with many of these):

0.9.13 (2016-02-28) (Beta Release)

General Changes

  • 11 changed files with 1,368 additions and 1,095 deletions
  • Overhauled authentication handling with much better stability
  • Revamped UI to give it a more familiar look that ecobee users are used to
  • Removal of certain 3PP code segments and update of Copyright Headers

SmartApp Changes

Ecobee (Connect) SmartApp

  • Completely overhauled Authentication Token Handling using recommended sequence outlined in Ecobee API documentation. This has greatly improved the stability of the API connection!
  • [Experimental] Addes support for one (1) and three (3) minute polling intervals
  • Added ability to use external devices (such as motion sensors, temperature readings, etc) to trigger additional polling events (and also trigger the watchdog)
  • Fixed issue causing the added devices to show and not configured in the Marketplace in the Mobile App
  • Added sunrise()/sunset() events to watchdog handling and to determine day/night for icons
  • Implemented off() and circulate() modes for the fan along with the appropriate state information to allow a proper return using resumeProgram()
  • Implemented support for getting the current HVAC Mode
  • Added update() and refreshAuthToken() helper functions to the Debug Dashboard

ecobee Routines Child SmartApp

  • Cleaned up UI to better reflect how users will use the features
  • Added support for triggered Routines, not just Modes
  • Added support for custom Programs (in addition to the standard Home, Away and Sleep)

Device Handler Changes

  • [All] Updated with new UI Scheme using themed icons
  • [Sensor] States for when the motion sensor is not supported
  • [Thermostat] Added full range of Thermostat Capabilities
  • [Thermostat] Added a “Last Poll” Timestamp to the UI to make it easier to determine when the most recent successful poll took place
  • [Thermostat] Added a Tile to show the current HVAC System Status (On, Off, Auto, Off)
  • [Thermostat] Added support for both day and night weather icons
  • [Thermostat] Removal of many un-needed functions (commands) that weren’t part of the standard capabilities set