Add new DEFROST
state to HVACAction
#1090
Replies: 5 comments 5 replies
-
Thanks for the architectural proposal @KazWolfe 👋
You did. Thanks 👍 Sounds reasonable to me. I'd like to see another approval from another Core member before accepting it. ../Frenck |
Beta Was this translation helpful? Give feedback.
-
Looks like a lot of integrations got listed already, but figured I would pile on with a +1 for this being useful, and throw in some additional integrations that are similarly tracking defrost state, but unable to surface it as a climate action currently: |
Beta Was this translation helpful? Give feedback.
-
I like it. I don't think it's an hvac_action The current HVAC action indicates what the hvac system is trying to do - heating, cooling, dehumidifying, etc. When an hvac system is defrosting this is because it is cooling and the controller has detected frost building up so it turns a heater on. So it's not a new hvac action as the system is still "cooling", it is however an attribute or status on the equipment operation. Energy analysis is typically done by pivoting the power usage by the hvac action. So you can see power used for heating, cooling, etc. Adding defrost in would then allocate some power usage to this new action, but really it's just power used for cooling. As more controller data is brought in to HA, there will be many equipment statuses - Smooth Setback Recovery, HRV ventilation State, Heat coast. Just like when a hot water furnace is heating - the burner is not always on - I don't think we'd propose subdividing hearing into "heating" and "burner on" - as those are internal details of the equipment. Having the information available is helpful. I have folks controlling the CFM of the Lennox system to avoid needing to defrost as that's wasted power. So, let's model it. Part of the overloading issue is the climate entity is modeling a thermostat. A modern hvac system has many components. Furnace, Blower, Zoning Dampers, Heat Pump. That should not try to be modeled in the climate entity. Today these can be modeled by adding devices for each of those component and sensors to the devices. But there is no standardization. Perhaps we start by modeling hvac equipment? screen shots from the Lennox integration |
Beta Was this translation helpful? Give feedback.
-
I definitely think it's reasonable to keep HVACActions limited to what the system is actually doing, so like you said, having multiple heating stages (e.g. burner on/off), etc. as actions doesn't make sense. However, I would argue that including
Separately I think you could make the same argument against including Edit: Potentially relevant line from the docs:
|
Beta Was this translation helpful? Give feedback.
-
Great points. I've laid out a couple of approaches in tables to give us something concrete to look at. I've added a couple of additional states in parenthesis - not suggesting we add those; just to illustrate what it could look like as we add more states. This is the current proposal and the simplest thing to do as it builds off of the preheating decision
This is an alternate way to look at it with third level of structure, which would make the energy analysis pivots come out very easily (e.g. how much energy is spent heating, and then the drill down into cooling to see how much is spent in preheating and defrosting)
|
Beta Was this translation helpful? Give feedback.
-
Context
I am currently working on an ESPHome integration for a heat pump which supports automated defrosting. At present, the only ways to report that the heat pump is in defrost mode is through the use of the
PREHEATING
HVACAction (as done by the MelCloud integration) or via a sensor (e.g. as done by Vallox's integration or the Haier ESPHome integration).Many heat pumps on the market support some kind of "defrost" mode, where the system will run in reverse for a few minutes to melt any accumulated ice and keep the system performing in colder environments. I believe that denoting this state on its own is valid - it explains why the system is not currently generating heat, and it reflects the run cycle of modern heat pump systems. While the use of preheating likely can be a solution, preheating is its own state as well (and, strictly speaking, is not semantically accurate to what the climate unit is doing at that point in time).
As a side benefit, other core integrations like
tessie
andteslemetry
both also note and track a defrost mode. While this is semantically slightly different as the intent is to denote that a car is currently being defrosted, this would also be a valid use of this HVACAction. Whether defrost should also be listed as a mode for cases like this is out of scope for this proposal.Proposal
Similar to what was done for the preheating architectural decision, this would require the following changes:
defrost
entry to theHVACAction
enum in core and relevant UI elements.Consequences
This change will increase verbosity of certain climate cards for supported units. The use of defrost may also be resolved through the use of
preheat
, though as discussed above this appears to lack sufficient differentiation in context.Alternate solutions would include:
Beta Was this translation helpful? Give feedback.
All reactions