I had Ecobee connected and working great in OH. However, ecobee died. Thankfully support was great and they sent me a brand new unit (a v5)
Ran through the instructions again to get binding authorized, everything worked (so I thought).
On ecobee developer page it says:
You have added the following application that can access your ecobee
SOpenHab
This application requires the following permissions:
- View and change data and settings on your ecobee thermostat(s)
connected to habpanel
So everything looks good. I update the items file to represent the new thermostat id. And Habpanel populates nicely.
However when I try making any changes through the web interface I see the following in the log:
2020-02-07 15:07:54.889 [ome.event.ItemCommandEvent] - Item ‘ET_runningEvent_climate’ received command resume
==> /var/log/openhab2/openhab.log <==
2020-02-07 15:07:55.112 [ERROR] [inding.ecobee.internal.EcobeeBinding] - Error calling function: ApiResponse[status=Status[code=9,message=Invalid selection. No thermostats in selection. Ensure permissions and selection.]]
==> /var/log/openhab2/events.log <==
2020-02-07 15:07:55.123 [vent.ItemStateChangedEvent] - ET_runningEvent_Type changed from hold to resume
2020-02-07 15:07:59.799 [ome.event.ItemCommandEvent] - Item 'ET_userHeat' received command 25
2020-02-07 15:07:59.810 [vent.ItemStateChangedEvent] - ET_userHeat changed from 23 to 25
2020-02-07 15:07:59.839 [ome.event.ItemCommandEvent] - Item 'ET_runtime_desiredHeat' received command 25
2020-02-07 15:07:59.847 [vent.ItemStateChangedEvent] - ET_runtime_desiredHeat changed from 23.5 to 25
==> /var/log/openhab2/openhab.log <==
2020-02-07 15:07:59.865 [INFO ] [ipse.smarthome.model.script.HeatHold] - Setting heat setpoint to 25
==> /var/log/openhab2/events.log <==
2020-02-07 15:07:59.901 [vent.ItemStateChangedEvent] - desiredTemp changed from 23.5 to 25
==> /var/log/openhab2/openhab.log <==
2020-02-07 15:08:00.025 [ERROR] [inding.ecobee.internal.EcobeeBinding] - Error calling function: ApiResponse[status=Status[code=9,message=Invalid selection. No thermostats in selection. Ensure permissions and selection.]]
Any help would be appreciated.
Items file for reference:
Group ET_All
Group ET_gSettings (ET_All)
Group ET_gRemoteSensors (ET_All)
String ET_name { ecobee=“=[1234567890#name]” }String ET_settings_hvacMode “hvac mode [%s]” (ET_gSettings) { ecobee=“=[1234567890#settings.hvacMode]” }
Switch ET_settings_useCelsius (ET_gSettings) { ecobee=“=[1234567890#settings.useCelsius]” }
Number ET_settings_heatRangeHigh (ET_gSettings) { ecobee=“=[1234567890#settings.heatRangeHigh]” }
Number ET_settings_heatRangeLow (ET_gSettings) { ecobee=“=[1234567890#settings.heatRangeLow]” }
Number ET_settings_coolRangeHigh (ET_gSettings) { ecobee=“=[1234567890#settings.coolRangeHigh]” }
Number ET_settings_coolRangeLow (ET_gSettings) { ecobee=“=[1234567890#settings.coolRangeLow]” }Group ET_gRuntime (ET_All)
Number ET_runtime_actualTemperature “actual Temperature [%.1f °C]” (ET_gRuntime) { ecobee=“<[1234567890#runtime.actualTemperature]” }
Number ET_runtime_actualHumidity “actual humidity [%d %%]” (ET_gRuntime) { ecobee=“<[1234567890#runtime.actualHumidity]” }
Number ET_runtime_desiredHeat “desired Heat [%.1f °C]” (ET_gRuntime) { ecobee=“<[1234567890#runtime.desiredHeat]” }
Number ET_runtime_desiredCool “desired Cool [%.1f °C]” (ET_gRuntime) { ecobee=“<[1234567890#runtime.desiredCool]” }// ** Remote sensor setup**
// You MUST update the item’s binding config to match the name you set for the sensor under
// {ecobee=“<[1234567890#remoteSensors().capability().value]”}
// The first item should be set to your thermostat’s name (mine is called “Downstairs”)
// The temperature item’s text will appear in the widget, update accordingly! (with units if you want)
//
// The first two items ET_mainThermostat_ represent the main thermostats real temperatue and occupancy
// then come the remote sensors ET_Remote_*
// Add or remove as many pairs of temperature and occupancy items under ET_gRemoteSensors as you need//First item in sensor list is the real thermostat
Number ET_mainThermostat_temperature “Hallway [%.1f °C]” (ET_gRemoteSensors) { ecobee=“<[1234567890#remoteSensors(EcoBee).capability(temperature).value]” }
Switch ET_mainThermostat_occupancy “” (ET_gRemoteSensors) { ecobee=“<[1234567890#remoteSensors(EcoBee).capability(occupancy).value]” }
//Remote sensor Bedroom
Number ET_Remote_1_temperature “Bedroom [%.1f °C]” (ET_gRemoteSensors) { ecobee=“<[1234567890#remoteSensors(Bedroom).capability(temperature).value]” }
Switch ET_Remote_1_occupancy “” (ET_gRemoteSensors) { ecobee=“<[1234567890#remoteSensors(Bedroom).capability(occupancy).value]” }
//Remote sensor 2
Number ET_Remote_2_temperature “Office [%.1f °C]” (ET_gRemoteSensors) { ecobee=“<[1234567890#remoteSensors(Office).capability(temperature).value]” }
Switch ET_Remote_2_occupancy “” (ET_gRemoteSensors) { ecobee=“<[1234567890#remoteSensors(Office).capability(occupancy).value]” }
//Remote sensor 3
//Number ET_Remote_3_temperature “Parents’ Room [%.1f °C]” (ET_gRemoteSensors) { ecobee=“<[1234567890#remoteSensors(Bedroom).capability(temperature).value]” }
//Switch ET_Remote_3_occupancy “” (ET_gRemoteSensors) { ecobee=“<[1234567890#remoteSensors(Bedroom).capability(occupancy).value]” }Group ET_gEvents (ET_All)
String ET_runningEvent_Type (ET_gEvents) { ecobee=“<[1234567890#runningEvent.type]” }
String ET_runningEvent_climate (ET_gEvents) { ecobee=“<[1234567890#runningEvent.holdClimateRef]”, autoupdate=“false” }
String ET_runningEvent_name “Running event name [%s]” (ET_gEvents) { ecobee=“<[1234567890#runningEvent.name]” }//String ET_runningEvent_Type (ET_gEvents) { ecobee=“<[1234567890#runningEvent.type]” }
//String ET_runningEvent_climate “desired comf” (ET_gEvents) { ecobee=“<[1234567890#runningEvent.holdClimateRef]”, autoupdate=“false” }
String currentClimateRef “sched comf [%s]” { ecobee=“<[1234567890#program.currentClimateRef]” }
Number desiredTemp “desired temp [%.1f °C]” { ecobee=“<[1234567890#runtime.actualTemperature]” }
Number desiredHeat “desired heat [%.1f °C]” { ecobee=“<[1234567890#runtime.desiredHeat]” }
Number desiredCool “desired cool [%.1f °C]” { ecobee=“<[1234567890#runtime.desiredCool]” }
String desiredFan “desired fan mode [%s]” { ecobee=“<[1234567890#runtime.desiredFanMode]” }//custom rule populated items
Number ET_userCool (ET_All)
Number ET_userHeat (ET_All)