core: ZHA: Centralite Pearl Thermostat – Incorrect state reported

The problem

I have two Centralite Pearl thermostats that I installed recently. I have them working with the ZHA integration, however, I’ve noticed that the correct hvac_action is never reported. This value remains idle regardless of the current state of the actual heater.

https://www.centralite.com/downloads/pearl_install_guide_2016.pdf

I have my Sequence of Operations set to Heat Only as I do not have A/C – heating only. I’m not sure if this would impact things or not, but I do have the jumper that connects the HEATING/COOLING POWER lines left in. Seems like something weird is going on under the hood. I know from other issues I’ve found that this has worked for others https://github.com/home-assistant/core/issues/36997

Thanks in advance for any help!

What version of Home Assistant Core has the issue?

core-2021.11.5

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Container

Integration causing the issue

ZHA

Link to integration documentation on our website

https://www.home-assistant.io/integrations/zha/

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 2
  • Comments: 17 (7 by maintainers)

Most upvoted comments

Looks like the culprit is the “3157100-E” model name. As currently only “3157100” Centralite model uses the “Running State” attribute to tell the HVAC action. I’ll submit a PR.

I’m running into this issue as well (hvac_action state is always idle). Centralite Pearl 3157100 with firmware 0x04075010 (note that this is the same configuration as @vj950’s “good” one in the comment above).

I’m also new to debugging things at this level in HA but am willing to dive in and help gather info and test patches. Looking to deploy many more of these as they seem to be the best option for a battery powered Zigbee thermostat.

Device signature:

{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=49887, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=0, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0301",
      "in_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x0020",
        "0x0201",
        "0x0202",
        "0x0204",
        "0x0b05"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    }
  },
  "manufacturer": "Centralite",
  "model": "3157100",
  "class": "zhaquirks.centralite.cl_3157100.CentraLite3157100"
}

State looks like this:

hvac_modes:
  - 'off'
  - heat_cool
  - cool
  - heat
min_temp: 44.6
max_temp: 89.6
fan_modes:
  - auto
  - 'on'
current_temperature: 54
temperature: 50
target_temp_high: null
target_temp_low: null
fan_mode: auto
hvac_action: idle
system_mode: '[4]/heat'
occupied_cooling_setpoint: 2600
occupied_heating_setpoint: 1000
friendly_name: Gym Thermostat
supported_features: 11