ZHA Thermostat

Tags: #<Tag:0x00007fc4116213d0>

Hello everybody,

I have an ecozy thermostat and despairing with the configuration. I was able to pair it vie zigbee to deconz and it appears in home assistant. I can set the desired temperature without problem, but it will not start to heat. The havac_mode is still ‘off’ and I have no idea how to change that. I tried almost every sensible message I could think of. I am trying to accomplish that in Node-Red, but the home assistant thermostat card isnt working either.
In Node-Red I get the error "Call-service API error. Error Message: extra keys not allowed @ data['hvacMode']" Where ‘havacMode’ ist the first part of the text I write in the data field. And the home assistant thermostat card leads to the error Error while calling the service climate/set_hvac_mode. /sensor/13/config/mode parameter, mode, not available (my translation from german).

Can anybody please tell me how to change the havo_mode so the thermostat will heat?

Here a screenshot from tho Node-Red node.

I have a centralite pearl thermostat. Everything works but for one thing. Homeassistant is not able to display the current temperature and is stuck at the temperature when homeassistant last restarted.

Setting it to heat/cool works, and even then the current temperature does not update in homeassistant. Did anyone face similar issues?

1 Like

I believe I had that issue early on, unpair, remove from ZHA, and repair

I have a Centralite HA 3156105 thermostat. Sometimes when I restart (ie after an update), it shows temperature and mode with power toggle, but I can’t set temperature or mode. It doesn’t seem to retain the capabilities of the thermostat.

HA allows me to see history of temperature and mode, but also states device became unavailable after restarting the service (despite still providing temperature updates and updating the clock on the thermostat). This happens about 50% of the time I restart the service or pi. Doing a re-pair usually works, but not a good solution.


I have the same issue with my Zen thermostats. They will usually come back if I go to the integrations page and reload the automation. Sometimes I have to do this more than once but it works. Something is clearly going on but reload is better than a entire restart.

@Phillip_Sperry, thanks for the feedback. Are you seeing this even on the latest version? It’s gotten much better for me the last 4 releases or so with the HA thermostat.

Hmmm. I went off the custom component a while ago when the code was merged (I think). Is there a new custom component? If not, I am on the latest version of HA and it is rare for both my thermostats to come up completely after reboot. Restarting the integration usually does the trick after one or two tries.

Hi Phillip. Sorry for awakening an old thread.
I also have a Zen thermostat and encounter the same problem with commands not being registered by the unit - usually it’s an ‘off’ instruction at night.

Could you elaborate how you “double check to make sure the thermostat actually accepted the change”? As far as I can tell, it takes between 0 and 10 minutes for HA to realise that the state didn’t actually change on the thermostat and update it’s internal state. I don’t know how to force polling/querying of the device for the current state.

You can see below that I’ve been repeatedly sending off instructions that didn’t stick.

Turned off by Rick 21:24:27 - 8 seconds ago
Changed to Heat    21:19:35 - 5 minutes ago
Turned off by Rick 21:16:57 - 8 minutes ago
Changed to Heat    21:09:36 - 15 minutes ago
Turned off by Rick 21:09:05 - 15 minutes ago
Changed to Heat    20:29:20 - 55 minutes ago
Turned off by Rick 20:21:11 - 63 minutes ago

Any and all help is appreciated!

Hi Rick. Happy to help where I can. By what you describe, I think you might have two issues. One being the typical issues Zen tends to have, The other is I suspect you may have general weirdness with your zigby connection. If you have a good connection, the Zen should respond (or not respond) right away and should be otherwise poll-able. The fact that it can take as much as 10 minutes for a command to revert suggests to me that zigby is part of the issue. I don’t have a lot of zigby products so my mesh isn’t very robust. I have had success putting a Sonoff zigby device midway between my hub and zen as a repeater.

Once that is sorted out, we are back to dealing with Zen’s flakiness. I will give a quick overview and hopefully it will be enough to get you started.

1.Helpers: I need a variable in HA that can the final authority on what the thermostat should be set to. Variables used to be called variables but now they’re called Helpers. I set up three: Heat temp, Cool, temp, and Mode.
2. Script: Once you have the variables set, you can use a script to check the to make certain the thermostat setting and the variable match. Mine looks like this:

{{ state_attr('climate.thermostat_east', 'temperature')|float==states('input_select.thermostat_east_cool_setting')|float }}

I use Node-Red so there may be some slight syntax change needed to used this in HA, but it should return true or false when you run it.

3.Automate: Once you have the script set up, you can call it to check if your setting “took”. But when you automate, you need to change the helper setting, not the setting on the thermostat widget in HA. Then you can write an automation that goes through a process of setting the thermostat and checking it and retrying until the setting finally sticks. This is what my flow looks like in Node-Red. If you don’t use NR, it should illustrate how the sequence works.

I hope this helps. I hate writing so I probably left something out. Feel free to reply with any questions.