New version of Ecobee thermostat APIs

Hello Greg,

Can you try again with the new code at https://github.com/yracine/device-type.myecobee?

Just copy and paste the new ecobee.devicetype.groovy code in the IDE under https://graph.api.smartthings.com/ide/devices for your device type, save and publish.

You can then hit ‘refresh’ in smartthings to see if the new code solved your issue. It may be related to event
processing.

P.S. Sorry, I made a lot of changes in the past week, and although I did some testing on my end, it’s not always easy to cover all use cases.

Ok, next time, please send it to me via private message (PM). To do so, please click on my name in the community thread.

Also, I would need the full trace, so if you can scroll right as much as possible to get as much text as possible in your copy and paste, that’d be helpful.

Please retry again with my latest code at github as I’m pretty sure your error is related to event processing when calling the poll() function for refresh.

If it still does not work, then please PM the full trace.

Sorry about this inconvenience.

This looks really cool! Unfortunately I couldn’t get it to work. I got stuck at the setting up a pin part. Why is the smartapp needed to create a pin? Also, I didn’t see verbose trace attribute under the device list anywhere. This looks like some good work though, Yves! Excited to get it working sometime

Hello jdorrer,

The smartapp is required in order to call the function to get the pin. As the ecobee thermostat is a device type, it cannot call itself to do so.

Please follow the steps indicated in the readme file at https://github.com/yracine/device-type.myecobee.

As indicated in the readme file, you need to edit your preferences first (such as the serial number and the trace to true) in order to get the PIN from the list of events under your device that you just created.

After, you go under https://graph.api.smartthings.com/device/list, click on the device that you created (such as MyEcobee), and then ‘list Events’ where you should see the PIN generated next to the verboseTrace attribute name.

Regards.

Wow Yves, this works amazing. Just got a Smartthing hub last night and linking it up to my Ecobee was the first thing I did. Now I can use IFTTT with my ecobee as an interior humidity and temperature sensor to trigger other actions; and it works great; I’ve got a standalone dehumidifier that i can now turn if it gets a little too wet… One thing that would be super awesome would be if we could then have IFTTT then trigger actions on the Ecobee connected thermostat. Once big one would be to turn off my furnace if there were a carbon monoxide emergency on my any of my linked NEST fire alarms. Another great one would be to turn the furnace from Off to Cool if the humidity in the house ever got super high.

Hi thecablerat,

Please look under https://github.com/yracine/device-type.myecobee. I added the smartapp called FireCO2Alarm that you can modify according to your own requirements.

Enjoy!

Yves,

It seems it doesn’t update that often and seems to get stuck on the things menu at older temps…do you have this issue?

Hi GS05, press the ‘refresh’ tile to get the current values. Smartthings also told me that they are working on some UI issues on android that cause lag on this platform. Are you using android or iOS?

Yup…must be my android app then!

Hello,for those of you who are using my custom ecobee device, today I added a new UI tile that allows a user to switch from Home to Away, Sleep, Awake and the corresponding methods to do so.

Also, I added the quickSave function that can be called from the same UI tile.

All these methods can also be called from smartapps

Just to let you know, you can get the latest code release at

P.S. In order to see the new UI tile, you may have to “stop” your current smartthings app and restart it.

Enjoy!

1 Like

I got ecobee this weekend, in my opinion smartthings ecobee integration is mediocre at the best, It is stuck at one old temperature for past 24 hours, hitting refresh always returns me that your thermostat is idle(not correct), my AC did multiple on off cycles since yesterday and I confirmed it through ecobee web portal.

The question is, do I need to uninstall the current ecobee smart app and follow the steps over here? thanks for any help

Yes, to have access to my custom ecobee device type, you need to follow the steps described at github.

You don’t need to uninstall the default ecobee device type, but it is recommended to avoid any confusion.

P.S. The custom device will tell you exactly which HVAC component is running (fan, air conditioning, heating, etc.) when you refresh.

Regards.

Thank you , for some reason I couldn’t proceed past step # 6, I don’t see the 4 digit pin.

I think I am doing something wrong in step # 5, installing the smart app, does that needs to be done through smart things ios(in my case) application?

Update*******************************
I installed the smart app on my phone and followed rest of the steps, everything worked. Thank you Yves , application is very functional and I am happy with it.

I’m glad that this device works for you. You can also take advantage of many smartapps that I’ve developed around ecobee (see github).

You can then customize them according to your own requirements.

Bye for now.

If you like the custom device type, please press the little heart icon to demonstrate your ‘like’ at the bottom of the thread.

Thnx.

3 Likes

Hi @yvesracine, question for you maybe you know of something off the top of your head. I’m noticing some side-effects that I’m wondering how difficult it would be to fix.

When changing the temperature (I’m guessing there may be some other UI elements that this happens on as well), but there is often quite a delay in the toggling of the temperature up or down and the update of the UI.

I’m wondering if the updating of the UI is occurring after the command is sent and/or received by the Ecobee API?

I wonder if there’s some way to sort of “queue up” consecutive UI commands and send them, or if there can be an update of the UI right when the touch happens, then if an error occurs the UI is restored and/or re-synced with the Ecobee API?

Just throwing out some thoughts, maybe if you have an idea of where this might occur.

Thanks again for all the great work here!

Hello terigox, does this delay happen all the time? What kind of device are you using?

FYI, the current smartthings UI framework does not respond as well on Android (compared to iOS). That’s what I’ve been told by support.

Also, to my knowledge, the current UI does not currently provide any ways to the developer to optimize it via queueing or other mechanisms…

Sorry.

I am trying to use Away from Home smart app, but I am getting “Error:data does not pass custom validation”, anyone else? Yes I am entering all the mandatory fields.

Hello missourian, could you contact support@smartthings.com ? This error is quite rare and I don’t see where in my code this could occur. This could be related to your specific context (hub version and so on).

BTW, if you don’t have integrated your home alarm system with smartthings, you’d need to remove some code related to arming the alarm switch.

If you have more details, let me know.

Just my 2 cents.

Thank You Yves, I just sent an email to support, when I read the developer documentation I see we can test the smart application with simulator, I don’t see simulator any where in my developer account, any pointers regarding this?

Update********

Learnt how to run the simulator, for some reason, switches section optional didn’t work for me, I changed the syntax from optional to false and it worked. Once again thanks Yves for all the good work.

section(“Turn off these lights”) {
input “switches”, “capability.switch”, title: “Switch”, multiple: true, required: optional
}