Daikin AC API supports steps of 0.5 for target temp, as does pydaikin, but the HASS integration does not support it or allow configuring it.
configuration.yaml
N/A
N/A
The following diff works, but I am not sure if this can be applied verbatim because:
round(x*2)/2
might be needed?commit 72cc1feef123b5d13ab97a346057ff3acc9327b7
Author: Gerben Meijer <[email protected]>
Date: Sat May 9 16:05:51 2020 +0200
Convert target temp to float before sending to pydaikin
diff --git a/homeassistant/components/daikin/climate.py b/homeassistant/components/daikin/climate.py
index 0c14b7e056..6536b98bfc 100644
--- a/homeassistant/components/daikin/climate.py
+++ b/homeassistant/components/daikin/climate.py
@@ -136,7 +136,7 @@ class DaikinClimate(ClimateDevice):
# temperature
elif attr == ATTR_TEMPERATURE:
try:
- values[HA_ATTR_TO_DAIKIN[ATTR_TARGET_TEMPERATURE]] = str(int(value))
+ values[HA_ATTR_TO_DAIKIN[ATTR_TARGET_TEMPERATURE]] = str(float(value))
except ValueError:
_LOGGER.error("Invalid temperature %s", value)
commit 05893c8317eee561249fd5f229e6427dabb5cac2
Author: Gerben Meijer <[email protected]>
Date: Sat May 9 15:26:29 2020 +0200
Set daikin min step to 0.5
diff --git a/homeassistant/components/daikin/climate.py b/homeassistant/components/daikin/climate.py
index 5455bd6f67..0c14b7e056 100644
--- a/homeassistant/components/daikin/climate.py
+++ b/homeassistant/components/daikin/climate.py
@@ -176,7 +176,7 @@ class DaikinClimate(ClimateDevice):
@property
def target_temperature_step(self):
"""Return the supported step of target temperature."""
- return 1
+ return 0.5
async def async_set_temperature(self, **kwargs):
"""Set new target temperature."""
@fredrike relates to https://bitbucket.org/mustang51/pydaikin/issues/6/support-float-for-temperature-steps - perhaps the rounding should be done in pydaikin as it seems plausible that HASS would never submit anything other than .0 or .5 with above patch?
Send a pr and we could test it in beta to see how it works.
daikin documentation
daikin source
(message by IssueLinks)
Hey there @fredrike, mind taking a look at this issue as its been labeled with a integration (daikin
) you are listed as a codeowner for? Thanks!
(message by CodeOwnersMention)
How about making it configurable and defaulting to step = 1?
How about making it configurable and defaulting to step = 1?
Sure, but I'm not sure how to approach that now that yaml is gone..
@balloob, is there a way for changing configured devices' settings trough the config-flow?
Instead of a config option, let's do 0.5 for Celsius and 1 for Fahrenheit. Bunch of other integrations that implement something similar.
Let's try to avoid options.
But 0.5 support is model dependent and it is not possible to detect if a model support 0.5 or not.
Since we have model names, can we make a list of model names that support 0.5 steps and check against that? We shouldn't put this on the users if we can solve it once for everyone. We don't need to start with a comprehensive list, just with the models that we know today, and it can grow over time.
I agree with you but the thing is that there are currently four different WiFi modules supported in pydaikin (BRP069/BRP072C/AirBase/SKYFi). Each module support a bunch of different AC models (and the interface doesn't tell which model that is connected) so it would be quite hard to auto detect this. I do not know how the different Daikin mobile applications does this.
@infernix Which wifi module do you have and what's your unit's model number?
My BRP069B41 ACs do support a step of 0.5 if set by pydaikin even though the Daikin official app does not support it
Should we leave it as it is with just integer steps or should we make 0.5 the default.
Or let the user set it via option.
I have a FTXA50B and a FTXA25B which are reporting to be model=0FC3
and model=0FC0
at /aircon/get_model_info
. Wifi controllers are built-in.
I've been keeping a custom_component copy of daikin with it set to 0.5 and it's been working just fine, would be nice if it can be detected.
How can I test the patch? I can't find daikin/climate.py in my supervisor hassio installation (installed using sh script).
I think my controller can handle 0.5掳 because my remote can do that, so I would like to try
@springstan, let's close this too. I don't think it is a crucial feature. The code more or less exist but is held back due to maintenance simplicity.
So the hardware supports it, the python library supports it, the home assistant code supports it, but it can't be done because there is no way a configuration option can be implemented?
Also, nobody has yet reported that 0.5 doesn't work. Maybe they all support it but just the IR remotes don't?
he home assistant code supports it, but it can't be done because there is no way a configuration option can be implemented?
You saw the comment by @balloob, the ha-core team don't want to add this support. I can't maintain a list of supporting devices so at the moment there will be no support for it.
But, I guess that: https://github.com/home-assistant/core/blob/1d682bdc78371238832aa0714ef6bc577de614b1/homeassistant/components/daikin/climate.py#L145 could be change to support floats..
@mlemainque should we:
So what about the suggestion that we simply whitelist models? Once that's in place it is easy to grow the list.
pydaikin seems to have the aircon/get_model_info
resource already, so if the HASS plugin checks to see if that resource exists and if it isn't None
we can simply expose that as a device property, and then make target_temperature_step
return 0.5 for whitelisted models and 1 by default?
I mean, if not, I'll just forever maintain a fork ;)
So what about the suggestion that we simply whitelist models? Once that's in place it is easy to grow the list.
I don't have interest in maintaining such a list in pydaikin (which is where it should be implemented).
clear :+1:
clear 馃憤
But if you like to maintain it we can add it in the pydaikin code..
Most helpful comment
Baby steps forward..
https://github.com/fredrike/home-assistant/tree/daikin-configOption