Ecobee binding stops reporting?

So I’ve been “battling” this bug for a month or so now.

Do these log files look unusual?

It seems to me that the Ecobee will just stop with the Equipment Status changes after some period of time. I turned a bunch of logging on for a few months, and nothing happened, and then, within a few days of turning off the logging, it’s happening again. I don’t have as much logging turned on now, but this looks curious to me. (The ‘null’ entries).

There have been no additional entries for the last 2 hours! (it’s now 17:00)

I’m monitoring the Ecobee equipment changes (fan, heat, cool) to determine whether or not to open my smart vents.

2021-05-28 11:46:32.906 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 11:46:35.767 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 11:48:42.044 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 11:51:19.523 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 11:51:39.973 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 11:51:52.454 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 11:54:30.056 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 11:56:47.135 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 11:58:11.108 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:00:48.333 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:01:53.583 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:04:29.088 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:06:03.994 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:06:59.826 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:07:39.033 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:10:16.740 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:12:06.428 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:14:29.120 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:17:13.101 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:19:44.731 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:21:19.464 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:21:51.326 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:22:20.159 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:24:29.655 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:27:26.193 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:27:39.167 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:30:48.239 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:32:32.937 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:33:57.642 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:36:03.821 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:37:07.246 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:37:40.114 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:39:46.564 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:42:47.261 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:43:27.725 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:47:53.691 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:48:42.877 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:51:21.673 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:52:25.015 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:53:01.902 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:55:34.539 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 12:58:08.373 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 12:58:13.218 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:01:53.763 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:03:15.024 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:05:03.226 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:06:06.554 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:08:21.717 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:09:16.138 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:12:56.412 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:13:28.247 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:17:08.524 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:18:33.767 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:20:17.801 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:21:21.255 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:23:40.390 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:24:30.848 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:27:39.967 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:28:47.270 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:30:49.388 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:33:27.677 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:33:54.077 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:36:05.630 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:36:37.547 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:39:00.629 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:40:18.545 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:42:56.147 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:44:07.421 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:47:08.389 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:49:13.738 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:50:18.386 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:51:21.565 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:53:27.756 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:54:20.618 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:56:37.187 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 13:59:26.764 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 13:59:46.589 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:04:33.834 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:06:05.603 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:07:08.984 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:09:41.162 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:09:47.980 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:12:57.020 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:14:47.744 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:16:06.335 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:19:15.275 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:19:54.083 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:21:21.834 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:22:25.129 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:25:00.553 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:25:34.875 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:28:43.900 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:30:07.311 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:31:53.638 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:35:13.648 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:36:05.936 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:37:09.215 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:40:18.250 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:40:20.711 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:45:25.909 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:45:33.729 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:48:43.517 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:50:33.402 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:51:21.629 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:51:53.421 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 14:55:39.681 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 14:56:37.050 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 15:00:17.537 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 15:00:46.181 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 15:03:27.207 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 15:05:52.364 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'
2021-05-28 15:06:05.152 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 15:06:37.025 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 15:09:51.304 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: '[511851252718]'
2021-05-28 15:11:12.891 [DEBUG] [inding.ecobee.internal.api.EcobeeApi] - API: Perform query on thermostat: 'null'```

I have been having this problem as well. I am tracking RH and Temps and they just drop off.

Resetting the PIN for the Ecobee Account fixes it. I was suffering the same problems with Ecobee’s and another HA system I was using so I’m assuming it’s something on teh Ecobee side.

The biggest issue is that there is no way that I know, to get notification of when this happens. All of teh Items and Things appear to be OK, just the data stops flowing.

If anyone knows of any way to be alerted when Ecobee drops off I would appreciate any input.

I have a similar issue (thing stays online but is actually offline) with my zwave motion sensors because they stay running for months after they read “0%” battery. What I did was on one of the sensor channels I created another DateTime item and linked it as “timestamp on update” and have a rule that once a day runs and sees if any haven’t updated in the past day to telegram me. The same idea would probably work for you too. Here’s my python rule in case you want it. I have the same channel for every motion in a group (MotionsLastUpdated) and I have it loop through them all to build a list to flag which ones haven’t reported with a * next to it on the message. If you only have one item or want to send a generic message you can probably strip that whole part out altogether and just do a if days_between > 0 then send message as a two liner. I think you might even be able to quickly throw that together in blockly now if you want to

from core.date import days_between

motion = ir.getItem("MotionsLastUpdated")
telegramAction = actions.get("telegram","telegramBotThingIDHere")
 
if days_between(motion.state, DateTimeType()) > 0:
  strMotionStatus=""
  for item in ir.getItem("MotionsLastUpdated").members:
    if item != UnDefType.NULL:
      if days_between(item.state, DateTimeType()) > 0:
        strMotionStatus += "`" + item.label.ljust(40,' ') + " " + item.state.format("%1$ta %1$tl:%1$tM %1$tp") + "*`\n"
      else:
        strMotionStatus += "`" + item.label.ljust(40,' ') + " " + item.state.format("%1$ta %1$tl:%1$tM %1$tp") + "`\n"
      
  telegramAction.sendTelegram("One or more motions haven't reported in more than one day! \n\nStatus report:\n\n" + strMotionStatus)

Thanks! I was thinking about doing exactly this with the RH. I’ll have to try and convert this to JS because I’m trying to keep all of my scripts in that language.

I came up with this rule:

When
Every 6 hours
RH sensor in Ecobee changes from any to any

Then
Run javascript script which starts a timer when teh rule is triggered that sends an email alert at 5 hours. If the RH changes within that time the timer is cancelled. The reason for the timed trigger is that the RH state changes create kind of an ON/OFF cycle for the timer. If the Ecobee were to stop responding in the OFF cycle when the script timer is not running the email would never be sent. With the 6 hr. trigger it will start again and sent the email unless the Ecobee starts reporting again.

Rule code:

triggers:
  - id: "3"
    configuration:
      cronExpression: 0 0 0/6 * * ? *
    type: timer.GenericCronTrigger
  - id: "1"
    configuration:
      itemName: RH_First_Floor
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/javascript
      script: >-
        var logger =
        Java.type("org.slf4j.LoggerFactory").getLogger("org.openhab.model.script.Rules.Ecobee
        Offline Alert");

        var ScriptExecution = Java.type("org.openhab.core.model.script.actions.ScriptExecution");

        logger.info("Ecobee Offline Alert Rule Started");


        var ZonedDateTime = Java.type("java.time.ZonedDateTime"); 

        var now = ZonedDateTime.now();


        var runme = function() {
            logger.info("Email Sent");
          
            var Actions = Java.type("org.openhab.core.model.script.actions.Things");
            var mailActions = Actions.getActions("mail","mail:smtp:SMTP_Server");
            mailActions.sendHtmlMail("monitors@bpsgreenhomes.com", "Ecobee Offline", "Customername# Ecobee is offline.");
            this.timer = undefined; // reset the timer back to undefined
        }

        logger.info("this.timer = " + this.timer);


        if(this.timer === undefined) {
            this.timer = ScriptExecution.createTimer(now.plusMinutes(300), runme);
            }

        else if(this.timer !== undefined) {
              this.timer.cancel();
            }

        logger.info("this.timer = " + this.timer)
    type: script.ScriptAction

I currently have one system with the Ecobee offline and saw that the API in the Ecobee Account Thing is missing. I haven’t noticed this before but maybe that’s what’s triggering the problem.

I’m seeing the same thing; running version 3.3.0 of the Ecobee binding.
using bundle:restart from karaf gets it going again.

I’ve restarted the binding a few times in the past without checking into the logs, so I don’t know if there are other manifestations. I’ve only started paying close attention recently, so I don’t know if there’s a pattern to the issue.

Resurrecting this old thread to see if any of the previous reporters are still seeing it.

2022-11-17 03:26:51.227 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
        at org.openhab.binding.ecobee.internal.handler.EcobeeAccountBridgeHandler.refreshThermostats(EcobeeAccountBridgeHandler.java:219) ~[?:?]
        at org.openhab.binding.ecobee.internal.handler.EcobeeAccountBridgeHandler.refresh(EcobeeAccountBridgeHandler.java:210) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:829) [?:?]