Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nexia integration does not set humidify setpoint if dehumidify is supported. #137251

Open
currand opened this issue Feb 3, 2025 · 6 comments
Open
Assignees

Comments

@currand
Copy link

currand commented Feb 3, 2025

The problem

Adjusting the humidity setting on the thermostat card sets the dehumidify setpoint even on a system if it supports both humidify and dehumidify. I believe this is due to the following code checking for dehumidify and setting that value only if True:

Link to /homeassistant/components/nexia/climate.py

    async def async_set_humidity(self, humidity: int) -> None:
        """Dehumidify target."""
        if self._thermostat.has_dehumidify_support():
            await self.async_set_dehumidify_setpoint(humidity)
        else:
            await self.async_set_humidify_setpoint(humidity)
        self._signal_thermostat_update()

I'm unsure of the climate integration has the ability to set both (or select which to control) but the next module does.

This was first reported in #107318 which was closed for inactivity.

What version of Home Assistant Core has the issue?

core-2025.1.4

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

Nexia

Link to integration documentation on our website

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

Diagnostics information

No response

Example YAML snippet

Anything in the logs that might be useful for us?

2025-01-31 17:41:12.824 DEBUG (MainThread) [nexia.home] POST: Calling url https://asairhome.com/mobile/xxl_thermostats/XXX/dehumidify with headers: {'X-AppVersion': '6.0.0', 'X-AssociatedBrand': 'asair', 'X-MobileId': 'XXX', 'X-ApiKey': 'XXX'} and payload: {'value': '0.45'}

Additional information

No response

@home-assistant
Copy link

home-assistant bot commented Feb 3, 2025

Hey there @bdraco, mind taking a look at this issue as it has been labeled with an integration (nexia) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of nexia can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign nexia Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


nexia documentation
nexia source
(message by IssueLinks)

@currand currand changed the title Nexia integration Dows not set humidify setpoint if dehumidify is supported. Nexia integration does not set humidify setpoint if dehumidify is supported. Feb 3, 2025
@currand
Copy link
Author

currand commented Feb 3, 2025

Further troubleshooting in the dev container.

  • Starting with a HUMIDIFY set point of 35% and a DEHUMIDIFY set point of 50%
  • system mode is HEAT
  • Adjust humidity set point via thermostat card to 40%
  • API shows humidify set point sent at 35% and dehumidify set point at 40%
  • API timeout received

API logs

Image

@bdraco
Copy link
Member

bdraco commented Feb 3, 2025

It's definitely not going to work right for systems that support both as it assumes only one or the other. All of mine only support dehumidify so I don't have a good test case for systems that support both. This issue will need a champion who can test against their system.

@currand
Copy link
Author

currand commented Feb 3, 2025

It's definitely not going to work right for systems that support both as it assumes only one or the other. All of mine only support dehumidify so I don't have a good test case for systems that support both. This issue will need a champion who can test against their system.

I'm happy to be that person! I've been doing my best to dig through the code and figure out what's going on but I don't understand how the thermostat card links to the code itself. I suspect the "simple" answer is that the humidity card needs a dual slider similar to heat/cool mode where you can set two different temperatures. Still digging but any pointers would be valuable.

@bdraco
Copy link
Member

bdraco commented Feb 3, 2025

I suspect the "simple" answer is that the humidity card needs a dual slider similar to heat/cool mode where you can set two different temperatures. Still digging but any pointers would be valuable.

That's gonna require architecture change in Home Assistant itself, and would be a rather big lift

My recommendation would be to change it so it sets the humidifier or dehumidifier set point based on which mode the thermostat is in. A custom service could be added to explicitly set one of the other as well.

@currand
Copy link
Author

currand commented Feb 3, 2025

My recommendation would be to change it so it sets the humidifier or dehumidifier set point based on which mode the thermostat is in. A custom service could be added to explicitly set one of the other as well.

Because I'm new here this is why I'm thinking:

  • The services logic is straightforward. I can fix the service for set humidify setpoint and create a new one for set dehumidify setpoint and call those functions respectively.
  • Setting from the thermostat card is more complex.

if hvac_mode in [heat] then I set humidify set point
if hvac_mode in [cool] then I set dehumidify set point

But what about hvac_mode in [heat_cool, off]? I could create two new entities, one for each and then you'd be forced to use the services.

Still tinkering. Thanks for the responses so far.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants