My Ecobee Init (Service Manager) for easier installation

Hello,

In order to simplify the installation of the My custom Ecobee device for all ecobee users out there, I made some changes to be able to use a similar installation process as the ST stock ecobee device.

This is done with a simple SmartApp called “My Ecobee Init” that acts as a Service Manager for the ecobee thermostats at your home.

See readme file at
GitHub - yracine/device-type.myecobee: SmartThings-ecobee integration for instructions.

Here are the main benefits of using My Ecobee Device:

  • Better performance and reliability
  • Support of ecobee3, Smart, and EMS thermostats
  • Support of Farenheits and Celsius
  • Up to date with recent ecobee’s API changes
  • Expose all ecobee API functions to Smartthings such as setClimate Home or Away for
    smarter automation
  • More UI tiles to show all ecobee information available (program/hold, alerts, groups, weather, etc.)
  • Constant polling of child devices to avoid any authentication errors.
  • Many smartapps available to control your ecobee thermostat(s) from Smartthings

Now, that the installation is easier, there are no reasons not to try it !!!

EDIT: New Look & Feel, see link below:

My Ecobee device is now available for download at my store:

www.ecomatiqhomes.com/#!store/tc3yr

3 Likes

As an smartapp example that you can use with My custom Ecobee device, please take a look at the following script:

Enjoy!

this is working great - I have been waiting for a way to actually use your device type with my E3.

Question. I setup a custom comfort setting for “short away” to knock the temp down or up 2 degrees opposed to 5 for my standard away.

I would like to use your change mode app to kick the short away ecobee mode when smartthings mode is away - then if I am gone for more than 2 hours Ecobee will kick it to auto away dropping the full 5. And when smartthings mode change to home - kick Ecobee back to home.

Does that make sense? Are the custom comfort modes exposed in the api?

@lobo5519, the custom climates (or comfort modes) that you’ve defined at the ecobee portal are available thru My Ecobee device that I’ve developed.

In order to set them according to your ST hello home modes, you’d need to modify the ecobeeChangeMode smartapp to call setClimate("", ‘your climate’)

Please look at ecobeeChangeMode as an example.

Regards.

I was able to get it working with my custom comfort mode - Thanks!

I’m thinking about adding that the functionality to the app (not having to hard code it) and maybe an option to select certain days of the week to fire on.

If I ever get to it.

@lobo5519, I created a new smartapp called ecobeeSetClimate that can schedule a given Climate/Program (input parameter) at a given day & time.

You can use this smartapp and ecobeeChangeMode as a foundation for your specific use case.

Refer to

Regards

Hi yvesracine, I tried to install your app but I’m getting stuck on step 3:

  1. Use SmartSetup and execute My ecobee Init

From your phone or tablet, within the smarttings app and on the main screen, click on ‘+’ at the bottom, scroll right to to My Apps, execute My ecobee Init

When I go to My Apps on the phone/app your app doesn’t show up in the list.

In my graph.api.smartthings.com/ide/apps I see yracine : MyEcobeeInit, Status: Pbulished, Category My Apps and OAuth true… Locations field is blank.

In Device Types I see yracine : My Ecobee Device, Status Published.

Am I doing something wrong?

Hello @C0recollector, this is very odd… Could you try to delete the smartapp and reinstall it?

You should contact support about this if you still have the problem. Let me know also.

@C0recollector,

Another question for you: are you using the android V1.7 SmarThings app?

As I have solved a lot of issues related to the latest android upgrade, I’m just curious to know about your specific phone device, and OS version? Let me know.

Sorry about the inconvenience.

@C0recollector, see this issue found in Android V1.7:

When you install a new app, the app label under “Assign a name” is pre-populated with “Tap to set”.

Once the SmartApp installation is complete, it’s name is changed to “Tap to set”.

Hi Yvesracine, I was at v1.6.9 but Just a few minutes ago I updated to v1.7.1. I still have the same problem. Namely with #3 in the install instructions:

From your phone or tablet, within the smarttings app and on the main screen, click on ‘+’ at the bottom, scroll right to to My Apps, execute My ecobee Init

When I go to the smartthings app and click on the + at the bottom I have Four screens in order from left to right (Things, Alerts, Actions, More). I do not see a “My Apps”. I had assumed I would find the “My ecobee Init” in the “More” section which is the furthest to the right but I don’t. What I do see when I go to “More” is
SmartThings Labs
Convenience
Kids
Pets
Elder Care
Health & Fitness
Safety & Security
Social
Green Living

Could the instructions above be outdated for the current version of the app or perhaps I’m just not in the right location.

Also, I guess I should confirm, does this smartapp and device of yours work with my Ecobee3’s or just the older Ecobee’s?

Btw, I did delete the device and app from the graph.api.smartthings.com sites and reinstalled.

Thanks again

Hello @C0recollector, the instructions are up to date.

You have to scroll right one more (after More)… Then, you should see My Apps…

If you don’t see it, please contact SmartThings support about it.

From there, if you scroll down, you should see ‘My ecobee Init’.

And, the smartapp works well with Ecobee3, and all other ecobee thermostat models.

Let me know how it goes.

P.S. Are you using the same account for saving & publishing code in the IDE & in the SmarThings app? If the accounts are different, that could be the problem…

I am experiencing and issue where MyEcobeeInit loses it’s connection to ecobee. I keep having to login every 30 minutes or so when the ST app tells me “MyEcobeeInit> too many exceptions/errors or unauthorized exception, doRequest>excption groovyx.net.http.HttpResponseException; Internal Server Error for null (5 errors), press on ‘MyEcobee’ and login”

Any idea what the issue is and how it can be remedied?

Hello @tomagoes, please contact ST support… There seems to be more connection issues recently… I’m myself experiencing the same thing…

Will do, thanks. Let’s hope it’s a quick fix on their end as the issue is getting quite annoying.

@tomagoes, let me know how it goes…

I just contacted support, so while I wait on them I figured I’d ask about the following error that shows in the MyEcobeeInit log:

java.lang.NullPointerException: Cannot invoke method contains() on null object @ line 446
MyEcobeeInit>exception physicalgraph.exception.UncheckedException: com.netflix.astyanax.connectionpool.exceptions.NoAvailableHostsException: NoAvailableHostsException: [host=None(0.0.0.0):0, latency=0(0), attempts=0]No hosts to borrow from while trying to poll the device Air, exceptionCount= 1

line 446 in my code (the latest) is:

if ((state?.exceptionCount>=MAX_EXCEPTION_COUNT) || (exceptionCheck.contains(“Unauthorized”))) {
// need to authenticate again

This error occurred when still logged in (no errors in ST since 30 mins prior when I re-logged in). While I wait on support I figured I would share incase it matters.

@tomagoes, there is obviously a problem with their connection pool:

MyEcobeeInit>exception physicalgraph.exception.UncheckedException: com.netflix.astyanax.connectionpool.exceptions.NoAvailableHostsException: NoAvailableHostsException:

They need to reset their connection pool. I had some connection issues yesterday, but now it’s stable.

Regards.

P.S. BTW, you don’t always see in the logs all the exceptions generated by the device handler…

Thanks for your work on this. I just got the ecobee 3 abd I am trying to set this up but when I try to run the init it says something is malformed, redirecting to a site different than the creator. Just curious if you have any idea what going on our if I should ask support.

Hello @Jim_Salyer, please contact ST support and give the full error message.

It seems that there is something broken between ST and ecobee.

P.S. My Ecobee devices that are already connected are still working fine, but to authenticate new ones is an issue at the moment.