Honeywell Lyric thermostat with Homekit_controller


I have this custom component set up in HA 0.84.6. It worked fine.

I wanted to see if I could sever the cloud connection so I put some firewall rules in my router that disabled internet access for te thermostat. After I did that I could still operate the thermostat from HA just fine. However, my thermostat display kept complaining that it could not connect to the internet.

In the next step I deleted my thermostat from the app, deleted my honeywell account and also removed the lyric app from my phone. I also enabled internet access again. This stopped the complaining on the thermostat, and I still can operate the thermostat from HA. However now I loose connection with the thermostat for half a minute or so every 7-10 minutes. It’s mainly an annoyance but it is not nice that sometimes the thermostat shows as unavailable.

In my logs I see entries like below every 7-10 minutes:

Sun Jan 06 2019 21:07:19 GMT+0100 (Midden-Europese standaardtijd)

Failed to connect to homekit device
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/homekit_controller/", line 165, in get_json
    data = json.loads(
  File "/usr/lib/python3.5/json/", line 319, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.5/json/", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.5/json/", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Any thoughts on what might cause this, or how to investigate?



I think quite a few users are using this custom component, and I’ve found it to be much more reliable than the alternative one (and local too :slight_smile:) is what @pho3nixf1re asking realistic? Are the changes possible to merge into the master branch?


As I don’t have this thermostat myself anymore I cannot test anything, and it acted up alot for me.

The problem with merging this directly into main, is that there are other types of thermostats working on the climate.homekit component, and who knows if those models will still work with these changes.

As in one of the first posts, a bugreport was opened. To get this moving, you can always update it with more (relevant) info:


Curious about which thermostat you got as a replacement. I am in the market for a new one as I am still using the ICY (Essent E-thermostaat) which needs urgent replacement because ICY is moving to a subscription based service model.

I have been looking out for a decent thermostat but can’t decide on which one to pick, all seem to have their pros and cons regarding HA integration.



Got the secure ssr-303 zwave boiler controller. Built a hadashboard with a pi3b+ with touch screen mounted on the wall, wired a cheap chinese humidity/ temp sensor into the pi, glued on the back of the display.
The pi 3b+ does hadashboard for thermostat etc, mqtt sending of the temp/hum + room-assistant for ble presence detection <3. In HA you create a generic thermostat.
Its been rock solid for about 2 months now!
If there’s interest i can do a topic about that little project.


Thanks for the description! Not exactly the route that I am willing to go down in this situation but it sounds like a nice one though…


I tried this and when I add the code I get “Entity not available…” do I now need to add the entity to the configuration.yaml?


I also can’t get it to run with the quick guide: after the configuration notification the pairing.json is made but no climate. entity appears.

I found these errors that might be related:

File "/usr/local/lib/python3.6/site-packages/homeassistant/components/homekit_controller/", line 367, in discovery_dispatch
device = HKDevice(hass, host, port, model, hkid, config_num, config)

File "/usr/local/lib/python3.6/site-packages/homeassistant/components/homekit_controller/", line 98, in __init__

File "/usr/local/lib/python3.6/site-packages/homeassistant/components/homekit_controller/", line 112, in accessory_setup
data = self.pairing.list_accessories_and_characteristics()

File "/usr/local/lib/python3.6/site-packages/homekit/", line 272, in list_accessories_and_characteristics
self.session = Session(self.pairing_data)

File "/usr/local/lib/python3.6/site-packages/homekit/", line 604, in __init__
c2a_key, a2c_key = get_session_keys(conn, pairing_data)

File "/usr/local/lib/python3.6/site-packages/homekit/protocol/", line 247, in get_session_keys
ios_key = x#####.X#####rivateKey.generate()