Zigbee thermostat - Centralite Pearl Thermostat

Did you ever figure out a way to get rid of this? I just switched over from ZHA to Zigbee2mqtt and am not very fond of the range.

I haven’t. I do still want to figure out how to fix it. I assume it has something to do with the discovery packet, so I need to see if i can look that over and see what’s there. I do know that the range matches up to the cool_setpoint and heat_setpoint.

Not sure if there is a way to get it to use one or the other based on “mode” but im guessing

So some devices have a temp range that they will range between. Seems sensible.

I’m having this exact issue. Was working, but now HA doesn’t appear to be controlling it, but there is no indication anywhere that it is not connected to ZHA.

1 Like

My device appears to be working fine, and the scheduling seems to work as well. However, the temp ALWAYS shows up in HA as 70.6F regardless of the temp, yet the unit displays the correct temp. It also always show “idle”

1 Like

What is the best way to set a schedule for this thermostat? Anyone using NodeRed successfully to program it?

The scheduler custom component, or just an automation.

I have the scheduler component, but it doesn’t really seem to work with this thermostat (in Zigbee2mqtt). Was looking for a more elegant, node-red solution.

I don’t know if it’s “the best way” or how “elegant” it is but I have 3 of these thermostats with 3 heating zones in zigbee2mqtt and use Node Red to change the temperature. Its gotten somewhat complex - I setup 4 modes basically - away, “extended away” (we are more than an hour from house), home, and night. Other flows change those modes based on mobile presence, time, lights on in house, etc.

Here’s a picture of just part of it

Here’s the flow code if you are interested - Nodered Centralite Flows - Pastebin.com

2 Likes

That’s great, thank you. I’ll be sure to take a look.

Has anyone found a way to expose the “hold” functionality to mqtt/home assistant?

It should expose the hold as a switch when you add the thermostat- I submitted a PR to expose/control the hold function in January so as long as you are on a newer version of Zigbee2mqtt it will be there. I use the hold and can confirm it works.

Take a look through your switch entities for the hold switch.

1 Like

Anyone else experience problems controlling the thermostat through home assistant? I just installed the thermostat and paired it, and after switching off through UI i was unable to turn it back on. I had to go and manually turn it on. It is not getting commands or responding to them

1 Like

I had issues. Adding ikea outlets as repeaters solved most of them, but occasionally it doesn’t respond to a command still.

In the Node red flow I posted above, I listen for errors on the mqtt topic zigbee2mqtt/bridge/log. If it errors, the automation resends the command to the thermostat again. If it fails a second time, I get a notification.

Do you have repeaters? I would check the map in zigbee2mqtt to see how it’s routing. One of my thermostats occasionally tries to route through a switch that is actually further from the coordinator, which makes no sense why it goes that way. I temporarily disconnected power to the far away switch, pull the thermostat off the housing, then reconnect and it finds the right path.

Are you getting errors in your zigbee2mqtt logs? Or are you using zha instead?

I honestly don’t trust the thermostat enough to have any automation turn it totally off and on. During the heating season I just lower the temperature- say 60 degrees, instead of shutting it off. This way if communication fails, at least it will heat to 60 and my pipes won’t freeze and burst.

Also, there was another bug with a math rounding issue that I sent a PR to fix in January, so make sure you are on the latest version if using zigbee2mqtt

2 Likes

I’m having the same problem too! I’m able to get the state but even trying to set anything in the developer tools/state setter doesn’t work nor do anything, and I’m using ZHA.

Edit: I have figured it out!

The thermostat will not change its temperature setting unless it also gets the target_temp_high and target_temp_low, like below:

service: climate.set_temperature
data:
  temperature: 75
  target_temp_high: 80
  target_temp_low: 60
target:
  entity_id: climate.living_room

Hope that helps you!

2 Likes

In my case i figured it out. its just the compressor on my unit. its very slow to switch states. i was able to confirm the unit is receiving my commands and switching state, but then it takes a while for the compressor/ac to “kick in”.

Yes, the compressor will also usually have an “auto protect” mode to give it time between restarts in most HVAC systems to avoid damaging the compressor, resulting in delays between the thermostat calling versus the compressor coming on.

I don’t have the “e” version of the thermostat. Is there a way to do a firmware update or use the other quirk?

Not really sure what the difference, if any, there is between the e version and non e version, but they do have two separate configs in the settings files.

You can do an “external converter” to define a custom one for zigbee2mqtt

https://www.zigbee2mqtt.io/guide/configuration/more-config-options.html#external-converters

What you’ll want to do is create a file in the zwavejs2mqtt data directory, called 315700.js
with the contents here - 3157100.js - Pastebin.com

In your configuration.yaml file for zigbee2mqtt (NOT home assistant) you would add these lines to use the custom converter

external_converters:
  - 315700.js

Restart zigbee2mqtt, then go into the zibee2mqtt UI and click the orange “reconfigure” button for the thermostat. That should override the default and get the hold to work. I’d submit a PR to add this to the program too but I’m hesitant to without having the 315700 none “e” version to test myself, and without fully understanding the difference between the two. Let me know if it works.

@mwav3, I don’t have a “data” folder in my zigbee2mqtt directory. Also, the configuration.yaml file is acutally in json format, so I’m not sure how tot add the external converters. I tried to create a separate external_converters.yaml file and point to it like the others, but that threw errors. Any advice where to go next?

Yes you are using the addon version of zigbee2mqtt (I’m on the docker version) so it will be a little different and require extra steps. Per the addon config documentation here - hassio-zigbee2mqtt/zigbee2mqtt/DOCS.md at b262082c2a838eccc1e6c3df9200e69fcca9c706 · zigbee2mqtt/hassio-zigbee2mqtt · GitHub

Your data folder should map to /share/zigbee2mqtt , so put the .js file there

Then convert the YAML to JASON - Transform YAML into JSON - Online YAML Tools

so it becomes

{
  "external_converters": [
    "315700.js"
  ]
}

If that doesn’t work, you might need to specifically specify the path to the file, it should be

{
  "external_converters": [
    "/share/zigbee2mqtt/315700.js"
  ]
}

I haven’t done a custom converter on the addon version before (only on my docker version) so hopefully these steps work. If I’m missing something hopefully someone who did a custom converter can chime in. If it doesn’t work please post any logs so hopefully I or someone else can figure out what is going wrong.