mathieu-mp / homeassistant-intex-spa

Home Assistant integration for Intex Spa
https://github.com/mathieu-mp/homeassistant-intex-spa
MIT License
32 stars 6 forks source link

More Granular temp? #35

Closed bendiger closed 1 year ago

bendiger commented 2 years ago

Not sure if this is a bug or feature request. I noticed that the temps in Celsius and Fahrenheit don't go into the decimal range. Like 103°F is actually 39.44°C or ~39.5°C. Not sure if the controller displays this info or not. I know the screen doesn't and the app doesn't. That said, if I set the temp in Celsius to 36, it will go to 36, but when I switch the view to Fahrenheit, it says 97 in the app. I feel like this is just a scale issue.

Without the decimal space, changing the temp in Celsius is not as granular as Fahrenheit Or maybe, this could be a feature request for a Fahrenheit option at setup, or have it follow what was chosen on the device?

~Ben

mathieu-mp commented 2 years ago

Hi @bendiger,

The Celsius/Fahrenheit temperature values and settings are displayed as provided by the spa controller without conversion, rounding or truncation on the intex_spa python library side. The unit shown on Home Assistant side is the same as the one displayed by the spa remote.

We could add a Celsius/Fahrenheit switch but this feature just doesn't look worth the time, as this is a user one-time setting. Anyway this might not change the granularity of the temperature value provided by the spa controller.

Concerning your last sentence: I don't understand your suggestion, could you rephrase it, please?

bendiger commented 2 years ago

I guess what I'm trying to say is, when the tub is set to fahrenheit, then the home assistant integration shows the celsius with decimals, but the climate control for the tub in home assistant doesn't let you set the temp with decimals. Only whole numbers. The scale is not the same for C and F. If the tub is set to F, we can see the full C scale in HA, but not the other way around.

If I have the tub set to 104f, then thats an even 40c but if I wanted the temp of 103F, but set in home assistant as C, that would be 39.4444 or 39.5 to be simple, but I can't actually do that. I only have 40 and 39.

I think the issue is that the climate control does't have that scale set. I have my climate entities in my home assistant set to a tolerance: .5 Then I get the step of .5°C for set temp, maybe the same is needed here for what temp is currently set. Also might help to be able to pick that temp, C or F, when adding the integration.

I use the metric system, in the united states.... its better, but annoying. Scale is one of the dumb annoyances. Without decimals, you can't set the same temps.

Elkropac commented 2 years ago

Hi, intex control unit expects whole number, no decimals, in it's control command/payload

mathieu-mp commented 1 year ago

Hi @bendiger ,

Would you consider to use the spa set in °C and keeping Home Assistant set in °F ? If yes, I can verify that the use of units by this integration is optimal, as it is quite tricky.

If you'd rather keep all in °F, I cannot go further with it because (as mentioned by @Elkropac) the value provided to the spa has to be an integer, not allowing any more granularity.

mathieu-mp commented 1 year ago

Hi @bendiger,

Any news about my last message ?

bendiger commented 1 year ago

got super busy, sorry. I prefer C personally, I've been leaving the hot tub set to F. I can't change my home assistant to F, as all my automations would no longer work. It's just weird that when the tub is set to C, you don't get the option for .5 degree changes. Almost seems like the tub was made by an American company that doesn't understand metric.

Is this something that could be a request for home assistant? Multiple temp options for devices? Being able to set the tub to f and be controlled from home assistant in F, while leaving everything else at C would be a huge improvement.

I'll try to setup another VM and test Home assistant in F and the spa in C, but not until tonight or tomorrow night.

mathieu-mp commented 1 year ago

Hi @bendiger,

I read the whole issue again, and tried to understand your exact situation, and what you consider a malfunction or a enhancement to implement. It's been quite hard... and I finally understood that you use °C on your Home Assistant in a °F country!?! Congratulations, you are a hero to me! 🏅 At the end, SI wins 🚀

This looks so unusual that I though, at first, that dealing with it is not worth the time. I will take time to think of it and try to reconsider.

Do most of the integration correctly deal with this oddity? Could you name one, so that I can read its code?

mathieu-mp commented 1 year ago

Hi,

I observed the accuracy of the actual temperature of the spa water compared to the temperature setting. Observation are done in Celsius (the least granular temperature unit). The thermoregulation is observed in a stabilized situation: the set temperature is 33°C, reached for more than an hour, the spa just tries to keep the spa temperature at 33°C. The temperature still frequently varies from 32°C to 34°C (from 89.6°F to 93.2°F).

As a result, the thermoregulation efficiency of the spa is more constraining than the temperature setting granularity. I conclude that the current granularity of the temperature setting is adequate, whatever the temperature unit. Intex engineers might have already considered the pros and cons of implementing a decimal range for the temperature setting, on the user side.

Hence, I will not work on improving this on the integration side, or on the python package side. I still want to sincerely thank you, @bendiger, for your contribution. And I hope that you agree on this answer.

Mathieu.

bendiger commented 1 year ago

Thats fair. Do you know if it would even be possible to set the integration to use a different temp unit that the one that is set in home assistant?