Ecobee 3 Remote Sensors into ST

Hello @jodyalbritton,

After checking their website, it looks like the official APIs have been released…

http://developer.ecobee.com/api/topics/ecobee-march-2015-update-is-live

This means that there is something in my code that needs to be corrected.

Whenever you have a chance, I’d need your input to see what’s going on.

To get all the tracing I need to correct the issue, please do the following

  1. Grab the latest code for My Ecobee device (as I made some changes since the last run)
  2. Go to https://graph.api.smartthings.com/device/list,
  3. Click on My Ecobee device,
  4. Edit the preferences (middle of the page)
  5. Set verboseTrace to true (as long as there is a value)
  6. Click Save at the bottom of the page
  7. Go to https://graph.api.smartthings.com/ide/logs
  8. Run ecobee3RemoteSensorInit on your smartphone/tablet
  9. Watch for any errors in the logs for My Ecobee Device and ecobee3RemoteSensorInit
    Send me the logs of any area of concerns.

Thnx again!

Ok. Got this one error:

8:58:50 AM: error java.lang.NullPointerException: Cannot invoke method leftShift() on null object @ line 2726

This was in the thermostat device type log

Wow, you were too fast for me… I just checked in some code that hopefully should correct this issue…

Could you retry after updating the My Ecobee device code in the IDE?

Sorry, and thnx again!

I think we are getting closer

 9:13:50 AM: error groovy.lang.MissingPropertyException: No such property: REMOTE_SENSOR_TYPE for class: script1427724790149256799237 @ line 2666

@jodyalbritton, sorry about that… I didn’t have my coffee this morning…

Made the change to correct this issue…

Let me know when you can try again with the latest device code at github.

I think that we’re really getting closer now…

Ok. I can see the sensors now, but I get to the last page where I assign a name and set notifications, etc. I am getting “unexpected error occurred” when trying to save. This is in the log

 error physicalgraph.app.exception.UnknownDeviceTypeException: Device type 'Motion Detector' in namespace 'smartthings' not found. @ line 173

And if I don’t select any motion detectors and only select temps

 9:26:24 AM: error physicalgraph.app.exception.UnknownDeviceTypeException: Device type 'Temperature Sensor' in namespace 'smartthings' not found. @ line 198

Sorry, I need to modify my instructions…

Prior to calling ecobee3RemoteSensorInit, you need to create 2 additional generic device types in your IDE:

a) Motion Sensor

b) Temperature Sensor

Those are 2 devices types from SmartThings. In order to do so,

  1. Go to https://graph.api.smartthings.com/ide/devices

  2. Click on new SmartDevice on the right

  3. On the new SmartDevice page, click on the “From Template” tab

  4. Scroll down to Temperature Sensor

  5. Click “create” at the bottom of the page

  6. Click Save and publish on the next page

  7. Do the same for Motion Sensor

  8. Click “create” at the bottom of the page

  9. Click save and publish

Now, run ecobee3RemoteSensorInit and it should work fine.

Let me know.

@yvesracine I am noticing a similar error in the life360 connect app. It is trying to access the the “Life360 User” in namespace smartthings and something is preventing it. I have a ticket open with support about that issue.

@jodyalbritton, it may be a SmartThings issue… But you can create a local copy of these generic device types in your IDE context. I did it on my end, and it works fine.

Let me know if you have any errors after creating these device types.

@yvesracine bazinga! I think you may have just helped me to resolve my life360 user issues as well. Sensors are now visible.

@jodyalbritton, Thnx for your help… This is really debugging on the fly as I can’t test this new functionality
on my end.

I’m glad that it works now…

I will create a readme file for these instructions tonight as they are a bit complicated for regular ST users.

Bye for now.

BTW, the sensor data should be refreshed according to the interval you specified in ecobee3RemoteSensorInit.

Let me know of any refresh issue.

They are visible and I can see temp data in the logs but they are not displaying anything. The temps all show only dashes and the motions are reporting motion. Nothing in the activity logs of each device. I am getting this error

9:48:54 AM: error java.util.concurrent.TimeoutException: Execution time exceeded 20 app execution seconds: 166121756659509 @ line 50

I have the poll set to 5 minutes.

@jodyalbritton, Is there any other errors in the ecobee3RemoteSensorInit trace log?

You may want to try a different interval (let’s say 10 minutes) as SmartThings seems to have some execution
constraints around the smartapp.

Let me know.

@jodyalbritton,

I noticed in the past week more issues of that sort and I think that it is due to some new cloud constraints
for scheduling jobs.

I just made some changes to the ecobee3RemoteSensorInit smartapp to avoid these contention issues.

Please use the new version in github, and let me know.

here is the output of the logs

5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug initialize>end
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: trace Scheduling 'takeAction' for InstalledSmartApp: 5455bc30-b884-4c04-b96c-1af0ccc0424d
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: trace ecobeeRemoteSensorsInit>scheduling takeAction every 10 minutes
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: trace takeAction>end
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateMotionSensors>couldn't find Motion Dectector device JODY for dni 5455bc30-b884-4c04-b96c-1af0ccc0424d.JODY.Motion Detector.2, probably not selected originally
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateMotionSensors>looking for 5455bc30-b884-4c04-b96c-1af0ccc0424d.JODY.Motion Detector.2
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateMotionSensors>couldn't find Motion Dectector device Kids' Room for dni 5455bc30-b884-4c04-b96c-1af0ccc0424d.Kids' Room.Motion Detector.2, probably not selected originally
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateMotionSensors>looking for 5455bc30-b884-4c04-b96c-1af0ccc0424d.Kids' Room.Motion Detector.2
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateMotionSensors>couldn't find Motion Dectector device Bedroom for dni 5455bc30-b884-4c04-b96c-1af0ccc0424d.Bedroom.Motion Detector.2, probably not selected originally
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateMotionSensors>looking for 5455bc30-b884-4c04-b96c-1af0ccc0424d.Bedroom.Motion Detector.2
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateTempSensors>ecobeeRemoteSensorOccData= [2,Bedroom,occupancy,false, 2,Kids' Room,occupancy,false, 2,JODY,occupancy,false]
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateTempSensors>couldn't find Temperature Sensor device JODY for dni 5455bc30-b884-4c04-b96c-1af0ccc0424d.JODY.Temperature Sensor.1, probably not selected originally
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateTempSensors>looking for 5455bc30-b884-4c04-b96c-1af0ccc0424d.JODY.Temperature Sensor.1
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateTempSensors>couldn't find Temperature Sensor device Kids' Room for dni 5455bc30-b884-4c04-b96c-1af0ccc0424d.Kids' Room.Temperature Sensor.1, probably not selected originally
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateTempSensors>looking for 5455bc30-b884-4c04-b96c-1af0ccc0424d.Kids' Room.Temperature Sensor.1
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateTempSensors>couldn't find Temperature Sensor device Bedroom for dni 5455bc30-b884-4c04-b96c-1af0ccc0424d.Bedroom.Temperature Sensor.1, probably not selected originally
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateTempSensors>looking for 5455bc30-b884-4c04-b96c-1af0ccc0424d.Bedroom.Temperature Sensor.1
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:34 AM: debug updateTempSensors>ecobeeRemoteSensorTmpData= [1,Bedroom,temperature,74, 1,Kids' Room,temperature,75, 1,JODY,temperature,78]
5455bc30-b884-4c04-b96c-1af0ccc0424d 10:05:33 AM: trace takeAction>about to call generateRemoteSensorEvents()

Should there be a space there?

And then this error

10:10:03 AM: error java.lang.IllegalArgumentException: Name cannot be null. @ line 294

@jodyalbritton, could you do the following (whenever you have a chance):

  1. go to https://graph.api.smartthings.com/device/list
  2. For each Motion or Temp sensor object created, please note its device network id
  3. They should match the following

5455bc30-b884-4c04-b96c-1af0ccc0424d.Kids’ Room.Temperature Sensor.1
5455bc30-b884-4c04-b96c-1af0ccc0424d.Kids’ Room.Motion Detector.2
5455bc30-b884-4c04-b96c-1af0ccc0424d.Bedroom.Temperature Sensor.1
5455bc30-b884-4c04-b96c-1af0ccc0424d.Bedroom.Motion Detector.2
5455bc30-b884-4c04-b96c-1af0ccc0424d.JODY.Motion Detector.2
5455bc30-b884-4c04-b96c-1af0ccc0424d.JODY.Temperature Sensor.1

If not, please send me their real device network ids

You may have to unselect them in the ecobee3RemoteSensorInit (to delete them)
and restart over…

As we have made many changes to the code along the way, I’m not sure what’s going on here.

Thnx.

Yes, it`s OK, the name of the sensor is part of the dni (device network id)