[DEPRECATED] Universal Ecobee Suite, Version 1.8.01

FWIW, there are many more ideas in the documentation - each of the Helpers is designed to provide a simple means to accomplish common automation tasks...

2 Likes

I've hit a snag. I've gotten a couple helpers set up. In short, when I go to sleep, my hub receives a Maker API message, which turns on a "dad sleeping" switch. Ecobee suite sees the switch and changes the thermostat to a custom comfort profile, coincidentally named "dad sleeping," with a hold for 1 hour. "Dad sleeping switch turns back off. But the thermostat wasn't changing. Error in the log is:


I went in to the app code and changed the "isInteger" to "toInteger" and that solved the dad sleeping issue, the hold successfully took for the one hour. But then that messed up my "mode becomes away" to set the away profile. I don't remember the exact error and have already repaired the package, but it involved line 866 of the routines helper and "indefinite is invalid." After repairing the installation, the indefinite away hold when I'm away is working again, but now "Dad Sleeping" is throwing the above error again.

Any suggestions, or is this even related to the app code? If not, then I apologize for wasting time and will head off to do more research. Thank you!

What did you set the “holdHours” to in the helper (it appears to be blank/empty/null).

That's definitely something I should have mentioned in the narrative. I had it set to 1 hour and have also tried 2.

I was curious why it showed the value as being what appears to be an invalid character. I've also tried copy/pasting a "1" from my text editor in case there was some stupid formatting being carried over, no change.

Try changing lines 831 & 832 from:

            if (settings.holdHours && settings.holdHours.isInteger()) {
            	sendHoldType = settings.holdHours

to:

            if (settings.holdHours?.isNumber()) {
            	sendHoldType = settings.holdHours.toInteger()

Sorry for the delay. I tried to apply your code last night on mobile while I was in bed, but couldn't get the window to stop jumping back up to the top. Just applied it via PC to no avail. Same error, except it specifies the "isNumber" now instead of "isInteger" with the same "[]" as being the value.
There's a clue though... I thought that was single invalid character sign, but that's actually an open and close bracket... I'll do some more playing around in the meantime.

Not sure if this helps at all, but I tried changing the hold hours to 12 and see in the logs that it at least properly records the number at some point, but apparently that value isn't getting passed along?

Update - More information
I changed the hold time to "2 hours" explicitly, rather than the "set number of hours" and got the following in the logs when I tried to activate the switch and routine:

After changing the hold to "til next program" I got these logs and it completed successfully.

Update again - Went back to rule machine to accomplish the goal. Rather than having it turn on the "dad sleeping" switch to activate the routine via Ecobee suite, I just send the custom command to change program with 1 hour hold parameter and the thermostat takes it.
image

I'm still down for tweaking code and changing things if this is deemed to be a bug and you need a test dummy. :slight_smile:

I don't know if this is relevant for Universal Ecobee Suite (or anything non-homekit), but I thought I'd share this reddit thread I came across just in case. It seems that a recent update to the smart sensor firmware has exposed occupancy status to homekit, where previously it only exposed motion.

On a related note, when I'm looking at a sensor device in hubitat, is the 'motion' status actually checking motion detection, or occupancy? It seems to stay active for quite a long time, so if it is actually motion does the sensor only check for / report back motion infrequently?

Here is a reddit discussion about the timing/delay of the motion trigger and reset time for the ecobee remote sensors:

I dont use the motion reporting on them because it is not fast enough to make use of. The new presence option might have a little more logic in it, but these sensors deliberately do not update frequently to save battery life, and also to ensure there are no fast changes in the hvac system causing it to fast cycle/etc.
I have recently started adding better motion and temp/humidity sensors in rooms that already have the ecobee remote sensors to have more accurate readings for automation and averaging of live temperatures/humidity in vs outside of the house and leave the ecobee sensors to just communicate with the thermostat.

Yes the Ecobee sensors and the polling to get status doesn't make them a candidate for motion, but from a room occupancy perspective they work great for the room being "unoccupied" that is how I use them . I have rules for each room that has a sensor in it and if the room goes unoccupied the rooms scenes automatically reset. The same for Sleep or Away I use the group motion sensors app and created 3 groups, upstairs, downstairs, and whole house. So when downstairs goes unoccupied when it's evening or night outside I set sleep mode. When whole house goes inactive I set away.

As I always said use the strengths of the product and ignore the weaknesses.

I don’t think the API is returning any new information, just now the implementation is reporting the (relatively new) “occupied” attribute. I will look into providing both motion and occupancy, but it won’t be for a few weeks…

It almost sounds like what it has been reporting as motion is actually occupancy

Yup, because until recently there was no formal attribute for occupancy on ST or HE. Pretty much every Ecobee integration for both SmartThings and Hubitat reflected “occupied” as “active”…

1 Like

I've been searching through everything I can find on the Ecobee suite. I was hoping to be able to change the volume on a Roku sound bar when the fan is running on our HVAC. Unfortunately the native Ecobee integration doesn't get updates on the system status. Would I be able to do this with Ecobee Suite if I changed over to it? TIA.

The "equipmentStatus" attribute would be the go to for state of the HVAC unit being controlled, the value of this can be used for automations. Just parse out the word "fan"

The native device handler reports thermostatOperatingState; any non-idle value means the fan is running (unless you have steam radiators). But it doesn’t poll often enough to give you updates in a timely manner.

With Ecobee Suite, set the polling frequency to 1 minute. Fan updates can be up to a minute delayed, so it’s still not perfect.

I think you can get better accuracy via the Ecobee native integration with HomeKit…

1 Like

1 minute polling won't get me throttled by Ecobee?

I can’t say for sure but I’ve had mine set to 1 minute for years and never get throttled.

I've been using 1 minute forever with Ecobee even when I was on SmartThings.

Ecobee Suite uses the approved lightweight polling mechanism so as not to inflict throttling…