[OBSOLETE] Updated Open Source Ecobee Device Type and SmartApps

I installed the code today and i don’t see temp readings from my remote sensors (just – in the temp frame), only the main thermostat is showing temp and current state

thanks

@kyparamedic - yeah, I haven’t figured out what the issue is with Android and Smart Circulation. Hopefully over the weekend.

@BatraD -

  1. Have you tried using the Refresh button?

  2. If it still fails, can you please watch live logging and find any Errors that are logged, on both Ecobee (Connect) and the sensor DTH itself? We need the first error after initialization, so if you could Open then Close/Save Ecobee (Connect) in the mobile app with live logging on, that should catch the error for us…

Thanks!

Barry,

thanks for the reply

  1. Yes, i have tried refresh as well as force closing the app and starting it again

  2. ecobee connect logs
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:19 PM: debug pollChildren() - Nothing has changed.
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:19 PM: info <===== Leaving checkThermostatSummary() result: false
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:19 PM: info Time since last poll? 0.06321666666666667 – atomicState.lastPoll == 1486062615503
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:19 PM: trace It has only been 0.0796 since last scheduleWatchdog was called. Please come back later.
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:16 PM: debug Found a running Event: [startDate:2017-02-02, ventilatorMinOnTime:20, isCoolOff:false, endDate:2035-01-03, endTime:00:00:00, type:autoHome, running:true, startTime:13:51:47, linkRef:, name:smartHome, isTemperatureRelative:false, occupiedSensorActive:false, isTemperatureAbsolute:true, holdClimateRef:home, drRampUpTemp:0, unoccupiedSensorActive:false, vent:off, heatRelativeTemp:0, fan:auto, coolRelativeTemp:0, coolHoldTemp:780, isOptional:true, fanMinOnTime:5, isHeatOff:false, heatHoldTemp:680, isOccupied:true, drRampUpTime:3600, dutyCyclePercentage:255]
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:15 PM: info =====> pollEcobeeAPI() entered - thermostatIdsString = 313859902619
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:15 PM: debug pollChildren() - Getting changes
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:15 PM: debug pollEcobeeAPI() - checking thermostats 313859902619
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:14 PM: debug After watchdog tagging
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:14 PM: trace poll() - Running at 2017-02-02 14:10:14 EST (epic: 1486062614420)
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:15 PM: info <===== Leaving checkThermostatSummary() result: true
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:14 PM: trace pollScheduled() - Running at 2017-02-02 14:10:14 EST (epic: 1486062614378)
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:14 PM: info Time since last poll? 999.9 – atomicState.lastPoll == 1486062613469
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:14 PM: debug getChildDevices(true), children=5
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:14 PM: debug Created/Updated 4 sensors.
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:14 PM: debug getEcobeeThermostats() - httpGet() in 200 Response
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:14 PM: debug Created/Updated 1 thermostats
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:13 PM: debug getEcobeeThermostats() - httpGet() in 200 Response
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:00 PM: debug options = getEcobeeSensors == [ecobee_sensor-rs:100-BKRQ:ecobee - Nidhi, ecobee_sensor-rs:101-CYB7:ecobee - Guest, ecobee_sensor-rs:102-DHD6:ecobee - Grandma, ecobee_sensor_thermostat-ei:0-Upstairs:Upstairs (Thermostat)]
    7d9f48d6-a02e-4d78-a2fd-3ede40a1e5be 2:10:00 PM: debug getEcobeeThermostats() - httpGet() in 200 Response

  3. ecobee sensor logs
    3d570ee6-86a9-4d38-8ad6-342667bead0c 2:10:35 PM: error groovy.lang.MissingMethodException: No signature of method: script14860588354611578660460.generateEvent() is applicable for argument types: (java.util.LinkedHashMap) values: [[debugEventFromParent:pollChildren() - Getting changes]]
    Possible solutions: createEvent(java.util.Map) @ line 2541
    3d570ee6-86a9-4d38-8ad6-342667bead0c 2:10:35 PM: debug Executing ‘poll’ using parent SmartApp
    3d570ee6-86a9-4d38-8ad6-342667bead0c 2:10:35 PM: debug refresh…
    3d570ee6-86a9-4d38-8ad6-342667bead0c 2:10:29 PM: error groovy.lang.MissingMethodException: No signature of method: script14860587338251578660460.generateEvent() is applicable for argument types: (java.util.LinkedHashMap) values: [[debugEventFromParent:pollChildren() - Getting changes]]
    Possible solutions: createEvent(java.util.Map) @ line 2541
    3d570ee6-86a9-4d38-8ad6-342667bead0c 2:10:28 PM: debug Executing ‘poll’ using parent SmartApp
    3d570ee6-86a9-4d38-8ad6-342667bead0c 2:10:28 PM: debug refresh…

@BatraD -

My apologies, but I have to run catch a plane.

One thing to try is to deselect all your sensors, exit Ecobee (Connect), then go back in and select them again. It appears they didn’t initialize correctly, but I can’t track it down more just now.

Sorry, but if that doesn’t work, you probably won’t hear back from me until tomorrow…

Barry, no worries… have a safe flight

@BatraD -

Please double check that you installed, saved and published the new ecobee-sensor.groovy DTH

yes… i have

Barry, success…

deleted all the 5 apps and 2 device handlers and reinstalled

works now

thanks for your help

ecobee-connect.groovy v0.10.12 and ecobee-thermostat.groovy v0.10.5 updated primarily for cosmetics.

  • During normal operations under default log level (level 3) will show almost exclusively blue “info” log entries for Ecobee (Connect) under Live Logging (devices show only errors).

  • The “Recently” message/notifications log for the Thermostat device now generally only shows those events that are modifying the display state, plus a few command responses (changing modes, resuming programs, etc.). Where possible, appropriately colored mini-icons are now displayed along with the notifications

@storageanarchy
Have you decided on what you are going to do about the GitHub integration?
I was having some weird issues and decided to wipe and redo everything related to the ecobee handling.

I’ve already re-done the steps but integration would be nice as future updates gets implemented.

I believe Sean is working the integration already, converging the two streams.

1 Like

Latest updates add:

  • ecobee-thermostat.groovy v0.10.8: New thermostat DTH attribute “programsList”

  • ecobee-connect.groovy v0.10.14: Sends programsList to thermostat DTH. Tracks changes to data objects from Ecobee API and sends only changes to the DTH - this further reduces the traffic, down from originally sending more than 35 individual data object every update, to now only 2 (temp & humidity) for the majority of the updates.

  • ecobee-smart-circulation v0.1.4: Can now schedule Smart Circulation handler to run for specific SmartThings mode and/or specific thermostat Programs. Useful for when 1 zone goes into Sleep program while the whole location (or another Zone) remains in “Home.”

@storageanarchy installed your latest code from Github and it seemed to be double converting from F to C in the thermostat DHT. To be specific 20 (implied C) showed as -6.6 which is what 20F would convert to.

The sensors showed correctly in C. All the temperatures and setpoints in the thermostat seemed to be incorrect.

Sorry about that @Christopher_Ness - you are correct, it was mistakenly doing 2 FtoC conversions. ecobee-thermostat.groovy v0.10.9 should solve the problem.

Also updated ecobee-connect.groovy v0.10.15 to convert the (internal) heat/cool range attributes to C as well.

It is possible that changing temps in C doesn’t work properly in some cases (trying to sort it out as we speak, to be sure that the inputs are converted back to F before sending to the thermostat).

Found the problem with Smart Circulation on Android - a range limit that slips by on iOS crashes Android. Once I fixed it, works fine on both.

get the latest ecobee-smart-circulation.groovy v0.1.5

ecobee-connect.groovy v0.10.16 fixes (finally) the nagging HTTP Server Error every hour.

Turns out the error coincides with the Ecobee API authorization token expiring. Although the code is able to gracefully recover from this (usually), I now have the token updated pro-actively before it is set to expire (in the watchdog).

1 Like

ecobee-connect.groovy v0.10.20 fixes yet another bug causing initial installs to fail/crash/error out without updating the thermostat device. Also adds extendedRuntime data to store the correct desiredHumidity and desiredDehumidity values (applies primarily to the target humidity value when in Frost Control mode).

The big jump in dot-revision is due to various attempts at optimizing the Authorization Token refresh. I finally decided on the implementation herein, which refreshes the token one full poll cycle of 6 minutes before it expires, whichever is longer.

Recommended for ALL users

ecobee-connect.groovy v0.10.22 fixes (finally!) the bug that was causing installation to fail for a subset of users. Turns out it would work if you changed anything on the Preferences pages, and would NOT work if you didn’t - some settings.variables weren’t being initialized unless you went to the Preferences page.

All set now, this latest version fixes that issue. There is also a new ecobee-thermostat.groovy v0.10.10 - it’s not mandatory, but it does clean up some of the “Recently” notification texts.

Ok - I’ve looked at the documentation to upgrade - but when I try to ‘Update from Repo’ there is no updates to be had. Per the documentation links above there should be files in the ‘obsolete’ column and an ability to refresh.

Sorry - I’m very new to this so I’m probably missing something very basic.