[DEPRECATED] Ecobee DTH and Helper SmartApps

I figured out the problem. The device handler is not updating. I’ve changed the repo for the device handler, and when I press the magnifier it shows that they are different on the repo, but I don’t see how to force it to update from the repo as I did with the Smart App. Should I just delete the device handler and reinstall?

There should be a button at the top that says something like “overwrite local version”. Press that, then press Close, the edit the file, click Save and then Publish/For Me.

Thanks!
Barry

Ya, that button is there in the SmartApps section, but not in the Device Handler section, tried three different browsers. Strange.

EDIT: I ended just copying and pasting the code from github into the IDE and saving and publishing, that seems to restored function to the app, I will take it for a spin, THANK YOU!

How do I quickly set the Fan back to 0 when changing modes? I don’t usually need the fan to cycle. Thanks

You should be able to create another instance of Smart Circulation with minimum time = 0 seconds, max = (anything), and temperature differential = 100 degrees (or any large number - it only increases fan run time when the delta between sensors is greater than this number). Set this instance to run on your normal modes (Home, Away), and it should reset the circulation time to 0 the next time the mode changes from Sleep to Home…

It’s a little kludgy, I admit - I’ll look into how to streamline this (ideally without creating yet another Helper SmartApp).

Thanks for all of the work on this app. I really like it and have set up a few helper apps. I’m not 100% sure I understand the smart circulation 100%, but I think it sounds like it could be useful. Can you explain it a bit?

I think what it means is if there is more than a 2 (or whatever you set it to) degree difference between the temp sensors you’ve selected, then the fan will come on, and circulate the air. Just to be clear, this is the fan, not heat or cool, right? What I don’t really understand is all of the time options for the fan.

Min fan on makes sense
Max fan on and min per adjustment and adjust frequency is where I’m a bit unsure.

I guess I’m not sure what is trying to be accomplished. Is it trying to bring the temp of the selected sensors within the temp difference you set by circulating the air?

Thanks for your patience. I previously had my fan running 5 minutes every hour at a min using the Ecobee app itself, but this seems like it could be better.

Precisely.

Smart Circulation doesn’t actually turn the fan on/off, it instead gradually increases the minimum minutes per hour setting og the auto-circulation feature of the thermostat itself, with the goal to get the temperatures within the specified target. The idea being, perhaps if we circulate the air more often and for longer periods of time, the temperatures will balance out.

This goal isn’t always possible to be met. Take for example a room with lots of windows in the summer - it is going to be warmer than a dark, windowless room, no matter how much circulation is employed. Thus, you can set the maximum minutes, so that the fan doesn’t run 100% of the time (if you don’t want it to).

The other use of Smart Circulation is merely to change the minimum fan time based on the SmartThings Mode (Home, Away, Sleep) or the Ecobee Climate/Program (Home, Away, Night). each time the specified mode/program changes, the min fan on time will be reset to the number specified, and if you set a very large target temperature delta, that setting will never change. So you could have 5 mins/hr of circulation while you sleep, 10-30 minutes during the day and 0 minutes while you are away…

I hope this helps!

Its been hard to test, the sleep handler didn’t switch the Ecobee into sleep last night, although it does when I test it now. I do have a notification last night “And I set EcoTherm: Home to sleep program indefinitely”, but Ecobee was not in sleep last night. Now when I put Smarthings into Night mode, the sleep handler ran, but the Smart Circulation didn’t run on the mode change. I didn’t even show in live logging. It does show if I go in and update the settings.

The temp differential currently has a max setting of 10, so I have tried using that to set the fan to 0 in other modes. I’ve had a hard time testing that. I am tempted to fork and make a Dumb Circulation app that just makes a specific setting on mode changes.

Any reason why the handlers might not be firing?

It appears from the log that you configured this Smart Circulation instance to change the fan when the Ecobee’s program changes to Sleep, but you have NOT configured it to change the fan when the ST Mode changes to Night.

(in the debug line “settings null, location Night, programs…” the “null” means you didn’t specify a Mode).

You shouldn’t have to specify both, but try setting the “Only when Location Mode is…” to “Night” and see what happens.

Modes will be MUCH more reliable (and quicker) since they will occur almost instantaneously, while the thermostat’s program update may not be reported back to the API for 3-5 minutes, depending on your polling frequency (default is 5 minutes).

No need.

I just posted an updated version (1.0.4a) that should solve the problem.

  • You can now set both min and max to 0 (or any value)
  • This will force the thermostat to change to the specified value immediately when the mode or program changes

Prior, it could take up to 10 minutes before the change would actually be sent to the thermostat. New version fixes that.

I just updated to 1.0.4a, its shows that version in the app as well as the IDE, but I still have a max value of 5-55.

The system did switch to sleep last night from the Mode Change handler, but Smart Circulation never made any changes with it set to Min 5 Max 5, it stayed at 0

The default max value is 5-55, but you can type over those with 0/0 or 5/5 …

I believe that version 1.03a probably didn’t change the setting appropriately, hence the version 1.0.4a today…

I compared the code, and even after update, it was slightly different on Github… even though the version number was updated… I forced code from the repo and it allows the max at 0 now.

Still having a strange issue, I have created 3 Smart Circulation Handlers, one for Sleep, one for Home and one for Away.

I have Sleep set to 5/5, and Home set to 0/0, and Away set to 0/0. When I put the ecobee in sleep mode, the handler doesnt do anything. In the IDE it only shows logs for Initializing. If I change the min fan time manually to something above zero, and then switch back to home mode, the Smart Circulation app for home does indeed switch the fan back to 0.

The Smart Circulation app for Away mode doesn’t change the fan time either.

I’ve removed and reinstalled the helper apps mulitple times from the Ecobee Connect app with no change.

Found the problem. v1.0.5 should work for Ecobee Programs now…

I just tried to use this SA, OATH is enabled, all SA’s and DHT’s are installed via GIT, but I get a URL error when trying to enter credentials. Pretty sure I hit all the steps, as I went through it about a dozen times now. :slight_smile:

{“error”:true,“type”:“java.lang.reflect.UndeclaredThrowableException”,“message”:“An unexpected error occurred.”}

Any ideas what would cause that?

I’m sorry, I do not have any idea.

Some people have mentioned issues with the GitHub support - perhaps try copy/paste the file content for Ecobee (Connect) directly.

Also - double check that you can actually log in directly to your account on ecobee.com - if you can’t login there, the app won’t be able to log in either…

One other thing: Double Check that the version number at the bottom of Ecobee (Connect) on your mobile device is the current version (1.1.4 is the latest).

I tried installing this last night. For some reason my device listing for my thermostat (EcoTherm) is not displaying the temperature. It’s just showing 0. The device listing for my sensors (EcoSensors, including thermostat) are showing the termperature properly. Any idea why this is happening? I’ve tried removing all devices, smartapps and the dth and re-installed but still have the same issue.

This is what I’m seeing in the live log for EcoTherm

7ec39dfa-4047-4c6f-b653-99cc7d1d5de3 ‎11‎:‎13‎:‎06‎ ‎AM: info Executing ‘poll’ using parent SmartApp
7ec39dfa-4047-4c6f-b653-99cc7d1d5de3 ‎11‎:‎13‎:‎06‎ ‎AM: info refresh() called
7ec39dfa-4047-4c6f-b653-99cc7d1d5de3 ‎11‎:‎13‎:‎08‎ ‎AM: error java.lang.NullPointerException: Cannot invoke method toInteger() on null object @ line 682
7ec39dfa-4047-4c6f-b653-99cc7d1d5de3 ‎11‎:‎13‎:‎04‎ ‎AM: info Executing ‘poll’ using parent SmartApp
7ec39dfa-4047-4c6f-b653-99cc7d1d5de3 ‎11‎:‎13‎:‎04‎ ‎AM: info refresh() called
7ec39dfa-4047-4c6f-b653-99cc7d1d5de3 ‎11‎:‎13‎:‎05‎ ‎AM: error java.lang.NullPointerException: Cannot invoke method toInteger() on null object @ line 682
7ec39dfa-4047-4c6f-b653-99cc7d1d5de3 ‎11‎:‎11‎:‎33‎ ‎AM: error java.lang.NullPointerException: Cannot invoke method contains() on null object @ line 661
7ec39dfa-4047-4c6f-b653-99cc7d1d5de3 ‎11‎:‎06‎:‎33‎ ‎AM: error java.lang.NullPointerException: Cannot invoke method toInteger() on null object @ line 682

Grab v1.0.12 of Ecobee Thermostat - should fix the problem…

Thanks Barry for the quick fix. My temperature is properly displaying now. There’s a few bugs I’m seeing now that I’m able to play with it some more.

  1. Pressing the up/down arrows to adjust temperature set point doesn’t do anything. I get the errors below in the live log.
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎05‎:‎12‎ ‎PM: error java.lang.NullPointerException: Cannot invoke method toDouble() on null object @ line 1482
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎05‎:‎12‎ ‎PM: debug deltaTemp = 1
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎05‎:‎11‎ ‎PM: error java.lang.NullPointerException: Cannot invoke method toDouble() on null object @ line 1529
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎05‎:‎11‎ ‎PM: debug deltaTemp = -1
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎05‎:‎05‎ ‎PM: error java.lang.NullPointerException: Cannot invoke method toDouble() on null object @ line 1482
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎05‎:‎05‎ ‎PM: debug deltaTemp = 1
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎05‎:‎03‎ ‎PM: error java.lang.NullPointerException: Cannot invoke method toDouble() on null object @ line 1529
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎05‎:‎02‎ ‎PM: debug deltaTemp = -1
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎04‎:‎58‎ ‎PM: error java.lang.NullPointerException: Cannot invoke method toDouble() on null object @ line 1529
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎04‎:‎58‎ ‎PM: debug deltaTemp = -1
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎04‎:‎55‎ ‎PM: error java.lang.NullPointerException: Cannot invoke method toDouble() on null object @ line 1482
    6d95af62-f571-4022-ac39-f0de72d60eb4 ‎12‎:‎04‎:‎55‎ ‎PM: debug deltaTemp = 1

  2. When viewing the thermostat device in smartthings app, it will eventually freeze as I’m scrolling up and down a few times. I have to go back to the device listing and then back again into the thermostat for it to function again (it will freeze again similarly during scroll and I have to repeat).