Ecobee binding setup

That worked.

Ok… I think there are signs of hope. I was able to get the pin and authorize via ecobee portal.

However I still don’t see my ecobee in the paper UI, or i cant hit the plus sign and add as a thing?

9-11 10:50:27.318 [INFO ] [inding.ecobee.internal.EcobeeBinding] - #########################################################################################
2017-09-11 10:50:27.318 [INFO ] [inding.ecobee.internal.EcobeeBinding] - # Ecobee-Integration: U S E R   I N T E R A C T I O N   R E Q U I R E D !!
2017-09-11 10:50:27.319 [INFO ] [inding.ecobee.internal.EcobeeBinding] - # 1. Login to www.ecobee.com using your 'DEFAULT_USER' account
2017-09-11 10:50:27.319 [INFO ] [inding.ecobee.internal.EcobeeBinding] - # 2. Enter the PIN 'ggbc' in My Apps within the next 9 minutes.
2017-09-11 10:50:27.319 [INFO ] [inding.ecobee.internal.EcobeeBinding] - # NOTE: Any API attempts will fail in the meantime.
2017-09-11 10:50:27.319 [INFO ] [inding.ecobee.internal.EcobeeBinding] - #########################################################################################
2017-09-11 10:50:27.319 [WARN ] [inding.ecobee.internal.EcobeeBinding] - Periodic poll skipped for 'DEFAULT_USER'.
2017-09-11 10:55:21.742 [INFO ] [basic.internal.servlet.WebAppServlet] - Stopped Basic UI
2017-09-11 10:55:42.158 [WARN ] [ore.internal.events.OSGiEventManager] - Could not find an Event Factory for the event type 'ItemChannelLinkRemovedEvent'.
2017-09-11 10:55:42.159 [WARN ] [ore.internal.events.OSGiEventManager] - Could not find an Event Factory for the event type 'ItemChannelLinkRemovedEvent'.
2017-09-11 10:55:42.159 [WARN ] [ore.internal.events.OSGiEventManager] - Could not find an Event Factory for the event type 'ItemChannelLinkRemovedEvent'.
2017-09-11 10:55:42.266 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Stopped Paper UI
2017-09-11 10:55:42.270 [INFO ] [panel.internal.HABPanelDashboardTile] - Stopped HABPanel
2017-09-11 10:55:42.273 [INFO ] [.dashboard.internal.DashboardService] - Stopped dashboard
2017-09-11 10:56:11.006 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ecobee.items'
2017-09-11 10:56:13.301 [INFO ] [el.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'ecobee.rules', using it anyway:
The use of wildcard imports is deprecated.
2017-09-11 10:56:13.303 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ecobee.rules'
2017-09-11 10:56:14.931 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at http://192.168.1.137:8080
2017-09-11 10:56:14.932 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at https://192.168.1.137:8443
2017-09-11 10:56:15.037 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
2017-09-11 10:56:15.052 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
2017-09-11 10:56:15.070 [INFO ] [panel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel
2017-09-11 10:56:15.107 [INFO ] [nksmarthome.handler.SmartHomeHandler] - Initializing TP-Link Smart device on ip 192.168.1.118
2017-09-11 10:56:15.111 [INFO ] [nksmarthome.handler.SmartHomeHandler] - Initializing TP-Link Smart device on ip 192.168.1.142
2017-09-11 10:56:15.113 [INFO ] [nksmarthome.handler.SmartHomeHandler] - Initializing TP-Link Smart device on ip 192.168.1.145
2017-09-11 10:56:15.116 [INFO ] [nksmarthome.handler.SmartHomeHandler] - Initializing TP-Link Smart device on ip 192.168.1.136
2017-09-11 10:56:15.119 [INFO ] [nksmarthome.handler.SmartHomeHandler] - Initializing TP-Link Smart device on ip 192.168.1.147
2017-09-11 10:56:15.458 [INFO ] [b.core.service.AbstractActiveService] - Ecobee Refresh Service has been started

If you’ve authorized via the ecobee.com portal, then that’s great! But since the binding is a 1.x binding, it deals with items, not things. So if you have a UI set up to show your items (see here for examples), then you should be good to go.

Thanks!!! Looks like Im up and running!

1 Like

Hello All,
I have read a lot of help here. I would like to start with thank you. I am new to openhab. I have openhab2. I installed ecobee, changed ecobee.cfg file, did everything per instructions, validated on ecobee.com, but still i am receiving an error. I don’t understand what is the problem. I removed .userPrefs several times and validated the pin again, but no luck. This what I am getting:

[ERROR] [binding.ecobee.internal.EcobeeBinding] - Error retrieving thermostats: Status[code=2,message=Not authorized. Selection includes Smart thermostats not permitted for scope.]

Can someone help me out? Thanks in advance.

P.S. Using raspberry pi.

Hmm. That’s a strange error. A couple ideas…

  • Is it possible that one or more of your item definitions have a thermostat ID that’s possibly misspelled, or somehow different than the ID(s) of your thermostats?

  • Maybe put the binding in debug mode. That might provide more clues to the issue. In the Karaf console, you would do that with the following command.

log:set DEBUG org.openhab.binding.ecobee

and to restore to normal log level

log:set INFO org.openhab.binding.ecobee

Mark,
Thanks for the response. I actually had it in debug mode. Here is what it shows:

21:03:29.929 [DEBUG] [org.openhab.binding.ecobee           ] - BundleEvent STARTING - org.openhab.binding.ecobee
21:03:29.936 [DEBUG] [nding.ecobee.internal.EcobeeActivator] - Ecobee binding has been started.
21:03:29.968 [DEBUG] [org.openhab.binding.ecobee           ] - ServiceEvent REGISTERED - {org.openhab.model.item.binding.BindingConfigReader, org.openhab.binding.ecobee.EcobeeBindingProvider}={component.name=org.openhab.binding.ecobee.genericbindingprovider, component.id=179, service.id=280, service.bundleid=233, service.scope=bundle} - org.openhab.binding.ecobee
21:03:29.981 [DEBUG] [internal.EcobeeGenericBindingProvider] - Processing binding configuration: '<[511xxxxxxxx6#runtime.actualTemperature]'
21:03:29.995 [DEBUG] [internal.EcobeeGenericBindingProvider] - Processing binding configuration: '=[511xxxxxxxx6#name]'

21:03:30.172 [DEBUG] [org.openhab.binding.ecobee           ] - ServiceEvent REGISTERED - {org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService, org.openhab.binding.ecobee.EcobeeActionProvider}={event.topics=openhab/*, service.pid=org.openhab.ecobee, component.name=org.openhab.binding.ecobee.binding, component.id=178, service.id=282, service.bundleid=233, service.scope=bundle} - org.openhab.binding.ecobee
21:03:30.185 [DEBUG] [org.openhab.binding.ecobee           ] - BundleEvent STARTED - org.openhab.binding.ecobee

21:03:31.084 [DEBUG] [binding.ecobee.internal.EcobeeBinding] - Requesting summaries for Selection[selectionType=thermostats,selectionMatch=511xxxxxxxx6,includeRuntime=true,includeExtendedRuntime=<null>,includeElectricity=<null>,includeSettings=<null>,includeLocation=<null>,includeProgram=<null>,includeEvents=<null>,includeDevice=<null>,includeTechnician=<null>,includeUtility=<null>,includeManagement=<null>,includeAlerts=<null>,includeWeather=<null>,includeHouseDetails=<null>,includeOemCfg=<null>,includeEquipmentStatus=<null>,includeNotificationSettings=<null>,includePrivacy=<null>,includeVersion=<null>,includeSensors=<null>]

21:03:32.928 [DEBUG] [binding.ecobee.internal.EcobeeBinding] - Retrieved summaries for 1 thermostat(s).
21:03:32.930 [DEBUG] [binding.ecobee.internal.EcobeeBinding] - Requesting full retrieval for 1 thermostat(s).

21:03:34.371 [ERROR] [binding.ecobee.internal.EcobeeBinding] - Error retrieving thermostats: Status[code=2,message=Not authorized. Selection includes Smart thermostats not permitted for scope.]

Still, don’t see anything in things. I am very new to all this. but I think I did every step correctly. Again, thanks for your help.

Not to worry. You won’t see a Thing for the ecobee thermostats. The ecobee binding is an openHAB version 1 binding, so it doesn’t know anything about things.

So, from that debug log, it looks like it’s successful in pulling the summary for the tstat, so it might not be an issue with the authentication.

What version of tstat do you have?

Edit: I took a quick look at the code. It’s definitely successful in getting the thermostat summary. It’s failing when it tries to get the detailed thermostat data, but I don’t know why. Maybe try reducing (i.e. commenting out) the items in your items file to an absolute minimum, then see what happens. Maybe try TRACE mode to see if it logs anything else that might provide a clue.

Thank you very much, Mark. This is very helpful. I actually have only two lines in my .items file. I use ecobee4. Maybe that is the reason. Maybe it does not yet work with 4. I will try different items when I get home. I checked the ecobee binding page, it talks about ecobee3 only. Maybe item commands are different. Will keep you posted. Thanks again for the help.

Hey @watou Not sure if you’re still out there. I haven’t seen you post in a while. We miss you! :wink:

Do you happen to know if the Ecobee version 4 thermostat will work with the current version of the ecobee binding?

Hi Mark and thanks for the nice comment! (I stopped contributing a year ago when I was told nothing would be done about alleged improper copying of my contributions, which I suppose can be a risk in open source projects when there is no infrastructure to adjudicate plagiarism cases.)

I don’t see anything about ecobee API changes that should cause a problem with the ecobee 4 thermostats. The modelNumber member of the Thermostat object is a read-only string, not an enum, that ought to return apolloSmart or apolloEms for ecobee 4 thermostats, and no other incompatible differences (according to the API docs).

The error in the log looks like a problem with the binding’s configuration. scope should be set to smartWrite. @naysaziz you might want to go over your binding configuration settings again.

1 Like

Thank you @watou and @mhilbush, I will try today and will keep you posted.

Thank you for your help @watou and @mhilbush. I switched from raspberry-pi to Linux. Now it works. I just need to manually create sitemaps. Items cannot be added through paperUI. Thanks for your help.

Hi, was able to follow your helpful instructions to be able to correctly bind my ecobee4 to my newly configured opehHAB using raspberry pi 3. I created a basic site map and i can get the thermostat reading and it is updating correctly. However, when I change the temperate in the Basic UI, the changes are not reflected at my thermostat. I see the log says
(2019-01-09 06:21:27.741 [ome.event.ItemCommandEvent] - Item ‘desiredHeat’ received command 73
2019-01-09 06:21:27.752 [vent.ItemStateChangedEvent] - desiredHeat changed from 72.0 to 73), but it eventually changes back to the temperature which was set manually via the thermostat. Could you please advise what else I can do to make this work? Thank you.

Frame label="Thermostat" {
	Text item=lastModified
	Text item=actualTemperature
	Text item=actualHumidity
	Setpoint item=desiredHeat label="Heat [%.1f °F]" minValue=50 maxValue=80 
	Setpoint item=desiredCool label="Cool [%.1f °F]" minValue=50 maxValue=80 
	}

I hope someone else in this thread can give you a hand, I recently moved and when building out my new home automation setup I’ve switched to Home Assistant. So My OpenHAB skills are basically non-existent after not using it for 4+ Months.

I’m not sure because I never set the setpoint the way you’re doing it (i.e. I use the schedule to manage the setpoints when I’m home & away).

Did you check the example rules here? You may need to implement HeatHold and/or CoolHold rules.
https://www.openhab.org/addons/bindings/ecobee1/#ecobee-rules