Ecobee binding setup

I can not for the life of me figure out how to configure the ecobee binding. I’ve gone over the documentation several times and even done full reinstalls thinking I just botched the configs somewhere, I find some documentation telling me to configure things in Paper and other docs telling me to edit config files.

Current set up I’ve installed the binding via Paper as well as the Actions, I’ve then configured very basic configuration files in: /usr/share/openhab2/conf/services. to start I’ve only configured ecobee.cfg (wtih my key and scope=smartWrite.

and I created in the same directory an ecobee.items file with 2 number items showing the temptrature of the ecobee and the remote sensor:

Number LivingRoomTemp “Living Room temperature [%.1f °F]” { ecobee="<[ID#remoteSensors(ecobee).capability(temperature).value]" }
Number MasterTemp “Master temperature [%.1f °F]” { ecobee="<[ID#remoteSensors(Master).capability(temperature).value]" }

The logs dont even show the system trying to start the ecobee binding:

2017-07-06 22:48:48.069 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at http://10.211.55.8:8080
2017-07-06 22:48:48.120 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at https://10.211.55.8:8443
2017-07-06 22:48:48.439 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
2017-07-06 22:48:48.549 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
2017-07-06 22:48:48.660 [INFO ] [panel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel

I’m at a complete loss at the moment, any direction would be a great help.

The ecobee.items file goes in the conf/items directory.

And, here’s an example of a few of my item definitions.

Number Ecobee_1_Temperature             "Ecobee Temperature [%.1f °F]"                      (gRuntime)          { ecobee="<[727880615243#runtime.actualTemperature]" }
Number Ecobee_1_Humidity                "Ecobee Humidity [%d %%]"                           (gRuntime)          { ecobee="<[727880615243#runtime.actualHumidity]" }
Number Ecobee_1_DesiredCool             "Ecobee Desired Cool [%.1f °F]"                     (gRuntime)          { ecobee="<[727880615243#runtime.desiredCool]" }
Number Ecobee_1_DesiredHeat             "Ecobee Desired Heat [%.1f °F]"                     (gRuntime)          { ecobee="<[727880615243#runtime.desiredHeat]" }

Number Ecobee_1_FamilyRoom_Temperature  "Ecobee 1 Family Room Temperature [%.1f °F]"        (gRemoteSensors)    { ecobee="<[727880615243#remoteSensors(Family Room).capability(temperature).value]" }
Switch Ecobee_1_FamilyRoom_Occupancy    "Ecobee 1 Family Room Occupied [%s]"                (gRemoteSensors)    { ecobee="<[727880615243#remoteSensors(Family Room).capability(occupancy).value]" }

Number Ecobee_1_Kitchen_Temperature     "Ecobee 1 Kitchen Temperature [%.1f °F]"            (gRemoteSensors)    { ecobee="<[727880615243#remoteSensors(Kitchen).capability(temperature).value]" }
Switch Ecobee_1_Kitchen_Occupancy       "Ecobee 1 Kitchen Occupied [%s]"                    (gRemoteSensors)    { ecobee="<[727880615243#remoteSensors(Kitchen).capability(occupancy).value]" }

You could try putting the binding in debug mode to see what’s going on. In the Karaf console, type:

log:set DEBUG org.openhab.binding.ecobee

To take out of debug mode:

log:set INFO org.openhab.binding.ecobee

Thank you for the help, after restarting with debug on I can only assume openhab is not even looking at my configuration files.

2017-07-07 09:29:17.435 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at http://10.211.55.8:8080
2017-07-07 09:29:17.457 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at https://10.211.55.8:8443
2017-07-07 09:29:17.845 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
2017-07-07 09:29:17.886 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
2017-07-07 09:29:17.930 [INFO ] [panel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel
2017-07-07 09:29:17.947 [DEBUG] [org.openhab.binding.ecobee          ] - BundleEvent STARTING - org.openhab.binding.ecobee
2017-07-07 09:29:17.950 [DEBUG] [ding.ecobee.internal.EcobeeActivator] - Ecobee binding has been started.
2017-07-07 09:29:17.950 [DEBUG] [org.openhab.binding.ecobee          ] - BundleEvent STARTED - org.openhab.binding.ecobee
2017-07-07 09:29:17.959 [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=162, service.id=282, service.bundleid=181, service.scope=bundle} - org.openhab.binding.ecobee
2017-07-07 09:29:18.030 [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=161, service.id=287, service.bundleid=181, service.scope=bundle} - org.openhab.binding.ecobee

Are you using a manual or an apt-get Linux installation?
With apt-get your configs go into /etc/openhab2/
An items file: /etc/openhab2/items/ecobee.items
An ecobee binding config: /etc/openhab2/services/ecobee.cfg

Ah! That was the missing piece of the puzzle! I was putting my configs in /usr/share/openhab2. updated the configs in /etc/openhab2 and everything works now.

1 Like

Hi,

I try to bind my ecobee3, I put my APIkey in ecobee.cfg, The ecobee bindings appears in configuration in paper UI. But when I want to choose thing in inbox/ecobee binding/choose thing, nothing happen. I have a blank page

In openhab.log I have:

[inding.ecobee.internal.EcobeeBinding] - No Ecobee in-bindings have been found for selection.

Thank you to helping a newbie

As a 1.x binding, you must define items in a .items file. “Things” are part of 2.x bindings.

Thank you for your quick response.

I put two items in ecobee.items, reboot the system and nothing happens… the same blank page in the ecobee binding/chose thing

“Number actualTemperature “actual temp [%.1f °F]” {
ecobee=”<[3110XXX74004#runtime.actualTemperature]" }

Switch chambresOccupancy “chambres occ [%s]” {
ecobee="<[3110XXX74004#remoteSensors(chambres).capability(occupancy).value]"
}"

I think it’s to difficult for me. I wanted to try Openhab for the
compatibility with ecobee, it’s better to stay with domoticz for my little
knowledge, I think it’s most user friendly for me.

But Openhab seems a good product, very good design and a lot of capability.

Please share your ecobee.cfg file contents, with some digits replaced with Xs, to sse if there are any problem there. You should get a pin in openhab.log that you have to enter at ecobee.com, and thereafter the items’ states should update as expected.

> ################################ Ecobee Binding #######################################
> #
> # the private API key issued be Ecobee to use the API (required, replace with your own)
> #appkey=wTwpurVReSxXXXXXXXXXXTazluEyQofl
> 
> # the application scope used when authorizing the binding
> # choices are smartWrite,smartRead, or ems, or multiple (required, comma-separated, no spaces)
> #scope=smartWrite
> 
> # Rate at which to check if poll is to run, in ms (optional, defaults to 5000)
> #granularity=5000
> 
> # Data refresh interval in ms (optional, defaults to 180000)
> #refresh=180000
> 
> # Time in ms to wait after successful update, command or action before refresh (optional, defaults to 6000)
> #quickpoll=6000
> 
> # Time in ms to allow an API request to complete (optional, defaults to 20000)
> #timeout=20000
> 
> # the temperature scale to use when sending or receiving temperatures
> # optional, defaults to Fahrenheit (F)
> #tempscale=C

It’s not written anywhere close by, unfortunately, but you must remove the # (hash mark) from in front of the required settings appkey and scope, so the line of text begins with the word (and no spaces). Save the file and then watch openhab.log for the PIN to enter at ecobee.com.

I followed your instructions and still dont see a pin code?

2017-09-09 11:53:00.592 [INFO ] [inding.ecobee.internal.EcobeeBinding] - No Ecobee in-bindings have been found for selection.

If your .items file(s) have ecobee="<[123456789012#...]" in them, then you ought to not receive the INFO message, but instead have the PIN process triggered. What do your .items file(s) look like?

I just copied from above… But changed my eco id

Thanks for your assistance,…

Number Ecobee_1_Temperature “Ecobee Temperature [%.1f °F]” (gRuntime) { ecobee="<[xxx991766642#runtime.actualTemperature]" }
Number Ecobee_1_Humidity “Ecobee Humidity [%d %%]” (gRuntime) { ecobee="<[xxx991766642#runtime.actualHumidity]" }
Number Ecobee_1_DesiredCool “Ecobee Desired Cool [%.1f °F]” (gRuntime) { ecobee="<[xxx991766642#runtime.desiredCool]" }
Number Ecobee_1_DesiredHeat “Ecobee Desired Heat [%.1f °F]” (gRuntime) { ecobee="<[xxx991766642#runtime.desiredHeat]" }

I’m not sure it matters, but I see that part of the text above has opening and closing double quotes “like this”, while later in the lines it shows simple double quotes “like this”. This might be a silently skipped syntax error in the .items file. Try to replace the opening and closing double quotes with simple double quotes throughout to see if this makes a difference.

Let me take a step back at this. What file types should I be using? ecobee.items.cfg/txt/php?

You define items and bind them to the Ecobee binding in an items/yourchoice.items file. You configure the binding itself either via PaperUI or in the file services/ecobee.cfg. If you use a sitemap-based UI like Basic or Classic, you reference your items in a file named sitemaps/your choice.sitemap.

Got it.

This is what shows to be in my error log now…

Not generating a pin.

2017-09-11 09:57:44.906 [INFO ] [b.core.service.AbstractActiveService] - Ecobee Refresh Service has been started
2017-09-11 09:57:45.400 [WARN ] [org.openhab.io.net.http.HttpUtil ] - Method failed: HTTP/1.1 401 Unauthorized
2017-09-11 09:57:45.476 [ERROR] [inding.ecobee.internal.EcobeeBinding] - Error retrieving tokens: authorization_pending
2017-09-11 09:57:45.478 [WARN ] [inding.ecobee.internal.EcobeeBinding] - Periodic poll skipped for ‘DEFAULT_USER’.

It might be that a PIN had been logged earlier but has since expired? If so, on Linux, 1) stop openHAB server, 2) sudo rm -rf ~openhab/.java/.userPrefs and 3) restart openHAB server. If on Windows, clearing Java Preferences is done via the Windows registry.

I have it installed on a windows box, I will give it a try.