My Ecobee Device

The Unofficial SmartThings Blog
Jump to: navigation, search


This device is Ecobee approved badge YVESR.png
ecobee4 Alexa-Enabled Thermostat with Sensor, Works with Amazon Alexa

ecobee4 Alexa-Enabled Thermostat with Sensor, Works with Amazon Alexa

Brand:Ecobee

Models: Ecobee4, Lite, Ecobee3, Smart-Si, Smart-02, EMS

Type:smart Thermostat

Protocol:Wi-Fi

Link to ecobee website [1]


Device Type Author:Yves Racine

ST Community handle http://community.smartthings.com/users/yvesracine/activity

Company Link: http://www.ecomatiqhomes.com#!home/mainPage


Contents

Notes to MyEcobee Device Users - Contribution is now required

MyEcobee device and related smartapps have required thousands of hours of develpment & testing efforts to build (around 6000 lines of code just for the device), so a minimum financial contribution is now required to get the latest code.


You can now download MyEcobee device's code at my store:

'http://www.ecomatiqhomes.com/store

Technical support packages are also available.

If you want to contribute more, here is the paypal link below.

https://paypal.me/ecomatiqhomes

Github integration for the 'free' apps

For the related "free" smartapps, refer to this brief tutorial on how to integrate ST with github (1st post):

https://community.smartthings.com/t/faq-github-integration-how-to-add-and-update-from-repositories/39046

GitHub Settings:

Owner: yracine

Name: SmartThingsPublic

Branch: master

All of my smartapps are at the end of the "new (only at github)" window.

You can also copy and paste (manually) them from my github.

https://github.com/yracine/device-type.myecobee/tree/master/smartapps

In any case, you'd need to save & publish at the end.



Article(s) in the media

  http://m.imore.com/using-ecobee-3-smartthings
  http://www.connectedly.com/ecobee3-review
  http://medium.com/@KeenHome/smartthings-and-smart-vents-5a61234fa7a3#.19lf2bqz6


Prerequisites

  • ecobee thermostat connected via wi-fi to ecobee (ecobee3, Smart-SI, Smart, EMS)
  • SmartThings hub fully operational
  • Some ST basic skills to add custom DTH and smartapps (see troubleshooting section, item 1)

Information

Functionality: Supports regular ST thermostat capabilities and all other ecobee features & commands that enable you to control other devices connected to ecobee such as humidifiers, dehumidifiers, HRV/ERV (amongst others).


  • Support of all models of ecobee thermostats (ecobee4, ecobee lite, ecobee3, EMS, Smart-02, Smart-SI).
  • Support of US and metric systems (Celsius, Farenheit)
  • Support of many ecobee commands through their standard APIs.
  • Here is the complete list of commands:


   command "levelUp"
   command "levelDown"
   command "setTemperature", ["number"]
   command "awake"
   command "away"
   command "present"
   command "home"
   command "asleep"
   command "setFanMinOnTime"
   command "setCondensationAvoid"
   command "createVacation"
   command "deleteVacation"
   command "getThermostatInfo"
   command "getThermostatSummary"
   command "iterateCreateVacation"
   command "iterateDeleteVacation"
   command "iterateResumeProgram"
   command "iterateSetHold"
   command "resumeProgram"
   command "resumeThisTstat"
   command "setHold"
   command "setHoldExtraParams"
   command "auxHeatOnly"
   command "setThermostatFanMode"
   command "dehumidifierOff"
   command "dehumidifierOn"
   command "humidifierOff" 
   command "humidifierAuto
   command "humidifierManual"
   command "setHumidifierLevel"
   command "setDehumidifierLevel"
   command "updateGroup"
   command "getGroups"
   command "iterateUpdateGroup"
   command "createGroup"
   command "deleteGroup"
   command "updateClimate"
   command "iterateUpdateClimate"
   command "createClimate"
   command "deleteClimate"
   command "setClimate"
   command "iterateSetClimate"
   command "controlPlug"
   command "ventilatorOn"
   command "ventilatorAuto"
   command "ventilatorOff"
   command "setVentilatorMinOnTime"
   command "quickSave"
   command "setThermostatSettings"
   command "iterateSetThermostatSettings"
   command "getEquipmentStatus"
   command "autoAway"
   command "followMeComfort"
   command "getReportData"
   command "generateReportRuntimeEvents"
   command "generateReportSensorStatsEvents"
   command "getThermostatRevision"
   command "generateRemoteSensorEvents"
   command "getRemoteSensorUpdate"
   command "getTips"  
   command "resetTips"     
   command "getAlertText" 
   command "setHeatingSetpointRangeHigh"
   command "setHeatingSetpointRangeLow"
   command "setCoolingSetpointRangeHigh"
   command "setCoolingSetpointRangeLow"
   command "setHeatingSetpointRange"
   command "setCoolingSetpointRange"


Device Type: https://github.com/yracine/device-type.myecobee

Instructions for My Ecobee Device installation (readme): http://github.com/yracine/device-type.myecobee/blob/master/README.md

Look & Feel

In Farenheit


MyEcobee Farenheit P1.pngMyEcobee Farenheit P2.pngMyEcobee Farenheit P3.pngMyEcobee Farenheit P4.pngMyEcobee Farenheit P5.png



In Celsius

MyEcobee Celsius P1.pngMyEcobee Celsius P2.pngMyEcobee Celsius P3.pngMyEcobee Celsius P4.png

MyEcobeeGraph.png


UI Fields

Upper section of the multi-tile

  • Current indoor temperature (in Celsius or Farenheit) as shown within the circle (
  • Current indoor Relative Humidity value (secondary key in multi-tile)
  • Thermostat's Operating State appears when it changes.

Lower section of the multi-tile

  • Name of the thermostat
  • Current hvac mode (press to change to cool, heat, auto, off)
  • Current fan mode (press to change to on, auto)
  • Current heatingSetpoint with up and down arrows to control it
  • Current coolingSetpoint with up and down arrows to control it
  • The type of Program (Program, Hold or Vacation)
  • The Program's HeatingSetpoint
  • The Program's CoolingSetpoint
  • Set Program Mode (you can tap to switch either to Home, Sleep, Awake, Away, or QuickSave)
  • The current Program's Mode
  • A " Resume Program" icon to press if desired
  • Refresh tile
  • Hold Event Message if any
  • Current FanMinOnTime (minimum fan time in minutes per hour)
  • Current Equipment Status (what is currently running )
  • Alerts if any
  • Weather Date and time
  • The current weather conditions
  • The current outdoor temperature
  • The current outdoor Relative Humidity
  • The Probabilty of Precipitation (PoP) in %
  • a graph showing the current runtime stats (Daily, Average Weekly, Average Monthly) according to the current thermostat mode (cool, heat).

It also displays the heating/cooling setpoints, the indoor & outdoor temperature for trend analysis.

Why ecobee vs. other connected thermostats?

There have been a lot of threads in the ST community forum about this topic. The answer is really dependent on your use cases/requirements.


Ecobee

  • You can not only control my heating/cooling setpoints, but also control your humidifier/dehumidifier/HRV/ERV.
  • You can also define climates (programs) to control your heating/cooling setpoints AND your fan settings (auto/manual or circulate for x min/hour) throughout the day.
  • Based on ecobee's schedule, you can easily change your thermostat & fan settings every 15 minutes if needed.
  • You can then rely on ecobee's schedules and only use ST to let ecobee know when your family is present or away from home, so that there is no overlap between the 2 systems. Most of the ST thermostats (even the Nest) connected to the home automation platform lose their scheduling capabilities. With MyEcobee device you can make SmartThings and ecobee work together for more comfort and energy savings at your home!
  • If you have multiple zones in your home, you can install several thermostats and group them for easier settings management for vacations, or just general scheduling .
  • With the ecobee4/ecobee3/lite, you can buy remote sensors that you place in some strategic rooms in your house to average out your temperature, and get better comfort in colder or hotter places in your home.

Here are the main pros/cons.


Pros:

  • Lots of features (as stated above)
  • Scheduling capabilities (you don`t need to create HA scripts to control its schedules)
  • Ability to control complex HVAC systems (2 or even 3-stages heat components and 2-stage cool components)
  • Regular firmware upgrades for bug fixes/new enhancements
  • Good fit for large apartments /houses
  • Smart Heating/Cooling Recovery (pre-heat/cool your environment before the actual programed schedules)
  • Capable of handling multiple zones & grouping features (for vacations,schedules, and other settings).
  • Very responsive to any types of commands (no delays)
  • Ecobee has a portal where one can see her/his heating/cooling stats and compare her/his energy consumption vs. other users. It's called HomeIQ.
  • Ecobee does not have very strict confidentiality rules such as Google/Nest. You are allowed to download your data and manipulate it which simplifies any integration with a home automation hub such as ST.
  • Rich APIs that allow you to virtually control all aspects of your ecobee thermostat: you can create a temporary 'hold', resume the scheduled program, control any device connected to ecobee (hrv/erv, humidifier, etc.), create a program/vacation, modify the program/vacation, etc. Nest APIs don't allow most of these features as they are very limited.

Cons

  • Expensive
  • No native support (requires cloud-to-cloud integration)


Other ST connected thermostats (whether zigbee or z-wave)


  • Contrary to ecobee, z-wave and zigbee thermostats are totally dumb when connected to a home automation hub. These thermostats then lose their scheduling capabilities... So, you need to re-program your schedules using different HA scripts which can be a pain if you have very precise scheduling requirements (in a large home for example).
  • It may be because some z-wave thermostats use batteries, but it is not as responsive to commands as an ecobee thermostat.
  • If you want to change any settings remotely, it can take a while before the thermostat registers the command and executes it. Sometimes, it does not react at all which is kind of frustrating.

Pros:

  • Cheap, some can be found for around $50 on ebay
  • Some z-wave thermostats don't need a C-wire, and can work on batteries (they can drain quickly after 3-6 months according to your usage)
  • Native support from the ST Hub

Cons:

  • No scheduling capabilities when connected to a Home Automation hub
  • Limited features (not able to control other devices such as humidifier/dehumidifier/HRV/ERV)
  • Not as responsive (especially for battery-powered thermostats)
  • Not able to resume your program (Nest, z-wave & zigbee thermostats)
  • Not able to access to your history data (no equivalent to ecobee's HomeIQ)

Configuration


Item 1) Follow the readme file's step by step instructions under (setup time = around 5 min)

.................................................................................................................................

http://github.com/yracine/device-type.myecobee/blob/master/README.md



.................................................................................................................................

Item 2) To expose your proprietary remote sensors to ST as individual temp and motion sensors

.................................................................................................................................

If you have the ecobee's proprietary remote sensors, you may want to expose also its remote sensors to ST as individual temp and motion sensors (setup time = 2-5 min.)

However, please note that the 3.6 firmware is required for occupancy updates.

Also, ecobee motion sensors don't allow real-time events.

See http://thingsthataresmart.wiki/index.php?title=Ecobee3RemoteSensorInit

.................................................................................................................................

Item 3) Configuration under SmartThings

.................................................................................................................................

In order to be able to better control your ecobee thermostat(s) under ST, there are a lot of smartapps available. (setup time = around 2 to 5 min. per smartapp)


See the 'ecobee' smartapps' description under:

http://thingsthataresmart.wiki/index.php?title=Category:Unpublished_SmartApps

And, the code is located under:

http://github.com/yracine/device-type.myecobee/tree/master/smartapps

Here are some basic explanations on how to maximize your ecobee thermostats' use under ST.

Most of my Ecobee smartapps have been developed with this principle in mind: ecobee is responsible for the basic scheduling (as it's more reliable and also accessible from the physical thermostat anytime) and ST is responsible for managing exceptions to the schedules that you define (i.e., 'Away' or 'Home' mode switch as an example).

So, here are the suggested steps for setting up ecobee and ST, so that they work together for your comfort.

.................................................................................................................................

Item 3a) Create your schedules (climates or programs) at the ecobee portal

.................................................................................................................................

Go to www.ecobee.com, register, and set your climates based on your regular schedules (ex. 7h-8h am 'Awake', 8ham-5hpm 'Away' for work, 5h00-10h30 pm 'Home',10h30hpm-7h am 'Sleep' on weekdays, define also your schedules for the weekends).


With ecobee, you can not only set up your heating/cooling setpoints, but also your fan settings in your climates (fan set to 'On', 'Auto', and 'Circulate' with the fanMinOnTime settings which allows you to set a minimum fan time in minutes per hour).


As your preferences may be very different from mine, I won't recommend here any specific cooling/heating settings. It really depends if you put more emphasis on your comfort or your savings...It's a delicate balance between the 2 dimensions that your may need to fine tune for you and your other family members (if any).


.................................................................................................................................

Item 3b) Set up the holdType parameter

.................................................................................................................................

For its configuration, refer to step 7 in the REAME at the github:

   https://github.com/yracine/device-type.myecobee

To avoid overlaps between ST and ecobee, one needs to use the holdType input parameter to define the type of 'hold' (exception to the basic scheduling).

One may want to use the 'nextTransition' holdType, so that a 'hold' stays only active till the next transition on the ecobee schedule.

By default, the holdType is indefinite (permanent hold). The holdType input parameter will apply to ALL your setpoint overrides to the usual program at ecobee.

Climate changes take precedence over temporary holds. You may need to resume the thermostat prior to set up a new temporary hold with a specific setpoint or fan setting.

For more detail on holdType, please refer to the ecobee documentation:

   http://www.ecobee.com/home/developer/api/documentation/v1/functions/SetHold.shtml

You can also set the holdType parameter with the following input:

   holdHours: x where x is the number of hours for the temporary hold


To set up a start&end dates and some start & end times for a future hold, use the following format in the line dedicated for the input parameter:

   startDate: YYYY-MM-DD, startTime: HH:MM:SS (in 24hr format), endDate: YYYY-MM-DD endTime: HH:MM:SS (in 24hr format) 

Only the startDate is mandatory, the other fields have the following default values:

   startTime: 00:00:00
   endDate: 2035-01-01
   endTime: 23:59:59

Examples of DTH's input parameters for the holdType setting

   // indefinite/permanent hold
   indefinite
   // temporary hold till next transition (or climate settings) according to ecobee's scheduling
   nextTransition
   // 1-hour temporary hold
   holdHours:1                                        
   // temporary hold that will start on 2017-08-01 at 00:00:00 and will end on 2035-01-01 at 23:59:59 in local time (use of default values above)
   startDate:2017-08-01                             
   // temporary hold that will start on 2017-08-01 at 08:00:00 and will end on 2035-01-01 at 23:59:59 in local time
   startDate:2017-08-01, startTime:08:00:00
   // temporary hold that will start on 2017-08-01 at 08:00:00 and will end on 2017-08-02 at 23:59:59 in local time
   startDate:2017-08-01, startTime:15:00:00,endDate:2017-08-02
   // temporary hold that will start on 2017-08-01 at 08:00:00 and will end on 2017-08-02 at 15:00:00 in local time
   startDate:2017-08-01, startTime:15:00:00,endDate:2017-08-02,endTime:15:00:00

For those of who use the DTH in a smart rule engine like SmartRules/CoRE/webCoRE.

Please note that you can specify the holdType parameter as a map in any calls to the setClimate() and setHoldExtraParams() commands in the DTH.

You need to follow the ecobee syntax described here:

   http://www.ecobee.com/home/developer/api/documentation/v1/functions/SetHold.shtml


Examples of smartapp calls:

    // set Away comfort settings/program at ecobee with an indefinite hold
   device.setClimate("",'away',[holdType:'indefinite'])
    // 2-hour hold based on Away comfort settings/program at ecobee
   device.setClimate("",'away',[holdType:'holdHours',holdHours:'2'])
    // temporary hold that will start on 2017-08-01 at "23:15:50' and will end on '2017-08-02' at '08:59:59' in local time
   device.setHoldExtraParams("",75,72,"",[holdType:'dateTime',startDate:'2017-08-01',startTime:'23:15:50',endDate:'2017-08-02',endTime:'08:59:59'])
   // For successive holds to take into effect, you may need to resume the thermostat 
   // [call device.resumeThisTstat()] prior to set up  other temporary holds or 
   // call setThisTstatClimate() which will only keep one active hold at a given time.
   device.setThisTstatClimate('away')

.................................................................................................................................

Item 3c) Choose some of the following smartapps for your requirements

.................................................................................................................................


Here is a list of smartapps that you can use in progressive order of complexity. The most complex smartapps are only needed if your requirements are high.


(+) Use the ecobeeChangeMode smartapp for setting your thermostat to 'Away' or 'Home'

This smartapp sets the ecobee thermostat to 'Away'/'Home' mode according to the corresponding ST hello mode changes.

So, you can define two instances of the same smartapp: one for the 'home' ST Hello mode that will set your ecobee thermostat to 'Home' when you're back from work for example, and another one for 'Away' for the 'Away' ST hello mode when you leave your home (you'd need to rename the smartapp at the last screen).


You can also use the same smartapp for your custom ST hello modes (routines) & custom ecobee climates if any.


(++) Use both AwayFromHome and ecobeeResumeProg for more complex use cases


If you want more accuracy/granularity when setting your thermostat to 'Away' , you may want to use the 'AwayFromHome' smartapp. This smartapp allows you to more precisely define the presence and motion sensors required to set your ecobee thermostat to 'Away'.

This smartapp was initially created because the ST hello mode changes were not always reliable (now it's much better). The smartapp can also trigger specialized actions when leaving your home than what ST can offer: turning off the lights, locking my doors, arming my alarm system (it needs to be connected to ST), arming my cameras, etc.

On the opposite side, ecobeeResumeProg resumes the ecobee's climate (or program) when one of the predefined presence sensors is back home, or when there is a ST Hello Mode change, or when one of the motion sensors specified in the smartapp detects movement in your home.


(+++) Use MonitorAndSetEcobeeTemp if you want even more control over your ecobee thermostat


The smartapp allows you to set up some 'more or less heat' and 'more or less cool' thresholds for increasing/decreasing the heating/cooling setpoints based on an outdoor temp sensor (could also be a virtual weather station).and a user-provided adjustment setting (ex. +/- 5°F) during the day.


The average temp calculation algorithm has been added (similar to ecobee3's follow me feature), but you can now use any of your ST-connected indoor temp and motion sensors.

This way, you can enable more heating/cooling when your house temperature varies from one room to another.

In fact, with this smartapp, you can also use any types of ecobee thermostats (not only ecobee3 or the ecobee lite) such as the ecobee Smart-Si, EMS, or stat-02 (which are the older models) to have basically the same behavior as the ecobee3 and its remote sensors.

In brief, this smartapp combines all the previous smartapps in one single package because it monitors your home based on outdoor/indoor sensors and can set your ecobee thermostat to 'Away' or 'Home' according to a time threshold (in minutes) that you define.

Again, this smartapp makes automatic adjustments to your existing ecobee schedules, so you also need to define your basic scheduling within ecobee first.


(++++) If you plan to have smart vents later or want to average out your inside temp sensors with finer room control (logic similar to the ecobee3's follow me with its proprietary remote sensors), look at the ScheduleTstatZones or ecobeeSetZoneWithSchedule smartapps


The ScheduleTstatZones smartapp can control any smart thermostats (not only ecobee but also Nest and any z-wave thermostats) and ST-connected vents (such as Keen Home vents or ecovents) to reach the ultimate comfort in the preconfigured 'zones' of your home. The smartapp's logic is also based on indoor temp/motion sensors, an outdoor temp sensor, and smart vents (optional).


You'll then be able to configure your own schedules (ex. weekends, evenings, mornings, weekdays). The smartapp will then set/adjust your main thermostat & your smart vents (and some optional room thermostats for baseboards or fireplaces) every 5 minutes based on the average temp algorithm calculated from the rooms' temp sensors that are part of the zone that you've configured.


As this smartapp works with any smart thermostat, it will not depend on any basic scheduling done at the ecobee or at the Nest portal, but will rely on the ST scheduler only.

For more details on ScheduleTstatZones, refer to


   http://thingsthataresmart.wiki/index.php?title=ScheduleTstatZones


The ecobeeSetZoneWithSchedule smartapp has the same features as ScheduleTstatZones, but it has been designed specifically for the ecobee thermostats. It uses the climates/programs defined at the ecobee portal (i.e. ecobee scheduling) as a baseline for any thermostat adjustments.

For more details on ecobeeSetZoneWithSchedule, refer to


   http://thingsthataresmart.wiki/index.php?title=EcobeeSetZoneWithSchedule


.................................................................................................................................

Item 3d) New Comfort tips feature configuration

.................................................................................................................................

If you want to take full advantage of the new "tips" feature starting with My Ecobee device v5.0, you'd need to set up some additional smartapps in your ST account.

The smartapps generate the daily, weekly, and monthly stats required to detect any trends in your energy consumption.

Here are the 3 smartapps that you'd need to install:

- ecobeeGenerateStats

- ecobeeGenerateWeeklyStats

- ecobeeGenerateMonthlyStats

The three smartapps will resubmit themselves automatically after the 1st run. The dates provided at the first run are irrelevant (you can use the default dates).

The following smartapp is used to get the most up to date tips from MyEcobee device:

- ecobeeGetTips


The smartapp will look at your current indoor/outdoor conditions and will generate the energy and comfort tips for you. The smartapp generates up to 5 tips at a time, and the tips are saved in the device to avoid repeating the same tips over and over.

Each subsequent smartapp's run will generate new tips till there is no tips available.

Fore more details about ecobeeGetTips, refer to

   http://thingsthataresmart.wiki/index.php?title=EcobeeGetTips

Known issues

.................................................................................................................................

1. The HTLMTile is not officially supported by SmartThings

.................................................................................................................................

The latest version of My Ecobee device uses the HTMLtile for rendering the graph. As ST is not supporting the HTMLTile, it may not work properly on all devices. This is a ST UI platform issue and not related to my code per se.

It runs properly on all iOS devices (even the Ipod) when javascript is enabled. It is also supported now on all recent Android devices.

To enable javascript on your iOS device, refer to

http://activatejavascript.org/en/instructions/ios

Also, since v2.2.2 of the ST mobile app, most of the Android devices are now supported.


P.S. You can also visualize the graph in the IDE at any time (make sure that javascript is enabled too in your browser).

a) Go to https://graph.api.smartthings.com/ide/devices (or the equivalent shard)

b) Click on My Ecobee device, click on "simulator" on the right and the button under "API URL" as indicated below to launch the rendering.


MyEcobeeDeviceChartInIDE.png

Please contact ST support if you have any HTMLTile issue on your devices.

.................................................................................................................................

2. The Ventilator commands are partially supported for now (ecobee is supposed to fully support them later)

.................................................................................................................................

After some testing, and contact with ecobee support, I've realized that the ventilator commands (On, Off, Auto) are not supported now.

Ecobee said that they are planning to support them in the future.

http://developer.ecobee.com/api/topics/not-able-to-control-the-ventilator-from-the-apis

However, the ecobee3 thermostat should support the "ventilatorMinOnTime" command.


.................................................................................................................................

3. The ST-ecobee cloud-to-cloud connection can be lost (connection pool or timeout issues) from time to time

.................................................................................................................................


Update: Following some ST DB and some scheduler changes (more to come), the http exceptions previously generated by ST are gone. I just keep the documentation just in case (as a reference).

Important Note:

   Don't enter any preference values for the thermostat's serial number or for the appKey as the values are only
   used for the PIN authentication method (not with the Service Manager called the MyEcobeeInit smartapp).  If you do it, you may experience authentication issues.


For some unknown reasons, the cloud-to-cloud connection between SmartThings and ecobee can sometime generate some timeout and unauthorized exceptions (when the refresh token is not issued on time).

It may be caused by some connection pool management issues or just DB/server issues that are not tracked by either party (ST or ecobee).

If you have many connection issues, please contact ST support as My Ecobee's device code does not have any control over the connection issues between ST and ecobee.

My smartapps can notify (handleException flag needs to be set) you if the number of exceptions is too high and may ask you to re-connect (re-login) at ecobee.

In the meantime, here are my recommendations to reduce the number of exceptions:

If you have many ecobee thermostats and/or many ecobee3's remote sensors, create many MyEcobeeInit (for 2 or 3 thermostats max) instances and/or many ecobee3RemoteSensorInit (for 2-3 remote sensors max) instances and split your ecobee devices between the instances that you created. You can assign a different name for each instance on the last page.

See the troubleshooting section, item no 6 for more details about the ST-ecobee connectivity issues.

BTW, these connection issues are not specific to MyEcobee Device as per these threads:

TCP Hub

https://community.smartthings.com/t/smartthings-losing-connection-to-tcp-hub/17093

Stock Ecobee device

https://community.smartthings.com/t/having-to-authorize-ecobee-2-3-times-a-day/18282

Philips Hue

https://community.smartthings.com/t/philips-hue-bulbs-no-longer-working-and-getting-noavailablehostsexception/20899/3

Wemo

https://community.smartthings.com/t/losing-comunication-with-wemo-switch/17045

Wink Quirky Pivot

https://community.smartthings.com/t/wink-authorization-to-connect-quirky-pivot-power-genius/12356

Logitech Harmony

https://community.smartthings.com/t/harmony-home-control-smartthings-control-and-vice-versa/6716

Amazon echo

https://community.smartthings.com/t/issues-with-smartthings-app-ide-and-cloud-integrations/30005

MyQ

https://community.smartthings.com/t/release-myq-liftmaster-chamberlain/8939/568

Troubleshooting

Here are some typical troubleshooting cases explained below. For your specific use cases, you may want to contact the author (there may be some support fees applied).

.................................................................................................................................

Issue #1: I don't know how to create a custom device

.................................................................................................................................

See the explanations of a fellow community member here:

http://community.smartthings.com/t/faq-an-overview-of-using-custom-code-in-smartthings/16772

Please refer to the installation readme (prerequisites) to find out what is the right shard for the procedure.

.................................................................................................................................

Issue #2: I created the device handler and My EcobeeInit in the IDE, but I don't know where to execute it

.................................................................................................................................


For the initial setup, under the ST app, click on the Marketspace item in the bottom menu, and then, on the smartapps link and finally, MyApps (last item in the list).

If you still do not see your smartapp, please make sure that you have published it in the IDE!

For any subsequent execution, under the ST mobile app, click on automations>smartapps in the bottom menu. The list of installed smartapps will then appear.

.................................................................................................................................

Issue #3: I executed MyEcobeeInit smartapp, but the list of thermostats is blank

.................................................................................................................................

If you get a blank screen after pressing 'Next or you get the following error: java.lang.RuntimeException: Unexpected status code 500 from global or "Error - bad state. Unable to complete page configuration" or java.lang.NullPointerException: Cannot get property "authorities" on null object

you'd need to enable oAuth as specified in step 2f) in the readme.

http://github.com/yracine/device-type.myecobee/blob/master/README.md


Refer to MyEcobeeInit smartapp's installation instructions for more details:

http://thingsthataresmart.wiki/index.php?title=My_Ecobee_Init#Issue_.231:_I_don.27t_know_how_to_create_a_custom_smartapp


If you get the "physicalgraph.app.exception.UnknownDeviceTypeException" error in the IDE, then please make sure to create the required device type first (step 1 in the readme).

Don't forget to create the DTH (Device Type Handler) and the smartapp under the right shard (refer to the prerequisites in the readme file at the github).

.................................................................................................................................

Issue #4: I don't see my newly added Ecobee thermostat in My EcobeeInit's list of thermostats for selection

.................................................................................................................................

You must first configure your new thermostat at ecobee and make sure it is connected and communicates via wi-fi.

.................................................................................................................................

Issue #5: My ecobee device is off by 'x' degrees with the physical thermostat

.................................................................................................................................

First try to refresh the UI by pressing the 'refresh' tile. The ST UI does not allow automatic refresh at the moment.

Also, make sure that your ecobee thermostat is connected to wi-fi.

.................................................................................................................................

Issue #6: My Ecobee device is no longer authorized to send requests to ecobee

.................................................................................................................................

My ecobeeInit is a smartapp that polls the My ecobee device(s) on a regular basis to ensure that the refresh (authorization) token is constantly renewed when needed.

Ecobee requires (contrary to some other cloud providers) to refresh its authorization token every 59 minutes for greater security.

The device handler code is an interface between ST and ecobee, so there are some dependencies on both platforms.

The algorithm within MyEcobeeInit and MyEcobee device has been coded to renew automatically the authorization token every 55 minutes or so. If it fails to renew the token, then the connection with ecobee will be lost.

So, the algorithm will work all the same after 1 hour or several days. So, if the smartapp works for more than 1 hour, it should work for days even months without issues provided that there are no other external factors (ex. connection issues between ST and ecobee with your physical thermostat).

You can infer that there are 3 potential "points of failure":

(a) It could be an issue on the ecobee side: there could be a temporary network issue or an issue with the ecobee servers

For the past months, it has happened more frequently.

See this thread at the ecobee forum:


http://developer.ecobee.com/api/topics/ecobee-servers-outage


Ecobee is supposed to release a status page (similar to ST) soon.

(b) It could be due to a (temporary) bad internet connection on your side.

Ecobee thermostats connect thru wifi, so if the physical thermostat is not connected for a while, then you may not have control over the thermostat during that timeframe.

(c) It could also be an issue on the ST side. We've all experienced issues with ST scheduling.

If the smartapp is not rescheduled every 20 minutes, and you don't manually poll the thermostat through the ST app, then the "refresh token" will not be obtained, and the authorization token may be lost.


HOW TO FIX THE UNAUTHORIZED ISSUES:


a) If you are running the standalone version (with PIN):

You may need to execute getEcobeePIN again, and enter the PIN at the ecobee portal (for the standalone version) Under the ST app, press the 'refresh' tile on your device to check if it's running normally after.

b) If you are running the Service Manager (MyEcobeeInit):

Execute MyEcobeeInit and re-authenticate (re-login) at ecobee by pressing on 'ecobee' on the 2nd page. Under the ST app, press the 'refresh' tile on your device to check if it's running normally after.


c) Make sure that all related ecobee smartapps are scheduled correctly so that polling is done on a regular basis (in order to renew the authorization tokens)

Check that the ecobee3RemoteSensorInit MyEcobeeInit, and/or pollster (if you are not exposing your remote sensors) are really re-scheduled with a future timestamp

This is due to some ST scheduling issues, refer to this thread (and there are others in the community forum) for more details:


https://community.smartthings.com/t/scheduler-and-polling-quits-after-some-minutes-hours-or-days/16997


1) Go to https://graph.api.smartthings.com/location/list

2) Click on list Smartapps

3) Click on ecobee3RemoteSensorInit, MyEcobeeInit, and pollster (in sequence)

4) Verify that the takeAction job is scheduled in the future (check the timestamp associated to the Next Run Time) under "Scheduled Jobs"

If it's not the case, you may want to re-execute ecobee3RemoteSensorInit, MyEcobeeInit, or pollster

ST is aware of this problem for months, but has not made any permanent fix yet.

d) If you have multiple thermostats exposed to ST, try creating multiple instances of MyEcobeeInit (1 for each thermostat) as ST has some rate limiting issues that sometimes impedes the auth token renewal.

You can assign a different name for the smartapp instances at the last page.


Some workarounds have been implemented in my code to get around the ST scheduling issues.


You have 4 options available in the last page of the smartapp ("Other Options" under the "watchdogs" section):

(a)- The smartapp can subscribe to some temp sensor(s) for any change of values, and if so, reschedules the smartapp when values at the temp sensor are refreshed. By using some temp sensor(s) that regularly poll(s), this "heartbeat" is used to make sure that the smartapp is rescheduled when needed.

(b)- The smartapp can subscribe to some motion sensor(s) for any change of values, and if so, reschedules the smartapp when values at the motion sensor are refreshed. By using some motion sensor(s) that regularly poll(s), this "heartbeat" is used to make sure that the smartapp is rescheduled when needed.

(c)- The smartapp can subscribe to energy meter device for any change of values, and if so, reschedules the smartapp when energy values are refreshed. By using some energy meter(s) that regularly poll(s), this "heartbeat" is used to make sure that the smartapp is rescheduled when needed.

(d)- You'd can also used a (virtual or physical) switch in the smartapp and use a Rule Engine (WebCoRE/CoRE, SmartRules) to trigger the virtual/physical switch based on a timer.


To activate the subscriptions, you need to go through the smartapp's setup, press "Next" till the last Page (Other Options) and enter the new subscriptions indicated below:

   section("Watchdogs") {
       input (name:"tempSensor", type:"capability.temperatureMeasurement", title: "What do I use as temperature sensor to restart smartapp processing?",
           required: false, description: "Optional Watchdog- just use a single regular polling watchdog")
       input (name:"motionSensor", type:"capability.motionSensor", title: "What do I use as a motion sensor to restart smartapp processing?",
           required: false, description: "Optional Watchdog -just use a single regular polling watchdog")
       input (name:"energyMeter", type:"capability.powerMeter", title: "What do I use as energy sensor to restart smartapp processing?",
           required: false, description: "Optional Watchdog-  just use a single regular polling watchdog")
       input (name:"powerSwitch", type:"capability.switch", title: "What do I use as Master on/off switch to restart smartapp processing?",
           required: false, description: "Optional Watchdog - just use a single regular polling watchdog")
   }


You can use either a temp Sensor (such as Aeon MultiSensor, SmartSense or Keen Vents), a motion sensor (such as the SmartSense), a power meter (such as Aeon HEM) or a powerSwitch to reschedule the smartapp if needed (as long as this device is polled on a regular basis -ex. every 5 minutes ) so that it can create a 'heartbeat' for the smartapp.

Do not use an ecobee remote sensors or the ecobee thermostat as this is not an external "heartbeat" for ensuring proper scheduling.

Finally, please use 1 or 2 watchdogs as too many can also cause too much rescheduling.


.................................................................................................................................

Issue #7: I want to disable any notifications from MyEcobeeInit

.................................................................................................................................

Go to MyEcobeeInit smartapp's last page, and answer 'no' to the following question:

Send a push notification?"''

Be aware that you won't be notified of any connection issues.

.................................................................................................................................

Issue #8: "An unexpected error has occurred" or 'deleteObserver onError: %s' messages in MyEcobeeInit when I press 'Remove'

.................................................................................................................................


Like all ST connected devices, you need first to unselect/remove your ecobee device from all the smartapps as MyEcobeeInit will not uninstall w/o doing this step.

MyEcobeeInit is the Service Manager for MyEcobee Device, so uninstalling the smartapp means that all your ecobee devices will be deleted.


.................................................................................................................................

Issue #9: I want to get more tracing in the IDE

.................................................................................................................................

Just update the device preferences, and edit the trace parameter, and set it to 'true'

See step 7 in the readme:

http://github.com/yracine/device-type.myecobee/blob/master/README.md

NEW: you can now set the trace level to be displayed in the device's preferences:

   input("logFilter", "number",title: "(1=ERROR only,2=<1+WARNING>,3=<2+INFO>,4=<3+DEBUG>,5=<4+TRACE>)",  range: "1..5",
      description: "optional" )        


Do not forget to set the trace back to 'false' after your debugging session as this setting may impact performance.

To activate live logging, just click on the link below:

https://graph.api.smartthings.com/ide/logs


P.S. You can also edit the device's preferences under the ST mobile app by clicking on its 'gear' button.

.................................................................................................................................

Issue #10: I want to upgrade the code but I don't know how

.................................................................................................................................

Most of the time (unless specified otherwise), you just need to copy and paste the My Ecobee Device's code from the text file from my email (I will send you emails with a zip file attached when required).

Go to http://graph.api.smartthings.com/ide/devices

Click on the device you want to update.

Copy and paste the code, save & publish.

N.B. Make sure to copy and paste ALL the code!

For the related "free" smartapps, refer to this brief tutorial on how to integrate ST with github (1st post):

https://community.smartthings.com/t/faq-github-integration-how-to-add-and-update-from-repositories/39046


GitHub Settings:

Owner: yracine

Name: SmartThingsPublic

Branch: master

All my smartapp are at the end of the "new (only at github)" window.

You can also copy and paste (manually) them from my github.

https://github.com/yracine/device-type.myecobee

In any case, you'd need to save & publish at the end.


.................................................................................................................................

Issue #11: java.util.concurrent.TimeoutException: Execution time exceeded 'x' app execution seconds

.................................................................................................................................

ST has introduced some generic rate limiting rules for all smartapps and device handlers.

For cloud-to-cloud integration, these rate limiting constraints are sometimes too low (due to network latency, servers involved, etc.), and this exception can be raised from time to time. There are some threads about it in the ST community forum:

http://community.smartthings.com/t/rate-limiting-too-restrictive-max-execution-time-exceptions/17985

http://community.smartthings.com/t/execution-times-increasing/19979

http://community.smartthings.com/t/unschedule-api-execution-time-too-long/11232


.................................................................................................................................

Issue #12: No signature of method: physicalgraph.device.CommandService.executeAction() is applicable for argument types

.................................................................................................................................

There seems to be a generic issue with some custom DTHs and it doesn't affect the DTH normal behavior.

See smartThings explanations here:

https://community.smartthings.com/t/mysterious-commandservice-executeaction-call/13553/5



.................................................................................................................................

Issue #13: I'd like to uninstall My ecobee device and its remote sensors

.................................................................................................................................

a) Like any SmartThings device, first you'd need to unselect My Ecobee device(s) and its remote sensors (if any) from all smartapps and/or routines.

To know which smartapps are using My Ecobee device, go to

https://graph.api.smartthings.com/device/list

or click on the smartapps tab on the device itself under the ST mobile app.

b) Click on My Ecobee device(s) and any Remote Sensors devices.

And note all smartapps under the list "In Use By".

c) Then, you'd need to unselect the device(s) from the smartapps using the ST mobile app.

d) Finally, you can remove the ecobeeRemoteSensorInit (if you have any remote sensors) and, then MyEcobeeInit smartapps.


.................................................................................................................................

Issue #14: ecobee exception while parsing json from response: com.datastax.driver.core.exceptions.ReadTimeoutException

.................................................................................................................................

These exceptions are thrown by the ST backend from time to time when using the Async Http requests. I've been told that ST is working on it. This is not a specific issue with my code.

https://community.smartthings.com/t/cassandra-timeout-during-read-query/46227/3


................................................................................................................................

Issue #15: I want to be notified of any exceptions coming from ST and/or ecobee

.................................................................................................................................

If you want to be notified of any serious ST/ecobee exceptions, you can set the following flag to true in MyEcobeeInit (in Other Settings -last page):


   section("Handle/Notify any exception proactively [default=false, you will not receive any exception notification]") {
      input "handleExceptionFlag", "bool", title: "Handle exceptions proactively?", required: false
   }


The smartapp will then send you notifications when exceptions occur.


................................................................................................................................

Issue #16: I want to change the temperature scale to Celsius

.................................................................................................................................


The temperature scale needs to be changed for your ST account under the ST Mobile app, so that all your ST devices will be in Celsius.

Press the "hamburger" menu (upper left), and then the "gear" icon. You'll find the option to change the temperature scale there and press "save".

At the next "refresh", My ecobee Device will display the values in the metric system.