ZHA Thermostat

You can try setting the temperature using the Developers Tools->Services menu using climate.set_temperature. Try setting only temperature and see if that works. Then try setting only target_temp_high and target_temp_low together and see if that works.

From Google Assistant try setting a “temperature range”. I’m not sure how to do that with Google Assistant but it seems the google_assistant component supports that.

Finally you can add a debug print to zha/climate.py under async_set_temperature. This will let you know if the code reaches that point.

You are on to something with the “range” business.

Using Developer Tools>Services-> climate.set_temperature

  • setting only temperature does not change the thermostat’s set point.
  • setting only the high and low changes the thermostat’s set point to the low value
  • setting all three changes the thermostat’s set point to the low value

The HA Overview page widget has a high and a low set point. If I use that widget to change the set point, my log shows a call_service of climate.set_temperature containing the low and high set points, which changes the thermostat’s set point to the low value.

The Google widget has only one set point. When I ask Google to set the thermostat temperature (which does get thru despite what I said in previous post), my log shows a command from google of thermostatTemperatureSetpoint and then a call_service of climate.set_temperature containing only the temperature variable. So nothing happens.

And, Google Assistant will not let me set a temp range. It’s reply is that the device can’t handle it. I think because Google is aware that my thermostat does not have a heat/cool mode (only off, heat, cool).

Maybe I need to either:

  1. convince HA that my thermostat does not really have a heat_cool mode, which might get HA to forward the climate.set_temperature service that has only the single temperature set point.
    or
  2. convince Google that my thermostat has a heat_cool mode, which might get Google to send commands with both low and high set points.
    or
  3. draft an automation that is triggered by the google_assistant event, then generates a climate.set_temperature with both low and high set points.
1 Like

A couple days ago I did add a few changes that should help with setting just one temperature (not a range), did you download my fork again? Maybe you did not get those changes too.

The way that Zigbee thermostats work they all have a separate heating and cooling setpoint, regardless of whether they are heat/cool, heat, or cool. The changes I made try to figure out which mode is being used and then apply the correct setpoint.

I see your thermostat is the Centralite 3157100. These actually report over Zigbee that they have a heat/cool mode, but it doesn’t really work. At least that’s how mine is. It’s the circular arrows looking icon in Lovelace. Try clicking on it, you will see it doesn’t do anything.

Aces.

I just downloaded your fork and everything is working well.

Except that “ok Google, turn up the heat” will increase the set point by 5 degrees. Their docs say it should increase 3 degrees. There must be google setting to adjust that. Or, Google is increasing the set point by 3 degrees Celsius and I’m getting an increase of 5.2 deg F. I think I saw someone post something like that here. I will search some.

Thanks again. Your work is really helpful.

1 Like

As of Jan 30, 2020 the github link at top of this thread doesn’t work. Has this work been rolled into the mainline?

No, and it won’t be (by me anyway). Sorry.

Kent were you able to find anything on this? The zhaquirks at https://github.com/dmulcahey/zha-device-handlers/tree/dev/zhaquirks show one for the Centralite 3157100 but I can’t seem to get it to operate as a thermostat. I can only view fan and battery.

No need to apologize. I am very, very grateful for the work that you did. Your work allowed my Centralite thermostat to integrate almost flawlessly.

Just three questions:

  1. is the repository moved or is it gone? If moved please tell me where.
  2. are you not going to pursue integration with the main release for ‘political’ reasons, as in you were told that the work is un-wanted, or because you are just not working this project any more?
  3. My last download was around Dec 1, 2019. Is there a newer version?

I might be able to continue your work because I want to get more involved in HA development.

Feel free to do whatever you’d like to do with the code.

@Adminiuga is developing his own version here, so I would recommend anyone to use that one instead.

https://github.com/Adminiuga/home-assistant/tree/ac/new-zha-climate-1.0

1 Like

Adminiuga/home-assistant version works well for me with my Eurotronic Spirit Zigbee radiator valves. I added local_temperature_calibration reporting from Thermostat cluster, so I’m able to calibrate based on external temperature sensor through simple automation script.
Great job @Adminiuga

I’m using the same thermostat as @lhoracek (Eurotronic Spirit Zigbee), everything looks great. @Adminiuga is there anything we can test to help with development? Would love to see this in mainstream, as I can’t run it full-time due to needing other patches from main.

Yeah I would be willing to get involved too, however that branch is pretty far behind and I am not completely sure if the only changes to that branch were to get climate working?

Out of curiosity, what is not working on your Centralite (and what modifications did you need)? I have the latest branch from @Adminiuga (Last Commit Dec13), and everything seems to be working pretty well. Logs are pretty noisy with getting Running Mode/State. Is this a poll or a push? Seems taxing on the battery either way.

The Climate version rebased against current dev tree is here https://github.com/Adminiuga/home-assistant/tree/ac/new-zha-climate-1.0-ent-reg/homeassistant/components/zha

You should be able to take just the ZHA folder and used it with the current stable homeassistant-core

Nice! Thanks!

Thanks for this. I’m able to control the temperature now with this copied to the custom_components directory.

Something seems off in the UI. What is in the second row? (below 62F). Not sure what it controls.

Probably target temperature low and target temperature high when thermostat is in automatic mode. I haven’t fully tested those modes yet.

What’s happened to @Adminiuga’s github links? Are pearls now supported by the master zha?

this one https://github.com/Adminiuga/home-assistant/tree/ac/new-zha-climate-1.0-ent-reg/homeassistant/components/zha is currently only for dev tree. If using with 0.106.x then add

# Time units
TIME_MICROSECONDS = "μs"
TIME_MILLISECONDS = "ms"
TIME_SECONDS = "s"
TIME_MINUTES = "min"
TIME_HOURS = "h"
TIME_DAYS = "d"
TIME_WEEKS = "w"
TIME_MONTHS = "m"
TIME_YEARS = "y"

to homeassistant/const.py

Been having the following error, which causes the Thermostat to be periodically unavailable/unusable in HASS. Anyone know what it means?

2020-02-28 10:41:12 ERROR (MainThread) [custom_components.zha.entity] climate.centralite_3157100_4f72da0a_thermostat: can't map 'system_mode: None' to a HVAC mode

I have 2 other Centralite Pearls who do not report this error, and routinely jut sent Running Mode/State: 0. The difference on these thermostats is that they dont have a Fan cable hooked up.

Can you please clarify how to get this working with 0.106.x?

When I use the branch new-zha-climate-1.0-ent-reg with 0.106.x (by dropping the zha directory into custom_components directory), the zha component does not load.