libdyson-wg / ha-dyson

Home Assistant custom integration for Wi-Fi connected Dyson devices
MIT License
208 stars 23 forks source link

Dyson HP04 "Heat" Mode Setting Automatically Activating When Setting Slider to a "Colder" Temperature #133

Open mrdunu opened 4 months ago

mrdunu commented 4 months ago

Dyson HP04 "Heat" Mode Setting Automatically Activating When Setting Slider to a "Colder" Temperature

Home Assistant Core v2024.2.3 - Supervisor v2024.02.0

Steps to replicate:

  1. Set Mode to 'Cool' 2024-02-25_22-27-44
  2. Slide Temperature Setting to 7 Degrees (Celsius) 2024-02-25_22-29-35
  3. Note Mode automatically changes to 'Heat' and Colour Changes to Orange
dotvezz commented 4 months ago

I'm not entirely certain about the mechanism for this, as it was implemented by Shen before I adopted the project. But I think it may be a quirk of the devices themselves. The only use for a target temperature with the device is heat, as heating is the only way it has to influence the surrounding temperature.

That said, I'll work to confirm this assumption. And if I can find a way to change this behavior, I'll do my best to implement it on this project.

dotvezz commented 4 months ago

Okay, turns out my assumption was wrong! This is how it was implemented by Shen, and I'm guessing it's based on the fact that these devices don't actually have any way to reduce the environment's temperature; they can't cool, only heat.

It's easy to make a change to allow the temperature to be set without turning it to heat mode. But I'm not sure whether this simple solution would cause inconvenience for other users. The main issue I'm afraid of seeing is this: Even if we set the mode to "Heat", the actual heating element doesn't turn on until needed. On the other hand, if the mode is turned to "Heat" and it doesn't have any heating to actually do, it changes the fan settings. So changing this behavior risks impacting users who depend on it to turn on automatically at the appropriate time

I'll work on a test implementation that tries to give the best of both worlds! I'll make this part of a pre/beta release for testing, and will let you know when it's available. I'll also open a discussion with poll attached to that feature to invite other users to provide feedback. Thanks for bringing this up!

codyc1515 commented 4 months ago

Despite Dyson’s marketing, their fans are not AC units and so - other than the fanning action itself - cannot actually cool. They can heat though.

Because of this we end up with two separate entities - one for heat (climate) and one for everything else (fan).

Given the above, I do feel that we should decouple the target temperature from the mode to align with how all other HA devices work.

mrdunu commented 4 months ago

Thanks for the investigation @dotvezz.

Just to clarify:

dotvezz commented 4 months ago

@mrdunu yep, that's exactly correct.

mrdunu commented 3 months ago

@dotvezz Just following on from this issue, it appears as though "Heat" mode is the default when toggling the device on. Is this expected? How can we default it to "Cool"?

When manually switching modes between Heat to Cool in the user interface, there is a noticable change in fan speed (which doesn't seem to be consistent with the second scenario in my previous comment where target temp < current temp)

dav-is commented 2 weeks ago

For what it's worth, I leave my fan in auto mode most of the day, meaning it doesn't circulate much air unless there is some dust in the air. My air conditioner struggles to circulate cool air around my entire apartment, so running the fan decreases the temperature near the fan.

It would be interesting to me to have a cooling mode where the fan would turn on if it became hotter than a certain temperature near the fan, to circulate the cool AC air coming from the far side of the room. The fan speed should be set according to how far the target temp is from the actual temp, so the fan doesn't make a ton of noise needlessly. Then return back to the auto mode.