New EvoHome Binding

Hi all,

I’ve just got an EvoHome so have created a new EvoHome binding for Openhab 1.

I’m not sure if this will work for US but works in the UK.

Documentation on setup here:
Add on is here:

Let me know how you get on - it is read only at the minute as I don’t have time to implement more than that right now.



We have moved to version 2 and there is a new thread here:

This is great! Looking forward to also be able to set room temperatures!

Cool - glad it works.

I guess you figured out the weather?

It might be a while till I do the setting as I’ve got a baby coming any time now!


1 Like

Congratulations! :baby: :tada:

Yes I figured out the weather. It wasn’t showing up in the Honeywell App either, just saved the location in the app again and it started to work.

This is on my do list if enocean TRV support is not coming. Thanks for your great work!

Do you have OH2 support coming?

As my whole house runs on Openhab I’ll migrate it to OH2 as soon as OH2 is stable enough for my house to run on it.

I don’t have the time to run OH and a test OH2 at the moment.


Looking forward to that. Thanks for the update.

Great work!

Could you make a jar version of the latest version as well?




As a openhab starter i can add standard things. i try to implement evohome as in

i can use some help. where to get needed info to fill in.

LOCATION_NAME is e.g. Huis?
Where can i fnd LOCATION_ID of the evohome system?
Where can I find DEVICE_NAME in the evohome system?

Any help is welcome.



Hi, dit you get it to work? I don’t.

I’ve copied file org.openhab.binding.evohome-1.8.0-SNAPSHOT.jar to the addons folder,

I added the lines to openhab.cfg:
################################### EvoHome Binding #####################################

I’ve adjusted the two files
Group All
Group grpGroundFloor (All)

Group grpGroundFloor_Living “Living Room” (grpGroundFloor)
Number Living_Current_Temp “Temperature [%.1f °C]” grpGroundFloor_Living {evohome=“locationName=THUIS,deviceName=Living,type=THERMOSTAT_TEMPERATURE” }

sitemap default label=“MyHome”
{ Frame label=“Living” { Text item=Living_Current_Temp}

What’s wrong?
BTW getting the info using pimatic works so account is OK

Thanks for your reply

Seems to work well for me on OpenHAB2 in my (limited) testing - with the nightly builds - many thanks. For any one else, high level details below:

  • Enable compatibility layer/mode is enabled

  • In the case of my Ubuntu system download the JAR to /usr/share/openhab2/addons/
  • Again, for Ubuntu package, create openhab.cfg in /etc/openhab2/services
  • Populate the openhab.cfg with the details from the Evohome binding github page as normal
  • Add your items to the item file, couple of examples for my house called ‘Home’, rooms ‘Hallway’ and ‘Main Bedroom’:
Number          Hallway_Current_Temp    "Hallway [%.1f °C]"     { evohome="locationName=Home,deviceName=Hallway,type=THERMOSTAT_TEMPERATURE" }
Number 		Master_Bedroom_Current_Temp    	"Master Bedroom [%.1f °C]"     { evohome="locationName=Home,deviceName=Main Bedroom,type=THERMOSTAT_TEMPERATURE" }

One thing I’ve yet to get working, but see no mention of in the github page, is Hot Water temperature? I tried setting this as the ‘deviceName’, but didnt seem to work off the bat.

This bindings sounds very interesting.
What kind of hardware is required for the evohome binding?
I’m using the “old” black/white evotouch, three of them and the HGI80 right now.

I am thinking of getting EvoHome, but only if I can control it from Openhab. Does your binding allow setting the temperature, or only reading it: the Wiki states that the items are Read and not Write.

Also, how does the binding communicate with the system: directly via my Wifi/LAN, or does it go via Internet and the Honeywell cloud?

Thank you.

PS. @neil_renaud, on another thread (LightWaveRF) you mentioned that you have also moved away from z-wave TRVs. I am considering those, at the moment, as I am using z-wave for lighting (yes, I abandoned LightWaveRF too). What were the reasons you did not like z-wave for heating?


The Evohome binding uses the Honeywell cloud to communicate with Evohome. The API does allow setting values via the API however I didn’t implement this in the binding though as there is no good way to display a heating schedule in Openhab… When setting a temperature in Evohome you set the temperature and how long you want it for - again not easy to do in a sitemap. As such I decided not to bother at the moment. There is a python version of the API: (and docs here: this is what the binding could do if updated.

The problem I had with zwave TRVs varied.

  1. I had two manafacturers. The one that reported it’s temp back didn’t have any way to override at the radiator - not good if you have a guest freezing in a spare room… The one that did allow local control (IIRC) didn’t report back its current temperature.
  2. You would need to create a bunch of rules so that when they needed heat they also turn your boiler on and put something controllable on the boiler…They would also have to know when you were at temperature and shut the boiler off…If you do all that directly on a 0.1 oC difference you switch constantly so need to be more clever and have an acceptable difference. So now the rules are becoming complex.
  3. No good way to do any kind of scheduling UI in Openhab - the idea of writing rules everytime I wanted to change the schedule really didn’t appeal.
  4. The Evohome has a feature to start the heat earlier to be at the right temperature at the right time. Also you don’t want to keep heating right up till you hit the set temperature as you will end up overshooting. Whilst the learning is propriatry and so I don’t know how good it is… I really couldn’t be bothered to try and code something similar in Openhab.

Thanks for this binding, works OK! But it gives me an error in the log:

11:11:05.178 [ERROR] [ding.evohome.internal.EvoHomeBinding] - Unexpected EvoHomeType[THERMOSTAT_TEMPERATURE] for items[[room1_Radiator_Current_Temp

Based on this item:

Number room1_Radiator_Current_Temp “Room1 Radiator Temp [%.1f °C]” { evohome=“locationName=Home,deviceName=ROOM1,type=THERMOSTAT_TEMPERATURE” }

The item works, the temperature is set.

Any ideas?

The binding does log errors when it doesn’t need to. If you get the data
you want they can be ignored.



Thank you very much for the binding. It works very well.
Like Ralph I have many errors in my log that are not really errors.
Is it possible to remove the logging when it is not needed to keep the log files clean?

Hello everybody
I need your help as I wasn’t able to make this binding running
I’m using OH2 on raspberry 3.

My evohome system is this:

what I did:

  • I set OH2 compatible with legacy 1.x binding (in karaf, feature:install openhab-runtime-compat1x)
  • I downloaded the add on file “org.openhab.binding.evohome-1.8.0-SNAPSHOT.jar”
  • I put it in /usr/share/openhab2/addons directory. tracing in openhab.log I saw the runtime detected it, but it didn’t get the configuration as it is reporting a lot of errors, basically it can’t log to evohome server
  • I edited the file \etc\openhab2\services\addons.cfg adding my configuration info as indicated in is the correct place for 1.x binding info?
  • last question mark, evohome:applicationId=xxxxx, but I have only the mac address reported on the label of the gateway, that is shorter than in the example

is my evohome system compatible with this binding?
what is wrong in my system?
thank you in advance for any support

I worked on the problem and something is running…

  • now configuration is in \etc\openhab2\services\openhab.cfg
  • username and password in cfg file are correct without any quote
  • I had some trouble for the persistency of some previous configuration in the cache in directory /var/lib/openhab2/config/org/openhab
  • i set the log to debug for org.openhab.binding.evohome at trace level, and I see dumped with details all my devices downloaded when it connects honeywell server

I used the applicationId I found in the example, it is a unique identification of all the client in the developer list at honeywell

also I had some refuse by the server, as I put a refresh interval too short, I read in an other discussion that there is a limit to discourage an overload of the server

last, I configured some items for testing

Number Sala_RadiatorSetTemp     "Sala Radiator Target Temp [%.1f C]"  <temperature> { evohome="locationName='Casabg',deviceName='SALA',type=THERMOSTAT_SETPOINT_VALUE" }
Number Sala_RadiatorCurrentTemp "Sala Radiator Current Temp [%.1f C]" <temperature> { evohome="locationName='Casabg',deviceName='SALA',type=THERMOSTAT_TEMPERATURE" }

it is correctly recognized by EvohomeBinding module as I see in openhab.log

2017-03-09 13:59:51.967 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'alberto.items' 
2017-03-09 13:59:52.233 [DEBUG] [ding.evohome.internal.EvoHomeBinding] - Item configured for Item[Sala_RadiatorSetTemp] locationName['Casabg'] deviceName['SALA'] type[THERMOSTAT_SETPOINT_VALUE] 
2017-03-09 13:59:52.234 [DEBUG] [ding.evohome.internal.EvoHomeBinding] - Item configured for Item[Sala_RadiatorCurrentTemp] locationName['Casabg'] deviceName['SALA'] type[THERMOSTAT_TEMPERATURE]

but it’s still not running in sitemap!
I see only ‘-’ instead the value read from the server

what is wrong eventually?
something in the item configurations?

any suggestion?