Ecobee 3 Remote Sensors into ST

@yvesracine looks like my thermostat got updated to 3.6 today and I am now seeing motion activity using your device type and smart code. Awesome work.

@huydnguyen lucky you! I am still on the older version
 :slight_smile:

@huydnguyen, thnx for the feedback, really appreciated to see that’s working fine for you. As I don’t own an ecobee3 myself, it’s kind of hard for me to test such features.

BTW. Check this out, guys!

@yvesracine BTW I just had the 3.6 pushed on my ecobee3 unit today and all remote sensors are now appearing in the iOS app. Love their minimalist designed app.

Mine was also updated but I’m not sure exactly when. I know it was between yesterday morning and this morning. I refreshed the remotesensorinit to see if I could get the activity screen of the motion sensor activity to show anything. As it stands now the activity screen for all 3 sensors is still blank.

Does this sound right? When refreshing the init the temp activity gives a reading.

Hi @Drewbert34, to be able to know exactly what’s going on, just follow the steps below:

  1. Go to https://graph.api.smartthings.com/device/list
  2. Click on My Ecobee device,
  3. Edit the preferences (middle of the page)
  4. Set verboseTrace to true (as long as there is a value)
  5. Click Save at the bottom of the page
  6. Go to https://graph.api.smartthings.com/ide/logs
  7. Run ecobee3RemoteSensorInit on your smartphone/tablet
  8. Watch for any errors in the logs related to My Ecobee Device and ecobee3RemoteSensorInit
  9. PM me the relevant section of the logs (if any errors)

Regards.

It looks like because I renamed the app it caused issue. I removed the app from the sensors and then uninstalled the sensors. Once I installed again everything appears to be fine.

If I’m understanding correctly
due to polling being a 5min. minimum the motion detectors cannot be used to trigger lights?

@Drewbert34, the remote sensors are not updated by ecobee frequently enough to be used for these use cases at the moment.

However, they can be used to know if a room is occupied or not, but not to trigger actions in «real time», such as triggering lights when a person comes in a room.

I don’t know if ecobee is planning to make those remote sensors ‘more real time’ soon.

Sorry.

@yvesracine, first off, this is a great application that I know many of us appreciate your hard work and support. Having access to my Ecobee from ST is critical and enhances my Home Automation capabilities immensely. Secondly, I am sending in my PayPal donation to you today, at least it will cover your coffee consumption for a short period! :smile:

I have a few questions in my usage of the device-type.myecobee:

  1. I have two (2) Ecobee 3’s in our home to control our “Main Floor/LL” & “Upstairs BR’s” separate HVAC systems. In your ecobee3RemoteSensorsInit 1,1 app, I can only select one (1) of my Ecobee thermostats. Do I need to clone and rename the ecobee3RemoteSensorsInit App to access the other Ecobee remotes or can you modify the input to allow multiple selection. I have both my Ecobee 3 systems defined and activated in “My ecobee Init (Service Manager) 1.9” and the temperature of the main and upstairs consoles are showing perfectly, but only the 5 remote sensors from the Main Ecobee 3.
  2. My “Main Ecobee 3 Thermostat” has 5 remote sensors. I am seeing all 5 remote sensors reporting in ST that are connected to the Main Ecobee 3. But ST is not showing a motion sensor for the Ecobee 3 “Main Ecobee 3 Thermostat” console mounted on the wall, for a total of 6 motion sensors. Shouldn’t my Ecobee 3, labeled as “Main Ecobee 3 Thermostat” also show as a remote sensor? It does show up in ST as a temperature sensor with all the other rich attributes.
  3. Is there any material disadvantage to using the fastest polling interval (5 min)? Will a higher polling frequency cause the Ecobee 3 remote sensor batteries to be drained sooner than a longer polling frequency?
  4. I just read about the “device-type.myecobee beta”. Should I run this version/release instead if I do not have the Smart Vents yet?

Thanks!

Hello @kurtsanders,

To answer your questions:

  1. The ecobee3RemoteSensorInit smartapp is designed to work with a single thermostat only. So, if you have a second thermostat, please rename the smartapp.

  2. The main thermostat shows up as a temperature sensor in My Ecobee device type. It is not considered as a remote sensor per se (not in the APIs anyway).

  3. The short polling interval allows you to get the latest report from the ecobee’s cloud infrastructure as soon as possible in ST. It does not affect the remote sensor’s batteries per se as the polling interval between ecobee’s cloud and the physical remote sensor is not affected.

  4. The beta code has been moved to production after some testing by the ST community. So, if you grab the latest code in the main branch at github:

You have the latest release, and you’re ready to go! The code is not dependent on any smart vents.

Regards.

P.S. Thnx for your donation!

1 Like

Thanks @yvesracine for the quick and detailed responses.

  1. Duplicated “yracine : ecobee3RemoteSensorsInit” and renamed to “yracine : ecobee3RemoteSensorsInit2”. Published and added missing remote Ecobee 3 sensor(s) from second Ecobee 3.
  2. That’s disappointing news since the main console has a motion presence capability! Next time you are in communication with Ecobee API development, would you inquire as to why they choose not to expose the Ecobee’s motion presence capability in the Ecobee 3’s controller?
  3. I went with 5 minutes for polling since this only appears to have no negatives.
  4. Added and testing!

Thank you!

Hello @kurtsanders, as far as my answer to your question 2 is concerned, you need to know that My Ecobee Device type already encapsulates a presence sensor that is set when you use smartapps like AwayFromHome and ecobeeResumeProg. In fact, the presence sensor is then updated more rapidly than ecobee can do it on their end with their ‘occupied’ logic in the cloud.

Regards.

1 Like

@kurtsanders and others who use ecobee3RemoteSensorInit,

Today, I made some minor changes to My Ecobee Device to also get the main thermostat’s occupancy and temperature values and also expose them as individual temp & motion sensors.

In order to get those values, you need to do the following 3 steps:

  1. You need to update My ecobee Device type. Grab the latest code at

Make sure to Save and publish.

  1. Flush your cache as the old device is still cached by the OS.

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.

  1. Execute ecobee3RemoteSensorInit smartapp

I’d recommend to activate the live logging and get more tracing
in the IDE by following these steps:

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 true (as long as there is a value)
e) Click Save at the bottom of the page
f) Go to https://graph.api.smartthings.com/ide/logs

And then, Run ecobee3RemoteSensorInit on your smartphone/tablet

You’ll be able to select the new sensors in order to instantiate them.

After execution,the new sensors should then appear in

https://graph.api.smartthings.com/device/list

Let me know how it works for you.

2 Likes

Thanks @yvesracine 
 what outstanding magic :+1: you accomplished in a day


I followed your detailed instructions for deinstallation and re-installation of the My Ecobee Device and voilà, my two Ecobee 3 wall mounted thermostats appeared as new motion sensors along with my 6 other remote room sensors. All the other advanced sensor attributes are showing
 I changed my polling interval to 5 minutes


Here is my verbose trace output, there was an error, but it did not seem to have any affect on the success of your changes. Again thanks!

f0524c69-0092-499c-8a05-c56e53a73915 7:40:07 PM: trace takeAction>end
f0524c69-0092-499c-8a05-c56e53a73915 7:40:05 PM: debug takeAction>Looping thru thermostats, found id f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968, about to poll
f0524c69-0092-499c-8a05-c56e53a73915 7:40:01 PM: debug takeAction>Looping thru thermostats, found id f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833, about to poll
f0524c69-0092-499c-8a05-c56e53a73915 7:40:01 PM: trace takeAction>begin
f0524c69-0092-499c-8a05-c56e53a73915 7:34:56 PM: trace setting poll to 20
f0524c69-0092-499c-8a05-c56e53a73915 7:34:56 PM: trace takeAction>end
f0524c69-0092-499c-8a05-c56e53a73915 7:34:55 PM: debug takeAction>Looping thru thermostats, found id f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968, about to poll
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug takeAction>Looping thru thermostats, found id f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833, about to poll
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: trace takeAction>begin
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug created 2 thermostats
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug found Temperature Upstairs Control with id f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968 already exists
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug Looping thru thermostats, found id f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug found Temperature Main Control with id f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833 already exists
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug Looping thru thermostats, found id f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug deleting 0 thermostats
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug getChildDevices(false), children=2
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug initialize
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: trace MyEcobeeInit is attempting to unsubscribe from all events
f0524c69-0092-499c-8a05-c56e53a73915 7:34:52 PM: debug Updated with settings: [thermostats:[f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833, f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968]]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug list p: [name:deviceList, title:Select Your Thermostats, nextPage:null, previousPage:null, content:ecobeeDeviceList, install:true, refreshInterval:-1, sections:[[input:[[title:, description:Tap to choose, multiple:true, required:true, name:thermostats, type:enum, metadata:[values:[f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833:Main Floor, f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968:Upstairs]]]], body:[[title:, description:Tap below to see the list of ecobee thermostats available in your ecobee account and select the ones you want to connect to SmartThings., element:paragraph, type:paragraph, required:false, multiple:false], [element:input, title:, description:Tap to choose, multiple:true, required:true, name:thermostats, type:enum, options:[f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833:Main Floor, f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968:Upstairs]]], hideable:false, hidden:false]], popToAncestor:null, onUpdate:null, uninstall:true]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug device list: [:]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug thermostats: [:]
**f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: error getEcobeeThermostats> Probable cause: not the right account for this type (ems) of thermostat [uri:https://api.ecobee.com, path:/1/thermostat, headers:[Content-Type:text/json, Authorization:Bearer D6N5aQtCNuS8AmhQJ8WZZwAeoVuXjWbS], query:[format:json, body:{"selection":{"selectionType":"managementSet","selectionMatch":"/"}}]]**
**f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug device list params: [uri:https://api.ecobee.com, path:/1/thermostat, headers:[Content-Type:text/json, Authorization:Bearer D6N5aQtCNuS8AmhQJ8WZZwAeoVuXjWbS], query:[format:json, body:{"selection":{"selectionType":"managementSet","selectionMatch":"/"}}]]**
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug _______AUTH______ D6N5aQtCNuS8AmhQJ8WZZwAeoVuXjWbS
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug getting device list
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug device list: [f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833:Main Floor, f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968:Upstairs]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug thermostats: [f0524c69-0092-499c-8a05-c56e53a73915.Main Floor.311061244833:Main Floor, f0524c69-0092-499c-8a05-c56e53a73915.Upstairs.316514535968:Upstairs]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug getThermostatDisplayName
f0524c69-0092-499c-8a05-c56e53a73915 7:34:48 PM: debug getThermostatDisplayName
f0524c69-0092-499c-8a05-c56e53a73915 7:34:47 PM: debug device list params: [uri:https://api.ecobee.com, path:/1/thermostat, headers:[Content-Type:text/json, Authorization:Bearer D6N5aQtCNuS8AmhQJ8WZZwAeoVuXjWbS], query:[format:json, body:{"selection":{"selectionType":"registered","selectionMatch":""}}]]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:47 PM: debug _______AUTH______ D6N5aQtCNuS8AmhQJ8WZZwAeoVuXjWbS
f0524c69-0092-499c-8a05-c56e53a73915 7:34:47 PM: debug getting device list
f0524c69-0092-499c-8a05-c56e53a73915 7:34:47 PM: debug ecobeeDeviceList()
f0524c69-0092-499c-8a05-c56e53a73915 7:34:46 PM: debug RedirectUrl = https://api.ecobee.com/authorize?client_id=qqwy6qo0c2lhTZGytelkQ5o8vlHgRsrO&redirect_uri=https%3A%2F%2Fgraph.api.smartthings.com%2Fapi%2Ftoken%2F932772dd-15aa-4ef1-9a8f-a0f055e76d04%2Fsmartapps%2Finstallations%2Ff0524c69-0092-499c-8a05-c56e53a73915%2FswapToken&response_type=code&scope=ems%2CsmartWrite&state=132a4021-15f1-4420-b86e-c2aae3beae8b
f0524c69-0092-499c-8a05-c56e53a73915 7:34:46 PM: debug buildRedirectUrl
f0524c69-0092-499c-8a05-c56e53a73915 7:34:46 PM: debug oauthInitUrl
f0524c69-0092-499c-8a05-c56e53a73915 7:34:46 PM: debug authPage()
f0524c69-0092-499c-8a05-c56e53a73915 7:34:38 PM: debug Generating AppDebug Event: [name:appdebug, descriptionText:swapped token for [scope:smartWrite,ems, expires_in:59, token_type:Bearer, refresh_token:J13lxWpGvYc1MGavziPYqWrdFULCdpr3, access_token:D6N5aQtCNuS8AmhQJ8WZZwAeoVuXjWbS], displayed:true]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:38 PM: debug Swapped token for [scope:smartWrite,ems, expires_in:59, token_type:Bearer, refresh_token:J13lxWpGvYc1MGavziPYqWrdFULCdpr3, access_token:D6N5aQtCNuS8AmhQJ8WZZwAeoVuXjWbS]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:38 PM: debug Swapping token [state:6f423955-49e2-42cb-9b44-041237c310f6, code:O1ojFhKNGDr0V0YottdfalBhTi1JriS0, theAccessToken:932772dd-15aa-4ef1-9a8f-a0f055e76d04, appId:f0524c69-0092-499c-8a05-c56e53a73915, param1:swapToken, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:38 PM: debug buildRedirectUrl
f0524c69-0092-499c-8a05-c56e53a73915 7:34:38 PM: debug Generating AppDebug Event: [name:appdebug, descriptionText:swapping token: [state:6f423955-49e2-42cb-9b44-041237c310f6, code:O1ojFhKNGDr0V0YottdfalBhTi1JriS0, theAccessToken:932772dd-15aa-4ef1-9a8f-a0f055e76d04, appId:f0524c69-0092-499c-8a05-c56e53a73915, param1:swapToken, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi], displayed:true]
f0524c69-0092-499c-8a05-c56e53a73915 7:34:38 PM: debug swapping token: [state:6f423955-49e2-42cb-9b44-041237c310f6, code:O1ojFhKNGDr0V0YottdfalBhTi1JriS0, theAccessToken:932772dd-15aa-4ef1-9a8f-a0f055e76d04, appId:f0524c69-0092-499c-8a05-c56e53a73915, param1:swapToken, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi]
f0524c69-0092-499c-8a05-c56e53a73915 7:33:30 PM: debug RedirectUrl = https://api.ecobee.com/authorize?client_id=qqwy6qo0c2lhTZGytelkQ5o8vlHgRsrO&redirect_uri=https%3A%2F%2Fgraph.api.smartthings.com%2Fapi%2Ftoken%2F932772dd-15aa-4ef1-9a8f-a0f055e76d04%2Fsmartapps%2Finstallations%2Ff0524c69-0092-499c-8a05-c56e53a73915%2FswapToken&response_type=code&scope=ems%2CsmartWrite&state=3291d249-aff1-4586-94f3-e6d1d8215370
f0524c69-0092-499c-8a05-c56e53a73915 7:33:30 PM: debug buildRedirectUrl
f0524c69-0092-499c-8a05-c56e53a73915 7:33:30 PM: debug oauthInitUrl
f0524c69-0092-499c-8a05-c56e53a73915 7:33:30 PM: debug authPage()
f0524c69-0092-499c-8a05-c56e53a73915 7:33:17 PM: debug RedirectUrl = https://api.ecobee.com/authorize?client_id=qqwy6qo0c2lhTZGytelkQ5o8vlHgRsrO&redirect_uri=https%3A%2F%2Fgraph.api.smartthings.com%2Fapi%2Ftoken%2F932772dd-15aa-4ef1-9a8f-a0f055e76d04%2Fsmartapps%2Finstallations%2Ff0524c69-0092-499c-8a05-c56e53a73915%2FswapToken&response_type=code&scope=ems%2CsmartWrite&state=6f423955-49e2-42cb-9b44-041237c310f6
f0524c69-0092-499c-8a05-c56e53a73915 7:33:17 PM: debug buildRedirectUrl
f0524c69-0092-499c-8a05-c56e53a73915 7:33:17 PM: debug oauthInitUrl
f0524c69-0092-499c-8a05-c56e53a73915 7:33:17 PM: debug authPage()

Success!

Question


Should I be seeing a difference in the actual thermostat temperature and the new sensor temp? I believe the displayed thermostat temp is an average of all sensors vs. the new sensor temp being particular to just that sensor.

@Drewbert34, the actual thermostat temperature is an average based on the occupied remote sensors.

Regards.

1 Like

Anyone else having the issue where @yvesracine ecobee device seem to loose authorization to the ecobee cloud every couple of days? After I go into the setup app and reauthorize, everything seems to work fine, so I am a bit stumped.

2 Likes

@yvesracine great work on these apps. I have a dumb question. I have an ecobee3 with 3 sensors. I’ve seen postings showing that the sensors may have an error in reading as much as 2c. if I look at ecobees sensor reading in the ecobees app or thermostat, and at the same time look at ST temperature readings of these same sensors after installing your temp sensors app, there is a 2c (4f) difference between them
shouldn’t they agree in ecobees or ST if they are reading the same sensor data sp finally since they are both averaging across long periods of time (10 min).

Hello @gator94, are you saying that there is 2C difference between ST’s temperature sensors and ecobee? The smartapp that I created reads the data directly from the Ecobee APIs, so the temperature data may be different between the APIs and the physical thermostat especially if the polling interval is high.

I don’t manipulate the temperature data or transform it, I just report it as is.

Regards.