[RELEASE] Initial Setup for Ecobee3 & 4, Smart-SI, EMS, Smart-02 thermostats - My Ecobee Device

Hello,

  1. If you want to manually change to the target ecobee program anytime via the ecobeeChangeMode, just unselect any ST hello modes, and the app will execute the change regardless of the current ST hello mode (this parameter is not required).

  2. In the latest version at my github, ecobeeResumeProg (V2.1) no longer requires a presence sensor on the 1st page.

Regards.

Dang it seems like there may be some cloud-to-cloud issues still or something is up. I noticed in my live logging (looking for some other reason) that my thermostate auth id wasn’t authorized and that I should re-run your init program. It had been awhile since I updated so I thought what the heck, let me go and get the latest versions.

So I went and edited my device type and pasted in the latest code. Did the same for ecobee init program, resumeprog, and changemode. Re-ran the init prog but it wasn’t re-authorizing. So I removed the auth from Ecobee’s website manually, and tried to re-initialize. Still wasn’t working so I decided to delete all my apps and devices and start from scratch.

Recreated the device type, init program, and all smart apps. Manually removed the authorization from ecobee’s website and re-added it. The device added, but refresh was not pulling any statistics. Then my Ecobee lost WIFI connectivity for 15 minutes maybe (?!) must have frozen up or something?

Finally it came back online and started reporting information to the “smartthings thing” and refresh seemed to work w/o errors in the log. So then I started to go about doing my 2 changemode programs and my one resumeprog app. Any time I try to invoke those I’m getting riddled with errors in the livelog. Here is a snippet:

79ce10aa-fd90-4161-abba-f64a42ba75b6 3:58:54 PM: debug EcobeeResumeProg>resumed program at ecobee...
feffd962-9ddf-4ee1-9ea8-08e1af545b7f 3:58:53 PM: error resumeProgram>error=3, message = Update failed due to a communication error.
eaaef168-a51f-4e1b-badb-e4fd0bad5dac 3:58:51 PM: debug getChildDevices(true), children=1
eaaef168-a51f-4e1b-badb-e4fd0bad5dac 3:58:51 PM: info Refreshing data...
eaaef168-a51f-4e1b-badb-e4fd0bad5dac 3:58:51 PM: info Delayed refresh triggered
79ce10aa-fd90-4161-abba-f64a42ba75b6 3:58:46 PM: error java.util.concurrent.TimeoutException: Execution time exceeded 20 app execution seconds: 108374962333029 @ line 183
feffd962-9ddf-4ee1-9ea8-08e1af545b7f 3:58:46 PM: error java.net.SocketTimeoutException: Read timed out @ line 1216
feffd962-9ddf-4ee1-9ea8-08e1af545b7f 3:58:40 PM: debug doRequest>exception java.net.SocketTimeoutException: Read timed out for...

Another excerpt:

5d4f9e22-9829-4b54-93c9-60afdf6b1394 4:23:01 PM: debug ecobeeChangeMode>setting the thermostat(s) to Away..
feffd962-9ddf-4ee1-9ea8-08e1af545b7f 4:23:06 PM: error setClimate>error 3 while setting climate Away for thermostatId =319258288451
feffd962-9ddf-4ee1-9ea8-08e1af545b7f 4:23:06 PM: error setClimate>error 3 while setting climate Away for thermostatId =319258288451
feffd962-9ddf-4ee1-9ea8-08e1af545b7f 4:23:04 PM: error resumeProgram>error=3, message = Update failed due to a communication error.

So I’m not sure if something is up or if I’m doing it wrong but I’m surprised that starting from scratch is giving me these types of issues.

The main thing I want to do is automatically set my tstat to either home, sleep, or away based on hello home phrases… does the official ST integration have that capability? What other functionality will I lose using the official implementation?

Hi @drshaw,

You usually do not need to delete your device type and device(s) to solve this kind of issues, I would try first to re-authenticate.

Also, if you have a lot of SocketTimeoutExceptions, I’d try to reduce the polling interval in MyEcobeeInit and ecobeeRemoteSensorInit smartapps.

And, nothing prevents you to use the official ST integration. Of course, my smartapps only work with My Custom Ecobee device.

However, you may encounter the same issue: I’ve already opened a ticket about the ST-ecobee cloud-to-cloud connection issues, and ST support responded by this reply:

Chris Porter (SmartThings)
Jun 30, 6:02 PM

Hi Yves,

Thanks for letting us know what you are seeing. My developers have been aware of this happening for a little while now also, and have worked on it. I will let them know your thoughts about it being the security timestamp being outdated.

I don’t have an ETA around implementing a revision to the code, but developers do currently know it is not working consistently for users, and are addressing it.

Thanks for the heads up, and the suggestions.

-Chris P.
SmartThings Support

If you have a lot of those cloud-to-cloud connections issues, please also open a ST support ticket, and at one point, with a high number of ST open tickets, this issue will surely be escalated to the Engineering team.

@tslagle13 may also help in that matter.

P.S. As I wrote earlier this thread, these exceptions are related to poor cloud-to-cloud connectivity between ST and ecobee. The fact that Ecobee requires a regular refreshTokens() (every 59 minutes) also contributes to it, as the refreshToken can be lost after a while.

I also think that the cloud-to-cloud integration issues are not only specific to ecobee, as per this thread:

So I guess it’s just in a state of flux and I should stop trying to correct it. As it stands, none of the 'mode" change programs work (changemode or resumeprog) no matter what I do.

What are the steps to re-authorize?

Now my log throws these when it tries to set the mode on my ecobee from any of the apps:
feffd962-9ddf-4ee1-9ea8-08e1af545b7f 4:45:26 PM: error groovyx.net.http.HttpResponseException: Internal Server Error @ line 1216

@drshaw, you’d need to re-execute MyEcobeeInit and press on ‘ecobee’ on the 2nd page to re-login (even if it’s said that ecobee is connected). Then, after being authenticated, go on, and press ‘next’ several times till done.

I’d recommend in any case to open an ST support ticket. ST needs to be aware of all those connection issues.

BTW, I had some similar issues last week, and now, after doing the same steps above, everythings works fine. Go figure.

So after 2 weeks, it definitely just seems like cloud to cloud issues with SmartThings. It works, but then stops working randomly and I have to re-initialize. I’ve probably had to re-init 3x in the last 2 weeks and that’s only when I’ve noticed it not working. I guess I can only hope that cloud-to-cloud gets better, but what is your preferred method of getting a notice when the auth is broken? I don’t like to get push notifications for every status change but I may need to until cloud to cloud shores up. The benefit of having ST control program modes isn’t viable at this time. I guess I could use ecobee’s own internal motion sensing?

@drshaw, you’re supposed to get a notification from MyEcobeeInit when there are too many connection exceptions or when your device is no longer authorized to communicate with ecobee.

So, if you had to reset the connections only 3x in the last 2 weeks, (and, that’s about the same for my device), It’s not too bad (given all the ST other issues)…

On my side, I still use my smartapps like ecobeeResumeProg and AwayFromHome (or my more recent ecobeeSetZoneWithSchedule) to set my thermostat to away or home even though things are not perfect for now.

I’m hoping that there will be less connection issues since the last platform updates. In fact, I have not reset my ecobee connection since then…

Regards.

Great app yvesracine.
I have been working well for a while, but now am getting lots of erbose trace is doRequest>exception groovyx.net.http.HttpResponseException: Internal Server Error for null

Any ideas? I updated to DeviceCode 2.2.1…

@Lauraweaver52, please read my earlier posts about bad connectivity issues between ST and ecobee.

In brief, this is not due to my code…

Regards.

I just made a Paypal donation. Thanks for all your work and very helpful documentation. I’m very new to the Ecobee universe after abandoning Lyric because Honeywell couldn’t seem to understand that connected things should be…well, connected and not isolated.

Anyway, I just want to be sure that I understand the logic and I didn’t see anything specifically addressing this in your thread. If I am using your MonitorAndSetEcobeeTemp app and various ST Motion/Temp sensors, should I disable the Follow Me and Smart Home/Away Ecobee functions to avoid conflict with ST and your app? Thanks again for the dedicated work on this project, which is one of the main reasons I went with Ecobee.

Hi @Journeymnn, please deactivate those functions as MonitorAndSetEcobeeTemp will do the job for you.

There is also the ecobeeSetZoneWithSchedule smartapp that is quite interesting for anyone who wants to set up (virtual or real) zones in her/his home (now or in the future). It allows a room by room configuration for more comfort and savings.

I will soon test the keen home smart vents with the ecobeeSetZoneWithSchedule smartapp. The smartapp that I’ve developed will enable multi zoned heating/cooling solution in my home for a fraction of the price I’d pay for such a system (w/o the high installation costs).

Regards.

Looks like ecobbe finally released official integration for the ecobee 3

can’t test it as my hub is dead and waiting on a replacement…

Anyone tested it yet ?

What do you mean? Official integration?

saw it on their FB page…

Hello,

I am installing this app using the 2.0 version of the iPhone app. I am stuck on step 3.

  1. Use SmartSetup and execute My ecobee Init /*********************************************************************************************

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


My problem is that I can not find this in the new app. I looked under ‘my smartapps’ and it was not listed. Can you help?

Thank you,

Rob Bruce

Hello @rob_thebruce,

If you have upgraded to the new UI, click on the Smartapps link in the upper section of any of the following screens: Home & Marketspace, and then MyApps (last item in the list).

Also, please make sure that you have published the MyEcobeeInit app as specified in step 2g) in the readme file:

g) Go back to the code window, and hit the “publish/for me” button at the top right corner

Regards.

Please support the developer!

Thank you. I found it. :smile:

yracine: I’m very interested in setting up my Ecobee to work the best way possible and I’m liking the idea of using your app: MonitorAndSetEcobeeTemp.groovy to completely get rid of my ecobee schedule. Right now I’m only using your ChangeMode app to set the system to “Away” when the home mode changes to away (utilizing the nextTransition option of the device to resume my schedule). Seems like this is kind of a dumb way to do it because if we are still away when the “Sleep” schedule is scheduled, it starts cooling the house.

I also use “ResumeProg” to resume the schedule when my home mode changes to Home or Night. Again, it seems largely inefficient.

Do you have a set schedule on the ecobee itself or is it redundant to your latest app offerings and we should just use those? We only have one tstat and I don’t like “averaging the temp” across multiple rooms because I like the basement to be about 10 degrees colder than the upstairs (where the tstat is) and this happens automatically so right now my ecobee 3 mini sensor is little more than a paperweight and I haven’t paired it with my ecobee or ST. Maybe if I had those zwave vents it would be more useful. Anyways, any insight on how best to leverage your set of amazing apps?

Another question: in order to “update” your device type, init program or any smart app, can I just go edit the code, paste in the latest, save it and publish for me? Do I have to re-install or configure anything for the updated code to take effect?

Lastly, it has been WAY more stable the last few weeks and I haven’t had to re-init.

@drshaw,

1) I don’t recommend to get rid of any of your ecobee schedules. In many posts I’ve done in the past, I reiterated that ST users should not get rid of their ecobee schedules as ecobee scheduling is more reliable than ST scheduling (at the moment). For more details about the ST scheduling issues, see this thread:

2) The MonitorAndSetEcobeeTemp smartapp relies on ecobee scheduling for its processing. It combines ecobeeChangeMode and ecobeeResumeProg in one smartapp with some added features : it also monitors the outdoor temperature (you need to input your weather station or outdoor temp sensor) and adjusts your heating/cooling setpoints based on some thresholds that you provide (more/less heat, more/less cool based on some outdoor temp settings).

3) Based on the use case that you provided in your post, you may want to look into ecobeeSetZoneWithSchedule instead of MonitorAndSetEcobeeTemp. This smartapp is a bit more complex to set up, but it does everything MonitorAndSetEcobeeTemp does plus it gives you a room by room configuration through the definition of zones.

The zone settings can be “virtual” or “physical” as smart vents are coming to the market to control the airflow and create physical zones inside your home (ex. at nights, the ‘upstairs’ zone set for my house will ensure that only the bedrooms will be cooled or heated to avoid energy costs).

FYI, I’m currently testing ecobeeSetZoneWithSchedule with a smart vent manufacturer and it really provides some added value in terms of comfort and energy savings. The smart vents’ level settings (% open or close) is then reevaluated every 5 minutes according to the desired heating/cooling setpoints and the current temperature inside the zone(s) scheduled at a given time.

For more details about ecobeeSetZoneWithSchedule and ScheduleTstatZones, pleaser refer to this thread:

4) To update MyEcobee device type, you usually just need to copy and paste the code within the IDE and publish it (unless specified otherwise, that should be sufficient).

The same thing for MyEcobeeInit smartapp or any other smartapps.

If you update MyEcobee device, please make sure to have the latest version of MyEcobeeInit as the 2 work together for better exception handling.

5) I’m glad that you have less exceptions and errors in the past weeks….

I’ve noticed that same behavior at my home since the last ST platform update.

Cross your fingers, we may enjoy the platform stability that we had before all the platforms changes introduced for Hub V2

Before those platform changes, MyEcobee Device would run for months without any intervention.

Regards.

P.S. I don’t quite understand your following statements below. If the 2 smartapps are configured correctly based on your ST hello modes, they should be quite effficient to set the right ecobee climate/program and they should not conflict with your sleep schedule. You would then need to create several ecobeeChangeMode instances for each ST hello mode used as input.

Depending on your use case and lifestyle, you may also want to set your holdType input parameter to indefinite instead of nextTransition for the described scenario as the away ‘hold’ will then last as long as required till you come back to the house. If you are really a doctor then your schedule may be quite different from mine as I usually work 9-5.

1 Like

Thanks for the info! While I process it, maybe I can clear up one of my statements that didn’t make sense:

with nextTransition as the hold type, sometimes the home would be in “Away” mode and the ecobee would resume it’s sleep schedule (currently set at 9:30 pm) even if the house was still empty. Conversely, the ecobee would transition to “home” mode (currently set at 7:00 am) even if we happen to of left the house earlier than 7:00 am, putting it in away mode. Yes, maybe infinite would be better but I get nervous with that if the stability issues happen again. If “Good Night” happens and puts the house in sleep mode (which is cooler than home mode in the summer) and something goes wrong with ST… when I leave for work it may continue to keep the house extra cool all day if my good morning routine, home routine or away routine never successfully changes the hold parameter.