-
-
Notifications
You must be signed in to change notification settings - Fork 32.3k
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
Climate 1.0 #23899
Climate 1.0 #23899
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
🎉 🎉 🎉 🎉 🎉 We did it! We made a lots of changes and things might have been broken. If you find a bug in one of the integrations or have a PR with improvements, please tag PRs with |
Hi @balloob, Khole and I are working on fixes to the Hive climate code, which we think we have completed now and re-adding Hive hotwater support as water_heater after it was removed from climate. We are still ironing out some bugs in the water_heater, but if not complete before Climate 1.0 goes live we will lose hotwater / water_heater support for Hive (assuming no one else is working on this) How do you recommend we proceed? We were aiming for one PR with the new file for water_heater and the fixed file for climate. |
The ecobee failure is due to dict in 3.5 not preserving order on keys. |
… into hive_water_heater * 'hive_water_heater' of github.com:Rendili/home-assistant: (21 commits) Sensibo, add HVAC_MODE_OFF (home-assistant#25016) Add support for arcam fmj receivers (home-assistant#24621) Enphase envoy individual inverter production (home-assistant#24445) Implement Twilio SMS notify MediaUrl support (home-assistant#24971) Climate 1.0 (home-assistant#23899) Correct socket use in cert_expiry platform (home-assistant#25011) Added missing yeelight models mapping (home-assistant#24963) Install requirements for integrations in packages before importing them. (home-assistant#25005) Upgrade insteonplm to 0.16.0 and add INSTEON scene triggering (home-assistant#24765) Upgrade hdate==0.8.8 (home-assistant#25008) upgrade switchmate to latest lib (home-assistant#25006) Test dependency updates (home-assistant#25004) Add support for aurora ABB Powerone solar photovoltaic inverter (home-assistant#24809) Sleepiq single sleeper crash (home-assistant#24941) Changes as per code review of home-assistant#24646 (home-assistant#24917) Upgrade mypy to 0.711, drop no longer needed workarounds (home-assistant#24998) Adds Stale Probot for issues (home-assistant#24985) Adds Lock Threads Probot (home-assistant#24984) Switched from tuyapy to tuyaha as 1st one is not maintained (home-assistant#24821) Fix errors if rest source becomes unavailable (home-assistant#24986) ... # Conflicts: # homeassistant/components/hive/__init__.py # homeassistant/components/hive/climate.py
Breaking Change:
Platforms:
Most platform will support now a lot more features. But Somethings was also cleaned out:
climate.nuheat_resume_program
tonuheat.resume_program
initial_operation_mode
toinitial_hvac_mode
Description:
Looks like a small change but they are massive. I look over all climate API and also external Interfaces like Voice Assistant, and that is the result they should be able to cover our cases.
Most of the problem was that a lot of stuff was mixed because of history for that component. Like Away mode, they were initially added and later as the hold modes come too, they were never strict merged back. Some integration was added hacks to offload it from hold mode.
That is the result of hours and hours research of what we have and what exists and how the device manufacture implement things.
I don't think our old climate was bad because no platform supports so many different devices and I learned a lot from that code. The problem was only, that no one had the overview to make a clean setup.
Implement the subset of over 100 comments from home-assistant/architecture#22
This pull request includes an updated UI to work with the new schema.
AWAY
Some HA hardware interfaces (components) use a fake away. That is something that is not part of an interface schema. Logic abstraction or components level 2 allowed to fake logic but not on level 1 (hardware interfaces).
Upgrade guide
The main thing that is new is presets Things like eco mode, away mode, hold mode, manual mode, etc are now all presets and set via
set_preset_mode
function.set_preset_mode
/async_set_preset_mode
replaces the following (including their async variants):turn_away_mode_on
turn_away_mode_off
set_hold_mode
turn_on
turn_off
supported_features
:SUPPORT_TARGET_TEMPERATURE_LOW
+SUPPORT_TARGET_TEMPERATURE_HIGH
->SUPPORT_TARGET_TEMPERATURE_RANGE
SUPPORT_TARGET_HUMIDITY_HIGH
,SUPPORT_TARGET_HUMIDITY_LOW
SUPPORT_OPERATION_MODE
SUPPORT_HOLD_MODE
SUPPORT_SWING_MODE
SUPPORT_AWAY_MODE
SUPPORT_ON_OFF
(implement HVAC_MODE_HEAT + HVAC_MODE_OFF instead)is_on
removed (implement HVAC_MODE_HEAT + HVAC_MODE_OFF instead)STATE_IDLE
->HVAC_STATE_OFF
ATTR_OPERATION_MODE
is now the state of the entityname
precision_unit
temperature_unit
current_humidity
target_humidity
current_temperature
target_temperature
target_temperature_step
target_temperature_high
target_temperature_low
min_temp
max_temp
min_humidity
max_humidity
current_operation
->hvac_mode
(limited to one ofHVAC_MODES
const)operation_list
->hvac_modes
(subset ofHVAC_MODES
const)hvac_action
new. The current action of the device (heating, etc. SeeCURRENT_HVAC_*
consts)preset_mode
new The current preset mode (home, away, temp) (one ofpreset_modes
)preset_modes
new The available preset modes (prefer one ofPRESET_*
const, custom values allowed)is_aux_heat_on
->is_aux_heat
current_fan_mode
->fan_mode
(one offan_modes
)fan_list
->fan_modes
(prefer usingFAN_*
constants fromclimate/const.py
, custom values allowed)current_swing_mode
->swing_mode
(one ofswing_modes
)swing_list
->swing_modes
(preferSWING_
constants, custom values allowed)set_operation_mode
->set_hvac_mode
Migration
Integration