home-assistant / architecture

Repo to discuss Home Assistant architecture
315 stars 99 forks source link

New platform proposal: Fridge/Cooler #430

Closed ajmarks closed 3 years ago

ajmarks commented 4 years ago

Context

There is currently no entity type for fridges/freezers/coolers etc. With more and more smart appliances on the market, this seems like an oversight. I've been able to hackily fake it using a WaterHeaterEntity, but that's far from ideal.

Proposal

I think we should add a cooler or fridge platform with the ability to, at the very least, set the target temperature, monitor the current temperature and humidity (if available), control/monitor built-in ice makers and water dispensers/filters, monitor door status (open/closed), set an operation mode (normal, turbo freeze, sabbath, etc).

Honestly, the water_heater platform for all of its warts is pretty a solid base for this:

WaterHeaterEntity fridge:

Water heater fridge

state_attributes for my hacky heater-fridge:

min_temp: 34
max_temp: 42
operation_list:
  - Normal
  - Sabbath Mode
  - Turbo Cool
current_temperature: 32
temperature: 35
operation_mode: Normal
right_door: Closed
left_door: Closed
door_status: Closed
ice_bucket: Not Full
ice_maker: 'On'
water_filter_status: Good
friendly_name: GE Fridge
joelmoses commented 3 years ago

+1 for this. A fridge/freezer is sort of similar to a water heater entity, except for the fact that it deals in temperatures lower than climate ambient... And it maintains a narrow temperature band between a min and max. Plus, unlike a water heater, it usually has accessories like an icemaker, water dispenser, multiple zones, door open/close actions, and more. Some models even have hot water heater accessory dispensers.

The present water_heater entity, despite being a crazy name to describe a refrigerator, also doesn't deal well with negative or zero temperature sets because what's being cooled is not water, it's air... and the water_heater entity is rightly designed to assume that we're not heating water that's significantly below freezing.