Official Ecobee 3 Integration

Hi @dalec,

Please follow the readme’s step-by-step instructions provided at my github.
You do not need to enter any serial number as there is a service manager for this device.

Also, there is a troubleshooting section at the ST community wiki:

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

P.S. I can also help you further if you need it, but I will have to charge you a support fee as
support can take a lot of my time and I have a full time job (and a family):grinning:

Regards.

Thanks so much for this, yvesracine. I did as you described. Will let you know the results

Hi all. So from ecobee, via Twitter, it appears that they have no soft-launched official (via the SmartThings app, no additional code needed) support for the Ecobee3:

Tested and it works 100%, however note the it is SORELY lacking in features to the point where other than existing it is near useless.

I would suggest writing to ecobee and SmartThings to see what their plans are to bolster this, since it’s a shame to have the best smart thermostat and most popular home automation platform cripple such a robust device through lack of features.

Hi, yvesracine

Unfortunately, after implementing the changes, I get the same exception errors every 10 minutes…

Hi @sn0wL , @jaypeecee

On my side, I’ve noticed the following facts:

(1) Cloud Connectivity between ST and ecobee is an issue.

Yesterday’s morning from 9h30 to 10h40 (EST) the ST connection was lost with ecobee.

Then, at around 10h40 (EST) the connection was re-established and MyEcobee device was able to recover and it proceeded then normally after.

(2) The stock ST device is even more vulnerable to cloud connectivity issue.

I was running the ST stock device in parallel to see if it is also affected by the ST-ecobee connectivity issue. And, I can confirm that it is also greatly affected.

However, contrary to My Ecobee device, the ST stock ecobee device is now stuck since 10h30 (EST) and does not respond at all. I cannot increase/decrease the setpoints or even refresh it.

The device is now longer responsive and I will have to kill it.

(3) It seems that having ecobee3’s remote sensors generates more exceptions

I’ve noticed that most of the ecobee3 users who expose their remote sensors to ST have more issues than other ecobee users.

The more ecobee3’s remote sensors, the more exceptions they get.

Recommendations

  • If you have many ecobee thermostats or many ecobee3 remote sensors, create many instances of MyEcobeeInit and ecobee3RemoteSensorsInit and split your devices between them.

You can assign a new name to the smartapp at the last page.

  • If ST support says that you should switch from my custom Ecobee device to the ST stock device, this is clearly wrong as the ST stock device is not able to recover from any ST-ecobee connectivity lost.

P.S. I’ve updated the known issues section of the ST community wiki with my recommendations

http://thingsthataresmart.wiki/index.php?title=My_Ecobee_Device#Known_issues

Regards.

@sn0wL , @jaypeecee, @Bobby, @CheezWiz, @shellprompt,

Somebody forwarded me an email he got from ST support about our ST-ecobee connection issues:

While it may not be out for a few weeks it does look like we have some Ecobee integration improvements slated for later this month. That should hopefully get this Token issue cleaned up. There isn’t a good solution for the short term, but lets see how the platform update later this month helps.

Riley,

SmartThings Support

Hi @sn0wL , @jaypeecee, @Bobby, @CheezWiz, @shellprompt,

Till ST makes some changes to their cloud backend (Devconn) as promised, I will ask you to test a new version in my beta branch (if you’re interested):

  • So far, my code has been proactive in dealing with exceptions, but as ST cloud now seems to throw exceptions for HTTP requests coming from some users (but, not all of them as I and others don’t experience any exceptions since my last change on December 1st), I’m wondering if I’ve done some over-engineering on this issue.

  • I created a new version of MyEcobeeDevice, myEcobeeInit and ecobee3RemoteSensorInit in my beta branch that deals differently with exceptions using a handleExceptionFlag. The flag is set to false by default, and in that case, the code in my smartapps will not handle the exceptions pro-actively and just try to proceed normally despite exceptions.

  • Please give a try and let me know.

As I don’t experience any exceptions myself, it’s kind of difficult for me to find a workaround.

P.S. You just need to copy and paste the code,save &publish for the smartapps and MyEcobeeDevice.

Regards

@sn0wL , @jaypeecee

According to some feedback from several users, my code is now working with the
workaround that I implemented about the connection issues.

My Ecbee Device, Ecobee3RemoteSensorInit need to be resync first (at the main branch):

You may need to un-install and re-install the smartapps if some recurrent exceptions reappear.

Regards.

P.S. My code now ignores some exceptions that are thrown by the ST cloud backend (i.e. groovyx.net.http.HttpResponseException ) for some users.

Please support the developer :grinning:

Hi, I installed the new Ecobee3RemoteSensorInit code and now when I go to update the app via the ST app I get a blank screen where it would normally ask to select my motion sensors.

Then I get an error when I click “Done”

Hi @Automatic00,

Please refer to the ST community wiki for Troubleshooting:

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

Also, please take note of the following issues at the moment with My Ecobee Device:

http://thingsthataresmart.wiki/index.php?title=My_Ecobee_Device#Known_issues

I know that ST is working on improving their Cloud-To-Cloud integration as specified here, but there is no ETA.

See below:

Continuing the discussion from Initial Setup for Ecobee3, Smart-SI, EMS, Smart-02 thermostats - My custom Ecobee Device:

Continuing the discussion from Initial Setup for Ecobee3, Smart-SI, EMS, Smart-02 thermostats - My custom Ecobee Device:

[quote=“slagle, post:115, topic:17260, full:true”]
We are working on improving our end of Cloud and Lan connected devices. We can only control what we can control.

Aside from that, the only recommendation I can recommend is to reduce polling intervals. This will rule out your connection being limited by the external API. I know MyQ and Ecobee are very specific about their polling intervals. I have read on their forums they recommend not polling more than every 30 seconds (maybe 10 seconds? I found both numbers but 30 second intervals show up more).

I’d find it unlikely that you are hitting this limit, but I have also read on their forums something along the lines of “Our servers ensure that your thermostat is protected from attacks against it.” I wonder if you are hitting that “wall” so to speak.

I say all this not to say it isn’t on our end at all, but it may not be all on our end. Try reducing polling intervals and see if that resolves these timeout connection issues. :smile: I’d be interested to know. Maybe start by doubling your currently polling intervals.

Most of the other threads @yvesracine mentioned (with the exception of MyQ) are not related to this and are either related to a platform outage or DHCP issues. (We have a fix for wemo coming out in a little while that allows us to see and change the IP when the wemo Ip changes locally)
[/quote

Regards.

This seems to be as close to the official Ecobee thread as there is, so I just want to take a minute to gush about this product. I have had a Nest gen 2 for close to 2 years now. I grew to hate the thing. The house cycles between too hot and too cold because the deadband is enormous. Thermostats get placed at the most temperature stable place in the house near the air return, a large deadband here is amplified everywhere else and despite complaints Nest doesn’t allow people to change this value.

I’ve had the Ecobee one week and no more waking up at night freezing/sweating adjusting the thermostat. The remote sensors ROCK and are sufficient enough to keep me comfortable in my house despite hot spots without a multizone system. The information it provides through the web interface with SystemIQ is so cool. Nest’s monthly email is child’s play telling me how many leafs I earned. Despite not wanting to spend a few hundred dollars on another smart thermostat, I am so glad that I did. I wasn’t positive it would help in my house, but it has exceeded all my expectations.

Anyone considering a smart thermostat skip the Nest and go straight for the Ecobee. It is so much better, and it feels so great to be rid of my Nest because I grew to hate it SO MUCH.

Anyone want to buy a used Nest?

I’m going to try out the SmartThings app for ecobee3 and see how it does for a bit. I had the @yvesracine version installed but was going crazy with exception errors that I finally had to remove it so I could get some sleep :wink: I didn’t see how the ST version displays the remote sensor though?

To whom it may concern,

Also, please note of the following new thread:

Regards.

@dalec, what ST version are you talking about?

Did you install the one here? GitHub - SmartThingsCommunity/SmartThingsPublic: SmartThings open-source DeviceType Handlers and SmartApps code

Do you know if it works for the Ecobee 3? or did you install the built-in one : Ecobee Smart Thermostat? I don’t think this one is designed for the Ecobee 3.

Just posting an update. I’ve confirmed that the SmartThingsCommunity template available on GitHub does work with Ecobee3. The Ecobee thermostat and sensors there also work. I’ve tried updating the wiki to help us newbies get the code working. It takes a bit of tinkering but it’s doable.

I think Ecobee’s API is similar for their thermostats and the basic functionality will work across them. (The built in ones from the Smart SI for example as pointed out by @jnowland and @Bugsy also work.)

I’d like to make everyone aware of two other ecobee devices that you can consider. I’d also like to encourage future developers to work together and update one single code.

First, there’s a code by @StrykerSKS:

This is a brand new code based off of the openly available template produced by SmartThings.

.

Second, a branch was branched off of @yvesracine from the most up to date version that was still open source. It’s being worked on by @disconn3ct. (not a user on the SmartThings community site that I can see.)

I can’t speak to the legality of this second option (I’m not a lawyer), and since it’s a branch you can’t communicate directly with @disconn3ct which is a pain. But it should have more functionality (Although it may also have more bugs right now) than the first option.

I would recommend that @yvesracine says that he’s solved the issues with his code. If that’s true, then this is a great app. It’s worth the $15, even though it isn’t open source.

But if you want open-source, I suggest chatting with @disconn3ct or @StrykerSKS and helping them develop their code, or possibly donating to them. If you want things to stay open source, then it would be wise to contribute in one of these ways.

If you need help understanding GitHub integration, let me know. It’s not too bad once you understand a couple of steps. I’m very green, but I’ve been able to get it working without too much of a headache.

I’m officially confused. Please accept my apologies for what maybe a stupid question.

Here:

It says the Ecobee3 is officially supported and shows a picture of it however (and just be clear I’m new to the Ecobee3 bandwagon), I bought the Ecobee3 for this reason and this reason alone.

So I installed it and followed @yvesracine’s instructions it took a few hours but finally got it working. I then started getting several token exceptions and during trouble shooting was taken to a link demanding $15. I completely understand he wants to get paid for his time and I respect this but I would rather go the official route since it is advertised as being supported.

Back to the drawing board.

When I go into the thermostat section under climate I see the “ecobee smart si thermostat” and “ecobee smart thermostat”. I’m assuming I use the “ecobee smat thermostat” and login and everything will work fine correct? However I won’t be able to use the external sensors?

Am I missing something or is it that simple?

Thanks for the help.

Naturally you are confused… Now let me change that confusion to disappointment instead. (Not sure that’s much better, but it’s all I can do for you since I don’t work at SmartThings).

SmartThings does not natively support Ecobee3 as a default device like it does the Ecobee SMART or the SMART SI.

The latter 2 have code built right into your phone when you search to add a thermostat.

However, SmartThings is built on an “Open Source” policy. They realized that they cannot possibly create all the code that everyone wants. So they’ve opened up their device to other developers to write their own code. It’s a great system that allows tons of devices that wouldn’t otherwise be supported to be used. (For example I have a Monoprice.com dual relay… none of the major home automation hubs really handle this device well… it’s not main stream, but Smartthings has a developer who created an app and device for it. So it works beautifully!)

So here are your options for the Ecobee3 (Please if I’m wrong, SmartThings let me know)

  1. Use the community Ecobee SMART or SMART SI devices. (I’ve heard from @jnowland and @Bugsy that the SMART SI works. I’ve never heard some using the SMART, but I assume it would work too). This is because the commands to all 3 devices are similar.
    Note, if you use the SMART Si, you will have access to a very limited number of functions through SmartThings

  2. Use the updated community code from @StrykerSKS. He is developing, and welcoming others to join him to make a new option for users. I have tested it and it works great! More information about this device can be found here: [Release] Updated Open Source Ecobee Device Type and SmartApps
    Github: StrykerSKS/SmartThingsPublic

  3. ‘donate’ to @yvesracine (I think he’s asking for $15) and he’ll give you access to his current code (and I believe all future updates) This code (as you stated) had some serious issues with the exceptions it was pushing out. Basically it kept booting the connection between SmartThings and Ecobee and you’d have to re-login constantly. We are told this code is now working. This is an active developer in the community and I have no reason to doubt him when he says the code is fixed other than I haven’t seen it work (I haven’t ‘donated’ to him so I don’t have the latest code).
    His code would grant you access to a ton of the features of your Ecobee3 and is the most feature rich solution I’ve seen.

  4. Use the code from @disconn3ct. He made a ‘fork’ (Copy) of @yvesracine’s code just before @yvesracine changed the license. @disconn3ct says that the old license allows people to use the code and make their own changes to it. I can’t speak to that, but the code is available and @disconn3ct says he’ll be updating it.

  5. Create your own code using the SmartThings’ Template. I strongly don’t suggest this. Please consider instead to put some effort into helping @StrykerSKS get his code up to par with more features etc.

  6. Submit a request to SmartThings to develop an official code. However, note that the most likely thing they would do is that any official code will create will be based off of their template and will not have the same feature list available to it that the other options would provide. However, in my opinion, they should really have it officially supported with at least a basic version of the code.

  7. IFTTT. Ok, so this isn’t really ‘integrating’ SmartThings and Ecobee, but it does open a bunch of features to the two devices… You could try IFTTT.com to control your two devices. Both are reasonably well integrated with IFTTT and so to setup something like “Set my thermostat and SmartThings to away when I leave” is something you can do through IFTTT.

I hope that helps, although if you are like me, that’s not the answer you were initially looking for. (I too wanted a build in option) But I do encourage you to try playing around with the backend of SmartThings and Github. If you aren’t a developer I understand your fears, but SmartThings is built on this type of developer community so you might as well jump right in! Try @StrykerSKS’s code. It’ll unlock the basic settings you need (Temperatures, turn temp up/down, turn heat to cool to off etc.)

And as always, if you are using someone’s code, consider finding a way to support the developer. Help add features to the code if you know how, or if you are like me and don’t know much about coding, donate a couple of bucks for their time, or help others get plugged in, and help them understand how to use the code, be active on the wikis, share whatever knowledge you have etc.

Home automation is a fun hobby, but it’s not at the level of just ‘plug and play’. Sorry if that’s what you thought you were getting into.

Let me know if you need anything else.

UPDATE: After looking at the official list, I realised that the Ecobee SMART and SMART SI are actually not even supported officially. They are part of “Labs”. Although they do show up on my phone as a device, so perhaps they were moved from “Labs” to being official and the website wasn’t updated?

UPDATE2: I confirmed with SmartThings that the Ecobee3 is not yet officially supported.

UPDATE3: Not for everyone, and this isn’t technically ‘integrated’ into SmartThings, but I added the option of IFTTT to my list.

UPDATE 4: @StrykerSKS’s code is now live and works great. I’ve updated the order of the options, and added a link to a discussion of the new code.

6 Likes

Snakedog thank you so much, that was extremely helpful and enlightening! I truly appreciate the time you took to post it, it saved Ecobee a sale since I was about to box it back up now at least I can start with @disconn3ct or @StrykerSKS code and give it a shot.

Thank you again, not the answer I was looking for you are correct but extremely helpful.

No problem, glad I could help!

I guess I should contact Ecobee and ask for a commission Ha.

Let me know if you have any troubles, or need help understanding how to integrate Github, or the code.

I should probably take a look at the fork from @disconn3ct has. I’m not looking to be a hero and would prefer to collaborate with others on this, so happy to join forces where possible!

// StrykerSKS