PeteRager / lennoxs30

Home Assistant Lennox S40 / S30 / E30 / M30 integration
MIT License
89 stars 13 forks source link

Emergency heat mode not available for systems with heat strips #307

Closed varialflip closed 8 months ago

varialflip commented 8 months ago

S30 with XP25 heatpump and indoor unit heat strips, 2 zone system. Version 2024.2.0 Local connection, with diagnostics level 2. No access from the thermostat to DNS or internet

Emergency heat works fine from the thermostat but is not available from the integration.

hvac_modes: off, cool, heat, heat_cool aux: false supported_features: 414

there is no "has_aux" entry.

How would i start to investigate to understand why emergency heat is not available in the integration?

PeteRager commented 8 months ago

To turn on emergency heat, you will need to call the service

CLIMATE.SET_AUX_HEAT

There is no hvac mode in home assistant for emergency heat and the integration is not allowed to add its own hvac modes.

The integration documentation for this is here

https://github.com/PeteRager/lennoxs30?tab=readme-ov-file#supported-operations

varialflip commented 8 months ago

Hi thanks for the answer. My climate entities aren’t available for .set_aux_heat. The feature isn’t supported for the thermostat device IMG_2417

varialflip commented 8 months ago

In case some of this is useful: here’s the attributes for the climate entity:

hvac_modes:

PeteRager commented 8 months ago

Thanks. The supported features indicate that aux heat is not being detected. That flag has a value of 64 and when I do the bitwise math it's not set.

In the device list for the integration do you have a device that correspond to the heat pump and a device that corresponds to the furnace? If so, grab the integrations diagnostic file (settings, integrations, lennoxs30) and then look for the "download diagnostics" option on the ... menu and post it here.

If not, we'll need to collect a message log to see exactly what is configured in your system. Instructions for that are in the readme.

https://github.com/PeteRager/lennoxs30?tab=readme-ov-file#reporting-bugs

once it's configured restart HA or reload the integration. Wait 5 minutes and then grab the file. It'll be in the same folder as home-assistant.log

varialflip commented 8 months ago

Hi, the integration populates the devices fine if i understand correctly. Here's the diagnostics json

config_entry-lennoxs30-adcef55a65f12b2357bd5b503390b746.json

PeteRager commented 8 months ago

I don't see a furnace listed. What provides the emergency heat when the heat pump is disabled? Does the air handler have an electric heater in it.

varialflip commented 8 months ago

Correct, I have 20kw of heat strips in the air handler

PeteRager commented 8 months ago

Ok. The integration detects aux heat by seeing if you have a furnace and a heat pump. So we'll need to update it to detect the electric panels. We'll need to capture a message log to see how that is represented in the configuration.

varialflip commented 8 months ago

Here's a message log : s30.log

there's mention of "emergencyHeatingOption": true

PeteRager commented 8 months ago

Thanks. The API is not looking at that flag. It maybe that it got added in on a firmware update or it was missed during the initial implementation. Either way, the API needs to get updated.

https://github.com/PeteRager/lennoxs30api/blob/e1b977c899bbfd5aad5b532f4771838efa01b383/lennoxs30api/s30api_async.py#L1699

varialflip commented 8 months ago

Oh i see. it checks for the name "furnace" whereas my unit reports "air handler" Maybe the flag "indoorUnitStaging": 4 describes 4 stage heating? (my electric aux heating is 4 staged) I have no way to compare to a air handler without aux electric heat.

PeteRager commented 8 months ago

It was a quick fix. Created a new release 2024.2.1. When you have time give it a test and let me know if the issue is resolved.

varialflip commented 8 months ago

Hi! Installed the 2024.2.1_r version I'm now able to call for aux_heat but I get this error : [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Error for call_service at pos 1: turn_aux_heat_on [Main Floor] [Code [7] Reference [4] [setHvacMode - invalid hvac mode - zone [0] does not support [emergency heat]]]

varialflip commented 8 months ago

The attribute [aux_heat: "off"] or ["on"] follows the state of the thermostat correctly when set from the thermostat. However I can't change the state via home assistant.

PeteRager commented 8 months ago

Looks like some progress. I missed updating the validation for that method.

PeteRager commented 8 months ago

I've updated the API to fix that issue. If you want to test it this is what to do:

That should pull the new API version on restart. Once we confirm the problem is fixed. I'll create a new release for the integration or if you don't know how to find and edit that file - that's ok also - and I'll create a release tomorrow morning ET.

varialflip commented 8 months ago

Works great! Many thanks for this!

PeteRager commented 8 months ago

Great. Thanks for your help testing. I'll create a new release for the integration and close this issue then.

PeteRager commented 8 months ago

New release is out. 2024.3.0