What are its possible values? How do I tell the difference between a hold and vacation mode? Is it "hold", "vacation", or null?
it's actually:
- "hold"
- "vacation"
- "null"
- null
- "fan on"
- "fan circulate"
- "fan auto"
That said, when the thermostat is "off", you probably don't care if there is a hold, so:
programNow = ""
holdNow = false
if (thermostatMode == "off") {
programNow = scheduledProgram
holdNow = false
} else {
programNow = currentProgram
holdNow = (currentProgramName.contains('Hold')
}
Can you add programNow
and holdNow
as new attributes on the thermostat following the logic you described? That's exactly the logic I need, but I'm writing my rules in webCoRE, so I'd have to duplicate that logic a bunch of times otherwise... Besides, something like this seems useful to be part of the driver.
EDIT: The only change I'd suggest to your logic is that if there is a vacation hold in place, programNow
should show it even if the thermostat is off.
Getting back to these... both currentProgram
and scheduledProgram
show the correct value after the scheduled program change while the thermostat is off. I didn't need to force the device to update.
I wonder if Ecobee simply had an API hiccup last night. Nothing is listed on their status page... strange.
Since the information you need is already provided by adding a little logic to your webCoRE Piston, I don't see it appropriate for everyone to have to spend the additional CPU cycles for something that only benefits your chosen implementation.
Glad to hear things are working again today...I was pretty sure that ES Manager was already doing the right thing, because I was unable to replicate your problem myself.
Wow ... the new suite is a work of art. I have been using the Hubitat version of Ecobee integration which works ok and includes ecobee+ switch integration. I have 4 ecobee+ switches primarily in bathrooms to control fans and lights based on motion, etc. When I first installed the new Ecobee Suite I assumed I would be turning off the old Hubitat version. When I realized the New Ecobee Suite does not support ecobee+ switches I thought I would be able to disconnect, delete, etc. only the non-switch devices and let the old Hubitat native Ecobee Integration continue to handle the ecobee+ switches. Unfortunately, that doe not appear to be possible. Even when I delete and or deselect the thermostats and sensors in the old Hubitat native Ecobee Integration app and hit save, they reappear in the device list and when I go back to the app all devices are checked. Right now I am leaving both old the old Ecobee Integration and the new Ecobee Suite active. Any ideas on a work around to control the ecobee+ switches? Thanks
Thanks for the reply. Using the 1-min poll time only worked temporarily.
Now the hub is back to ~ 70% of uptime being used by this plugin and Hubitat keeps telling me that hub load is severe.
Any tips to optimize or profile?
The logs show that each poll takes 3 minutes
That's the only solution, as I have no intention of adding Ecobee Switch support...someone once did add it to my ES, but I never integrated the changes.
Wow - something definitely is wrong for your installation.
Please turn on Log Level 4 (In ES Manager Preferences) and PM me a snippet of a complete cycle or two...
FWIW, that doesn't necessarily mean anything is wrong. Here's my own stats:
Local apps: 1h 33m 2s / 2d 19h 44m 26s total (2.3%)
Name | Total, ms | Count | Avg, ms | % of busy | % of total | State size |
---|---|---|---|---|---|---|
Ecobee Suite Manager Online | 4,081,559 | 6,330 | 645 | 73.1 | 1.674 | 23,891 |
Notice that local apps are busy only 2.3% of wall clock time, so ESManager being 73.1% of 2.3% means that it is only was "busy" for 1.64% of wall clock time. This is well within the CPU capabilities of a Hubitat Hub.
Thanks for the info! I'll log some info and report back!
In my case, Ecobee Suite Manager is 68% of total! If I understand this correctly, it means it is busy ~16 hours every day. Your number looks a lot better since it's only 1.64% of wall clock.
FWIW, it returns to a low percentage after I reboot but hubitat becomes slow and unresponsive after a few days.
Please be sure that you are running the latest release of the entire Ecobee Suite.
Also, please summarize your configuration for me - how many thermostats & sensors are you running?
Apologies if this has come up in the past and I couldn't find it.
I have some rules in webcore that I'm migrating to rule machine. They set the fan mode to on, wait an amount of time and turn it off.
In webcore I always had to call resumeProgram() to get the fan to turn back off.
Fan auto or off didn't seem to work.
But those seem to be my only options in rule machine..
[EDIT] I found resumeProgram under run custom actions. Is resume program still the best way to get the fan back into Auto?
Yes, because Ecobee creates a custom Hold event for βfanOnβ - the only way to clear it is resumeProgram()
Perfect I'll just keep using that custom command with the resumeprogram function. Thanks!
I have been using Ecobee Suite for a while now and have loved it. Recently I started using the optional "Synchronize Global Pause with this switch" feature.
The only helpers I use are the "Mode\Switches\Program" Helper and the "Smart Vent & Switches" Helper.
When turning on the virtual switch I am using to sync global pause (ZZ Pause Ecobee) it works and pauses all helpers I am using. However when I turn it back off, it will unpause all of the Mode Helpers but I can never get it to unpause either of the two Vent Helpers I am using. I am seeing in the logs:
Is this a bug in this particular helper or am I missing something? I saw in your changelogs in the Smart Vents helper code (the line i have highlighted in purple) and am wondering what this means
Thanks in advance for any help.
Try manually unpausing both the Vent helpers, then turn on Global Pause, wait a few minutes, then Global Unpause and then check the logs for the Helpers. It won't un-pause if they were previously paused when the Global Pause was turned on.
Let me know if it isn't un-pausing when the Helpers weren't paused when the Global Pause was started...
Thank you sir. I tried it. I made sure the Global Pause slider was off, went into each helper and turned off the "Pause this helper" slider. Waited a few minutes. Turned on the Global Pause slider, verified all helpers were showing as paused. I then waited five minutes and turned off the Global pause slider. All helpers except the vent helpers would unpause. The only way I can get the vent helpers to unpause is to go into each vent helper and manually turn off "Pause this helper"
I did remove the virtual switch from the optional "Synchronize Global Pause with this Switch" setting to eliminate any issues with that
Thanks again.
PS I have remote admin and a guest account if you want to look at it yourself, DM me and I will shoot you the credentials.
Trying to configure Thermal Comfort on my ecobee and getting the following:
Unexpected Error
An unexpected error has occurred trying to load the app. Check Logs for more information.
Error: Ambiguous method overloading for method java.math.BigDecimal#plus. Cannot resolve which method to invoke for [null] due to overlapping prototypes between: [class java.lang.Character] [class java.lang.String] [class java.lang.Number] [class java.math.MathContext]
It's reproducible as I have to remove and add the child instance every time it happens. I removed the previous ecobee build and installed with HPM recently. Steps:
Add new Thermal helper
Select Ecobee
Select only internal sensors and leave humidity as average
Click any drop down and the error appears.
If I only select OpenWeather as the humidity, then the error doesn't appear. If I only select the remote sensor or the main thermostat, the error doesn't appear.
Smart Circulation is also installed.
Ecobee remote sensors do not support humidity reporting...