New version of Ecobee thermostat APIs

OK, made some progress but it’s still not 100% working. My device was set exactly to ‘managementSet’ (quotes included). Copying/pasting the new code didn’t make a difference. However removing the device and starting all over again did help a bit. The top right box no longer has that “No groups%” message, and I’m also seeing a current alert from the ecobee that I didn’t have before…my furnace filter needs changing :slight_smile:

However I still can’t modify the temperature, fan or heat/cool modes. I’ll PM the verbose logs. Thanks for your help!

Hi sgonsalves,

Please remove the quotes from the managementSet for the ecobeeType parameter. It is without quotes. I changed the instructions to be clearer.

Thnx.

Hi again, also, the holdType parameter must be without quotes. That’s probably why you cannot change your cool and heat settings. Let me know of any development on your end. Thnx.

OK, after starting over and not using quotes for the ecobeeType parameter I can now change the heat and cool set temps with ±, resumeprog, and change system mode heat/cool/off in the device tile.

What I can’t do is change the fan settings and the “No groups%” is being displayed in the top right.

Hello, please copy and paste the latest release of my code from github as I included some additional checks about EMS thermostats such as yours (where ecobeeType =managementSet)

I think that you solve all your issues.

If not, send a full trace when you try to change the fanMode, so that I can have a better sense of what’s going on for your specific case.

Thnx.

Ok, I’ll try that…did you update the code on github though? I installed it last night and the revision says 11:10am.

Just PM’d the logs, same results. I can’t change the fan mode of operation from the device tile. Thanks for your help!

For all of you who are using the ecobee device type at

Sean made me realize that the way I was handling the fanMode was wrong.

So, I corrected the bug and now fanMode can be changed properly from the UI.

Please copy and paste the latest code release at github, save,and publish to get the bug
correction related to fanMode.

Also, please note that any smartapp that is using the iterateSetHold or setHold functions needs to be reviewed to include the fanMode parameter.

You can look at the “AwayFromHome” smartapp at github as an example.

Sorry about the inconvenience.

P.S. If you need more details, don’t hesitate to contact me.

Hello again,

Today, I added the following commands to the device type:

setClimate - This function sets a given Climate (ex. Away, Home, Sleep) for your ecobee thermostat(s)
iterateSetClimate - This function loops thru all your thermostat(s) to set the right Climate (for example, when you’re leaving home, see AwayFromHome smartapp as an example).

These functions work for SMART, SMART-SI and EMS thermostats. I’ve not tested them for EMS thermostats in a managementSet, but the code should work fine.

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

Enjoy!

1 Like

Thanks for continuing to update this Yves!

Today, I added one more important field in the UI (fanMinOnTime) which represents
the fan’s min running time (in minutes) within an hour timeframe.

Also, I made some changes to the logic in order to better handle
fanMode, desiredCool, and desiredHeat for all event types such as program, vacation & quicksave.

To get the new features, go to https://github.com/yracine/device-type.myecobee
,copy and save the ecobee.devicetype.groovy file into your IDE, save, and publish for yourself.

You may have to stop your current smartthings app and restart it to get the new UI field.
Enjoy!

1 Like

Hello fellow ecobee users,

Are there a lot of ecobee users out there with smart Plugs?

Please help me to validate the following function that I just added
to the smartthings-ecobee integration’s code base at https://github.com/yracine/device-type.myecobee:

controlPlug(thermostatId, plugName, plugState, plugSettings=[]) : this function can control a smart plug connected to your ecobee thermostat.

You can use the smart app called “ecobeeControlPlug” to call it with your specific parameters such as your plugName, the desired plugState (‘on’, ‘off’, ‘resume’)
and the holdType ('indefinite", 'dateTime", 'nextTransition") as specified in the ecobee API documentation at:

https://www.ecobee.com/home/developer/api/documentation/v1/functions/ControlPlug.shtml

Let me know of any testing on your end, so that I can adjust my code accordingly.

If successful, I could then add a ‘tile’/window in the smartthings’s ecobee type UI (which will appear on android & iOS smartphones and tablets)1
to display any events related to an ecobee’s smart plug.

Cheers.

P.S. I don’t own a smart plug so that’s why I’m requesting help on this.

Hello again,

Yesterday, I added one more UI field to the ecobee device type:

programEndTimeMsg which tells you when the current event will end (similar to the ecobee app, ex. vacation ends at ‘date’ ‘time’ or 'hold ends at ‘date time’)

To get this new UI field, go to https://github.com/yracine/device-type.myecobee, copy and paste the new code into your IDE in your ecobee device type at https://graph.api.smartthings.com/ide/devices, then save and publish.

You may have to stop your current smartthings app and restart it again to see the changes.

Regards.

I am dense…

How do I “install the app”? I created a new app, pasted in the code but cant figure out how to install the app and actually get the pin authorization to work?

Also, can you set the default holdtime to 2hours somehow…not sure as that’s a value for the type and looks like the type only takes no spaces

Thanks

Hi Greg,

After reading more carefully your questions:

(1) to create a smartapp, go to the IDE under https://graph.api.smartthings.com/ide/apps and click the ‘new SmartApp’ button at the top-right of your screen. Then, follows the steps and copy and paste the related code in the readme file.

(2) The holdType parameter is either ‘indefinite’ or ‘nextTransition’. holdTime is not supported for the moment.

Good luck!

You should add instructions, that once pasted, you have to go to the right, then click location as your location, then select the right thermostat and hit install.

How long does it take to refresh and show in the app? I installed it and I get like 5 tiles to populate, but the rest are blank

Greg

Hello Greg,

Please hit the “refresh” button several times as the smartthings UI is not always responsive. You may want to stop your current smartthings app and restart it to see the values.

If you don’t see any values yet again, please look under https://graph.api.smartthings.com/device/list and check if any values are populated for the device you just created.

Let me know of any further development.

This is all I Get…nothing on the current temp, set levels, etc…

thermostatMode: cool
• humidity: 57 %
• thermostatName: 1st Floor
• verboseTrace: refresh_tokens> Auth error
• humidifierMode: off
• dehumidifierMode: on
• humidifierLevel: 20 %
• dehumidifierLevel: 58 %
• weatherDateTime: 2014-07-02 10:02:27
• weatherStation: CW:24120
• weatherCondition: Sunny. Warm.
• weatherPressure: 1012 hpa
• weatherRelativeHumidity: 74 %
• weatherWindDirection: N Winds
• weatherPop: 44 %

In the simulator I get this error

0‎:‎32‎:‎08‎ ‎AM: error java.lang.NullPointerException: Cannot invoke method multiply() on null object @ line 956

Perhaps I have newer firmware on mine?

Hello Greg,

Could you PM me your recent trace by going to https://graph.api.smartthings.com/device/list, click on
your device, and then, ‘list events’. There seems to be an ‘auth error’ as specified in the verbose trace field.

I need to investigate about it and the trace will help me in doing so.

Thnx,