Ecobee 3 Remote Sensors into ST

Hi Yves,

Thanks for the reply. Oddly enough, the remote sensors started updating themselves in the middle of the night even though when I tried these out about 3 weeks ago, they did not. I did update the remote init as per your latest code, so perhaps that solved something. Although I have polling set for 5 minutes and the logs shows the updating running between 10 mins and 3 hours. It is all over the place but I suspect that is on ST.

My thermostats are currently showing token update requests every hour or so but oddly enough, the app doesn’t show a scheduled takeAction job (just pollHandler). I am not sure what that is all about.

I have been using your device type for about 10 months without any issues. I then updated my thermostats to the new ecobee 3 units and things have been all sorts of unstable since then. I do have a lot of units (4 Ecobee 3s and one Smart Si). I will continue to monitor and see if things break again and then look into why with this better understanding.

@gwithers105, if you see only pollHandler() as scheduled job, it means that you have an older version of the smartapp.

I’ve recently renamed the method name in order to avoid any ST filtering on polling methods such as this one. SmartThings does not like (in general) those polling methods as they consume more resources than others.

I also made some modifications to the smartapp to split large installations (such as yours) in 2 selection pages as I’ve noticed that when more than 3 objects are selected in a page, there are sometimes some issues to save the page.

Also, large installations are constrained by the ST’s max app execution time limit that appears from time to time in the logs. If you have a lot of connection issues, you may have to create 2 MyEcobeeInit smartapp instances (each linked to 2-3 thermostats) for better reliability.

I’ve opened a support ticket on the ST max app execution time constraint, as this constraint is becoming an issue also for another Service Manager I’ve developed for www.neur.io.

Regards.

P.S. In my case, I have both (pollHandler and takeAction) as I’ve not uninstalled and reinstalled my smartapp, I’ve just updated the MyEcobeeInit code within the IDE.

@gwithers105, another thing to keep in mind about remote sensors’ updates is your ecobee3’s firmware. If it’s not 3.6, then the remote sensors’ updates are not as reliable.

Maybe, 3 weeks ago, your firmware version was still 3.5.x.

Regards.

Yes indeed, my firmware was not 3.6 a few weeks ago and that may have been the problem.

I did fail to update the EcobeeInit program and that was the issue with the lack of a takeAction in my scheduler. At the moment, things seem to be working as expected on all fronts. I will watch for hicups.

It is also worth noting that it appears that only changes in values for the remote sensors will elicit an entry into the activity log of the remote sensors. Even though the polling is working, those polls do not show up in the activity log unless there is a change in value. That isn’t initially obvious and I, as well as some others, may assume that the polling is not working because the polling activity does not show as activity. I think it is a good idea to only have updated values show as activity, to keep it clean but knowing this is important as well.

@gwithers105, during this conversation, I made a quick change on the ecobee3RemoteSensorInit smartapp to not generate as much data for updates.

I suspect also that for some large installations such as yours, some ST memory constraints may be reached at one point.

Please grab the latest ecobee3RemoteSensorInit at github:

This last version may help in avoiding any ST platform constraints that developers are not always aware.

Thanks Yves, I will give it a go and keep an eye on things. Hopefully things will settle down back to super reliable like before. Thanks for your help.

@gwithers105, @Drewbert34, @swamplynx, @gator94 and others who lose their connection to ecobee:

I made some changes today to avoid as much as possible the ecobee3’s connection issues that can happen from time to time. I made some changes to reduce the amount of data events generated for temp/motion sensor updates, so that it reduces the overall workload on the ST platform (and hopefully avoid some app execution time or memory constraints related to ST)

The new code will check on a regular basis the number of exceptions. If the number of exceptions since the last refresh_tokens() call is too high, it will send an event indicating to re-authenticate via MyEcobeeInit and will log an errror. After some testing, I’m sorry to say that I cannot automate the re-authentication with ecobee.

However, I’m confident that the new code is better optimized for ecobee3’s remote sensor data polling. As I don’t own an ecobee3, this is a shot in the dark based on your input ( I can’t test any changes myself).

If you have any recurrent connection issues every couple of days (i.e. losing authorization), as ecobee3’s remote sensor data polling can be data intensive, I’d recommend the following:

(1) If you have My Ecobee Device’s trace set to ‘true’, please set it back to blank to avoid detailed logging
on a continous basis (this input parameter is used just for debugging purpose only)

a) Go to https://graph.api.smartthings.com/device/list
b) Click on My Ecobee device
c) Edit the preferences (middle of the page)
d) Set verboseTrace to blank (remote the true value if any)
e) Click Save at the bottom of the page

(2)Grab the latest version of MyEcobee Device at github:

Save and Publish.

(3) Clear your cache as the old Device may be cached

On Android, you’d need to go to settings/apps/smartthings and clear cache.

On iOS, you’d need to uninstall the smartThings app and reinstall it.

(4) Update the ecobee3RemoteSensorInit smartapp

Grab the latest code at

Save and publish.

(5) After a while, if you still have some recurrent connection issue, try to increase the polling interval within ecobee3RemoteSensorInit from 5 minutes (or from 10 minutes) to at least 20 minutes in order to avoid reaching any ST platform’s constraints (ex. max app execution time constraint or some memory constraints that I’m not aware of).

Let me know how it goes!

Thnx for your patience.

4 Likes

Thanks Yves,

All my remote sensors (temp and humidity) did stop updating yesterday. After I applied your previous update, when I went to the remoteInit app it would return an error about not being able to save some data. I didn’t clear the cache however. I did clear the cache after updating to the most recent version today and it did function properly, although it did get this error…

 error java.lang.IllegalArgumentException: The JSON input text should neither be null nor empty. @ line 125

As I was not sure how the remoteInit program would handle remote sensors from multiple Ecobee3 units, I created a separate remoteInit for each thermostat that I wanted to exposed remote sensors from (four). I only got this error on two of the four thermostats.

@gwithers105, it looks like the old device is still in the cache…

Could you redo all the above steps another time?

I made some changes this morning on the MyEcobee device type (after further testing).

You would also probably need to re-authenticate yourself using MyEcobeeInit.

Thnx for your patience.

P.S. You’d need to create an ecobee3RemoteSensorInit instance per thermostat, as the smartapp can work with a single thermostat only.
Regards.

Hi Yves,

I have cleared the cache again but I can get this error to appear pretty much anytime I go through the remoteInit once it has already been run once to create the sensors. If I run the remoteInit the first time (by deleting the previous install), then the error is not seen. Run the remoteInit again soon after creating the remote sensors via the remoteInit and the error shows up. I am not sure it is not still working though. Some are working. I do have a lot of sensors with the four ecobee3s (all with there own remoteInit as I mentioned previously).

I wonder if this is somehow related to running the remoteInit on a sensor that is currently used in a smart app or the SmartTiles app.

@gwithers105, let’s see how it goes. A clean uninstall and resinstall would address this issue, but as it’s a code update on the fly, the smartapp generates this kind of errors, which I think does not affect its processing.

I’ve installed and thus far no issues to report

Looks like ecobee servers are slow/down this morning…

@smart, no issue to report since yesterday… However, following some problems, I posted a question at the ecobee forum if we could get a status page (like ST).

Let’s see what they will respond.

http://developer.ecobee.com/api/topics/ecobee-servers-outage

Regards.

www.ecobee.com is not reachable from here at least in the U.S. (Jersey… Shouldn’t generalize… Tried different laptops, phones as well as iPads!

Update looks like up now

Hello ecobee3 users out there,

I made some changes today so that temperature variables posted will be more precise (at least if
you click on your temperature sensor(s) under https://graph.api.smartthings.com/device/list).

If you want to upgrade to the latest release, you’d need to do the following (as usual):

(1)Grab the latest version of MyEcobee Device at github:

Save and Publish.

(2) Clear your cache as the old Device may be cached

Kill your smartThings app if running.

On Android, you’d need to go to settings/apps/smartthings and clear cache.

On iOS, you’d need to uninstall the smartThings app and reinstall it.

(3) Update the ecobee3RemoteSensorInit smartapp

Grab the latest code at

Save and publish.

Regards.

P.S. Let me know how it goes. I tested the My ecobee Device on my end (on both Android and iOS), and it seems to be working well with the new precision. Of course, I was not able to test the ecobee3’s remote sensor data polling, so let me know of any issues.

Thnx for your patience.

i will test the e3remotes tonight.

FYI - the humidity sensor for the thermostat is not being reflected in the “remote sensor” (which isnt remote). I’ll try to figure that out tonight or tomorrow morning (if my flights actually make it tonight).

Thanks for you constant dedication to this effort - Ecobee and SmartThings owe you some big time appreciation…

Barry

FYI @storageanarchy, the remote sensors’ humidity is not available right now. It will be available with future firmware release. I’m keeping the remote sensor’s humidity attribute open for that usage. Please don’t use it for other use.

My code is ready to handle humidity in ecobee3RemoteSensorInit for when the firmware release will be GA.

P.S. I prefer to be the only one working on My Ecobee device and related smartapps as I have future plans for them.

I can implement some of your feedback (like I did before) when it’s appropriate with my plans.

Thanks ahead.

Yves -

The main thermostat is reporting humidity now, it is just not appearing in the remoteSensor temp/humidity display for the thermostat. (It does appear in the thermostat device though). I can see the humidity report in the logs as part of the updateRemoteSensors log entries. That’s all I’m saying.

I don’t plan on modifying your code (beyond a few personalization tweaks) - I’m just offering to help debug it since I have the complete setup installed. NBD…

@storageanarchy, you can try to uncomment line 309 (updateHumiditySensors) in ecobee3RemoteSensorInit and see if it works, but as ecobee has not released this feature officially (to my knowledge), there could be some issue.

Let me know how it goes.

P.S. I’m bit protective of my code as I’ve spent probably more than 1500 hours to develop it (more than 10K lines of code for MyEcobee Device and related smartapps). This is about 1 year of my (work) lifetime!