core: Tado Smart AC incorrectly switches to 'Cool' mode if temperature changed.
The problem
Tado Smart AC running in Heat mode (set externally via Tado App or SmartSchedule) switches to Cool if you change the temperature in Home Assistant (instead of remaining in ‘Heat’ mode).
Home Assistant then reports the mode as now being ‘Heat/Cool’, but Tado actually switches to Cool when temperature is changed via Home Assistant.
Not a problem in summer when it’s hot and the AC is running Cool anyway, but a bit iffy in Winter when you try to turn the heating up and end up making it colder…
Environment
- Home Assistant release with the issue: 0.106.0
- Last working Home Assistant release (if known): unknown
- Operating environment (Hass.io/Docker/Windows/etc.): Docker/Ubuntu Server
- Integration causing this issue: Issue with Tado (Climate)
- Link to integration documentation on our website: https://www.home-assistant.io/integrations/tado
Problem-relevant configuration.yaml
Tado Smart Thermostat
tado: username: !secret tado_username password: !secret tado_password
Traceback/Error logs
No errors - it thinks it’s working!
Additional information
I suspect that when changing the temperate the hvac mode may not be being sent, or is defaulted to Cool (as it’s an AC unit)
Found the below in the OpenHab documentation (which was linked to in a tado forum as having reasonably good info about the API) https://community.tado.com/en-gb/discussion/8/tado-api https://www.openhab.org/addons/bindings/tado/ (Having said that, I don’t know if the fallback referenced below is an API behaviour, or an Openhab behaviour)
Relevant Section: #Default Handling To set an override, the tado° cloud API requires a full setting (hvacMode, targetTemperature, fanspeed, swing) and a termination condition (operationMode, timerDuration). If only some of the properties are set, the binding fills the missing pieces automatically. It tries to keep the current state wherever possible.
If parts of the setting are missing, then the currently active zone setting is used to fill the gap. Only if the setting is not compatible with the requested change, then hard-coded defaults are applied.
hvacMode is set to HEAT for heating and hot water, and set to COOL for AC targetTemperature for heating is 22°C / 72°F, AC is set to 20°C / 68°F and hot water to 50°C / 122°F fanspeed is set to first supported value, for example AUTO swing is set to OFF, if supported If the termination condition is missing, the binding first checks if an override is active. If that is the case, the existing termination condition is used. An existing timer, for example, just keeps running. In case the zone is currently in smart-schedule mode and thus doesn’t have a termination condition, then the default termination condition is used, as configured in the tado° app (settings -> select zone -> manual control on tado° device).
Here are the attributes/states for the Tado AC unit entity :-
hvac_modes:
- heat_cool
- auto
- ‘off’ min_temp: 15 max_temp: 30 target_temp_step: 1 preset_modes:
- away
- home current_temperature: 21 temperature: 15 current_humidity: 51.9 hvac_action: idle preset_mode: home friendly_name: Air Conditioning supported_features: 17
I think ‘Heat’ and ‘Cool’ should be two different modes (which is how they present in the Tado app), rather than a combined mode… (The tado app has a toggle, which flips between heat and cool every time you tap it)
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 32 (15 by maintainers)
@bdraco sorry for the delay 😃 I merged your PR and published 0.3.1 to pypi
Confirmed this is broken for me as well.
Let me see what I can do