[BETA RELEASE] Updated Open Source Ecobee Device Type and SmartApps

Well, that’s good news - I will go try to track that new error down in a minute. Thanks for going the extra mile.


@chrismar -

Please change line 269 to:

if (settings.runMode != location.mode) {

Hi Barry,

I’m trying to install this APP, but after I finish the installation I’m getting an error message “unexpected error” message. checking the logs what I found is “ava.lang.NullPointerException: Cannot execute null+null @ line 1007”

any idea?



@lbreggi -

Can you tell me which device or SmartApp reported that error, please?

Hi Barry,

Its the ecobee connect - after I put the ecobee credential, the app validates de ecobee cloud information, go back to the main screen and them, when I open to choose witch thermostats to use, it gives the message “an unexpected error occurred” and I cannot continue with the configuration. If I try to use the stock app for Ecobee, it works perfect.

many thanks!

@storageanarchy line 269 or 267? Line 269 results in a compiler error and I can’t save it. I can modify 267, which is the one that looks like should be modified.

I’ll run with that and we’ll see what happens.

Modifying 267 didn’t work.

IDE error:

9:30:21 PM: error groovy.lang.MissingMethodException: No signature of method: physicalgraph.app.LocationWrapper.mode() is applicable for argument types: (java.lang.String) values: [Vacation]
Possible solutions: setMode(java.lang.String), getMode(), use([Ljava.lang.Object;), wait(), dump(), any() @ line 269

If I revert back to the version above and change line 269, this is the error in the IDE editor:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
script1489628149864298585240.groovy: 340: expecting '}', found '' @ line 340, column 2.

Adding an extra } beneath the new line fixing the compilation error.

Trying like this.

You should have:

def changeMode() {
	if (settings.runMode != location.mode) { 	// only if we aren't already in the specified Mode
		if (state.ecobeeThatChanged) sendNotificationEvent("Changing Mode to ${settings.runMode} because ${state.ecobeeThatChanged} changed to ${state.ecobeeNewProgram}")
    state.ecobeeThatChanged = null

def runRoutine() {
	if (state.ecobeeThatChanged) sendNotificationEvent("Executing Routine ${settings.runAction} because ${state.ecobeeThatChanged} changed to ${state.ecobeeNewProgram}")
    state.ecobeeThatChanged = null

I definitely had some fubar’d stuff!

Your new set of code works! I’m able to set the ST mode and run a routine based on the ecobee program. Thank you very much!

That’s great news - I’m just about to release my latest, and I was hoping this problem was solved…

Please see the General Release thread here: https://community.smartthings.com/t/release-the-best-free-ecobee-dth-and-helper-smartapps/81616

@storageanarchy So this new code will not conflict with ST being the “master” control of pushing the mode down to ecobee right? I just don’t want to see a race condition loop

@dalec - it is up to you not to create conflicting Routines. If you have the thermostat’s Vacation program turn on ST Away, which then turns on the Ecobee Away program, you will of course wind up in Away instead of Vacation on the thermostat.

That said, the new code doesn’t change the thermostat to a program if it is already running that program, and the Helper Smart Apps are driven only by program changes, so you should be fine…

1 Like


I just installed the smart apps and device handlers. I added my Ecobee temperature sensors to Ecobee Connect and the sensors were created but they won’t display a temperature. All three are just showing two dash lines.

Did I miss something?

Here’s the errors I’m receiving on one of the sensors

c37bb33f-163f-463c-846a-9c212008f3c7 4:41:58 PM: error java.lang.NullPointerException: Cannot set property ‘onlineState’ on null object @ line 217
c37bb33f-163f-463c-846a-9c212008f3c7 4:41:58 PM: trace generateEvent(): parsing data [temperature:75.4]

Did you enable OAuth for Ecobee Connect?

Did you delete any old devices and SmartApps before installing the new ones?

These are probably the two most common mistakes people tend to make.


Yes, I did enable OAuth in Ecobee Connect and yes, I deleted my former copy of Ecobee Connect.


OK - sorry for the delayed response, I was flying home last night.

If you could, please do this:

  1. Go into IDE and turn on Live Logging

  2. Go into Ecobee(Connect) on your Mobile, and in the Preferences section, set the Debug Level to 5

  3. Also, set the Polling Interval to 1 minute

  4. Before you exit out of Ecobee (Connect), select that app in the IDE Live Log (by clicking on its name in the header of Live Logging).

  5. Exit out of Ecobee (Connect) on your mobile

  6. look for the log entry that says "requesting updates for thermostats XXXXXXXXXX, XXXXXX (forced)

  7. capture and send me a PM with the log entries from there until any error that you see, or at least the next 60 seconds worth of data.


Problem should be fixed in ecobee-sensor.groovy v1.0.2

I just set up a couple Ecobee routines using the smart app. After I created them and got them named I can’t find them anywhere.

I went to Marketplace->SmartApps->MyApps->Ecobee Routines and filled in my settings. After selecting done I got the message at the top that the app was created successfully.

I expected to see the apps I created in Automation->Smartapps but they are not there.

Any ideas?


Disregard. I found them in Ecobee Connect under Helper Smart Apps.