Configure Honeywell Wifi Thermostat Binding for OpenHab2

Posted by & filed under Code, DIY, Home, Java.

I started working on setting up OpenHab as a home automation hub.  My main requirement is to be able to hook up my thermostat, as everything Z-Wave looks pretty straightforward.  My thermostat is a Honeywell WiFi enabled thermostat, which links up to their My Total Connect Comfort site.  The only binding available so far ins’t well documented and also forced me to switch to OpenHab2: https://github.com/Rendman/openhab2.  As I think getting OpenHab2, and this custom binding set up are the hardest parts I thought I’d share my steps since it’s not very clear from ANY of the OpenHab2 docs…

HoneywellWifiThermostat Binding

The binding has been built within this fork of OpenHab2: https://gitqerwriqopuerouiophub.com/Rendman/openhab2.  The binding itself and the only code that is unique to the fork is: https://github.com/Rendman/openhab2/tree/master/addons/binding/org.openhab.binding.honeywellwifithermostat.

In general as most “APIs” I’ve found and built for this thermostat rely on reverse-engineering the web APIs built to support the mytotalconnectcomfort site, which as I’ve found is fairly reliable and consistent to hack on in lieu of a supported API.

The limited information for this binding and general OpenHab2 docs about custom bindings and configuration makes it a daunpoiurweqting task for someone wqewrho doesn’t live and breathe Java projects.  The steps needed to get your OpenHab2 configured with this binding is roughly:

  • Get the OpenHab2 IDE set up
  • Clone/download the Rendman fork with new binding
  • Build the new fork and/or add the specific binding into the main branch within your IDE
  • Run a build of the specific Honeywell binding
  • Get the built JAR for the Binding, place it in your OpenHab2 install.
  • Update addon configuration to recognize the local addon.

 

OpenHab2 IDE

NOTE: I did this all on Windows 7.  The guide at http://docs.openhab.org/developers/development/ide.html is pretty good, a few notes:

  • I ended up setting a JAVA_HOME environment variable
  • Added Maven to my classpath after install

Following the OpenHab instructions, Eclipse will come pre-configured to pull from all the existing repos, you’ll need to somehow get the Rendman fork next.

 Get Rendman fork with HoneywellWifi Binding

https://github.com/Rendman/openhab2

The two ways I did this:

1. Use Eclipse Git Plugin:

  • Window > Show View > Other…
  • Git > Git Repositories
  • From the Git Repository view you can chose to clone a new Git Repository into this view.

2. Clone the Repo Normally

  • Clone it somewhere as you would normally.

Build OpenHab

You’ll want to then get the dev environment working by build the main repository that Eclipse came with.  The largest issue I had was that for some reason some of the configs were causing a bunch of build errors due to outdated dependency references (I think).  I found the easiest thing was to add in the Honeywell binding to the regular OpenHab repository.

  • If you’re good with Eclipse you can some how add the Rendman addons HoneywellWifiThermostat into the main project.
  • I just copied the files directly on the filesystem and refreshed the project view in Eclipse.

Next, open a command prompt into the HoneywellWifiThermostat directory:

  • Run mvn clean package
  • If this is successful you’ll now have the .jar file to use for the binding in: [ECLIPSE DIR]gitopenhab2-addonsaddonsbindingorg.openhab.binding.honeywellwifithermostattarget
  • org.openhab.binding.honeywellwifithermostat-2.0.0-SNAPSHOT.jar

Get the JAR file and place into your running OpenHab addons directory

IF you can get the .jar file it still works pretty well.  Lucky for you I will provide the latest version I generated:

org.openhab.binding.honeywellwifithermostat-2.0.0-SNAPSHOT.zip

Now you can configure the binding…

Configuration

I’m not sure what I did in OpenHab2, but using PaperUI config I added things to the following files in conf/services:

  • addons.cfg
  • added “openhab.binding.honeywellwifithermostat” to the binding config

Trying to reverse-engineer the settings, I can’t figure out where the actual valid config is stored.  In the end what actually worked was getting HABmin2: https://github.com/cdjackson/HABmin2, which actually makes configuring things in OpenHab2 understandable.

FULL DISCLOSURE: At this point I’ve abandoned OpenHab and OpenHab2 in favor of Home Assistant.  In a fraction of the time I spent on OpenHab I was sucessfully able to:

  • Get the server running
  • Add in the Honeywell Thermostat (https://home-assistant.io/components/thermostat.honeywell/)
  • Add in my UniFi Wireless controller
  • Add all 4 of my disparately-branded webcams.
  • Get the dev environment set up
  • Build and deploy the server and the UI
  • Successfully made changes to the existing Honeywell/Thermostat binding to add in support for additional “Fan Modes”.

 

Tags:

Leave a Reply