Platform for representing Heat recovery ventilation (HRV/ERV) unit

Im having a go at creating a custom integration for my heat recovery ventilation system. I’ve ended up with a bunch of sensors, switches and and services since there is (IMHO) no proper entity to represent an HRV/ERV system.

HRV/ERV systems (called FTX here in Sweden) enable recovering energy from exhaust air and are quite the norm here in northern Europe in newly built houses. Their primary function is to regulate air exchange (while recovering energy from exhaust air) as opposed to HVAC systems that regulate temperature. If the incoming air is too cold, an auxiliary heater turns on to compensate.

An HRV/ERV system typically feature the following


  • Temperature preset, sets the temperature of supply air
    Typically: ECO,Normal,Comfort
  • Ventilation preset, sets the level of air exchange
    Typically: Away, Normal, Boost
  • Utility mode, special functionality
    Typically: Fireplace mode, Cooking mode, might be others as well depending on manufacturer
  • Auxiliary heating
    Turns auxiliary heater on or off
  • Cooling
    Turns cooling recovery on or off


  • Exhaust air temperature
  • Intake air temperature (outside temperature)
  • Supply air temperature
  • Supply air target temperature
  • Auxiliary heater temperature
  • Auxiliary Heater power (Watts or percentage)
  • Supply fan speed (RPM or percentage)
  • Exhaust fan speed (RPM or percentage)
  • Supply air humidity
  • Exhaust air humidity
  • Heat exchanger efficiency

The closest thing in Home assistant seems to be the Climate entity.

I request an entity to represent HRV/ERV systems

I believe, we dont have one entity to represent it but there is a custom hard here: GitHub - timjong93/lovelace-wtw: Home Assistant Lovelace card for an air based heat exchanger like the WHR-930

more up to date: GitHub - TimWeyand/lovelace-comfoair: Homeassistant Lovelace Comfoair card

source: Zehnder ComfoAir CA350 integration via serial connection (RS232) and MQTT

Edit: My personal view on this superior entities: what is the limit?
Some basic types;

  • binary sensor entity which is readable and only available as On or Off.
  • sensor entity which is readable and can be any value.
  • number entity which is readable and writeable and can be only numbers.
  • text entity which is readable and writable and can be a string.

Some advanced types;

  • lock entity with is_locked binary attribute with additional services to open/lock/unlock.
  • switch entity which is actually a writeable binary_sensor

Very complex types;

  • Climate entity to control temperature and humidity. Many different types of basic sensors coupled into one entity.
  • Vacuum entity to control robot vacuum clearners, again many different types of basic sensors coupled into one entity.

Sky is the limit;

  • Car
  • Home (is home assistant itself maybe? :slight_smile: )
  • Water filter
  • Water pump
  • Computer

Sorry for hijacking, just wanted to dump my brain


Thanks for the links!

Not quite sure i follow, grouping behaviour and state into entities makes sense to me in many cases, given that they represent systems common enough and not niche products. There is already an entity for botvacs for example.

Climate entity is nice but the code looks like it’s aimed towards heating/cooling more than Ventilation.

Fan looks a little basic.

My current approach is a bunch if interconnected switches and and something a bit more coherent would be nice.