A custom Home Assistant Lovelace card for visualizing Heat Recovery Ventilation (HRV) systems with dynamic temperature flow gradients.
- 🌡️ Real-time HRV temperature visualization - Displays outdoor, supply, extract, and exhaust temperatures
- 🎨 Dynamic color gradients - Cold-to-warm flow mapping with smooth color transitions
- 🏠 Native Home Assistant integration - Seamless card integration with HA themes
- 📱 Responsive SVG-based visualization - Scales beautifully on all devices
- ⚡ Lightweight and fast - Built with Lit for optimal performance
- 🔧 Customizable sensor display - Show additional sensors with status indicators
- Open HACS → Frontend
- Click ⋮ → Custom repositories
- Add this repository:
https://github.com/CodedCactus/hrv-card - Select category: Lovelace
- Install HRV Card
- Restart Home Assistant
-
Download
hrv-card.jsfrom the latest release -
Copy it to your Home Assistant's www directory:
/config/www/hrv-card.js -
Add the resource to your Home Assistant configuration:
resources: - url: /local/hrv-card.js type: module
-
Restart Home Assistant
- Go to your dashboard in edit mode
- Click Add Card
- Search for and select HRV Card
- Configure the required temperature sensors
- Add optional sensors for additional status display
type: custom:hrv-card
title: HRV System
outdoor_temp: sensor.outdoor_temperature
supply_temp: sensor.hrv_supply_temperature
extract_temp: sensor.hrv_extract_temperature
exhaust_temp: sensor.hrv_exhaust_temperature
supply_flow: sensor.hrv_supply_flow
exhaust_flow: sensor.hrv_exhaust_flow
sensors:
- entity: binary_sensor.hrv_bypass
label: Bypass
- entity: binary_sensor.hrv_pre_heater_status
label: Heater
- entity: sensor.hrv_exhaust_flow_rate
label: Flow
unit: m³/h
- entity: sensor.hrv_exhaust_fan_duty_cycle
label: Duty
unit: "%"| Option | Required | Type | Description |
|---|---|---|---|
title |
No | string | Card title (defaults to "HRV System") |
outdoor_temp |
Yes | string | Entity ID for outdoor temperature sensor |
supply_temp |
Yes | string | Entity ID for supply air temperature sensor |
extract_temp |
Yes | string | Entity ID for extract air temperature sensor |
exhaust_temp |
Yes | string | Entity ID for exhaust air temperature sensor |
supply_flow |
No | string | Entity ID for supply air flow sensor |
exhaust_flow |
No | string | Entity ID for exhaust air flow sensor |
sensors |
No | array | Array of additional sensors to display |
Each sensor in the sensors array supports:
| Option | Required | Type | Description |
|---|---|---|---|
entity |
Yes | string | Entity ID of the sensor |
label |
No | string | Display label (defaults to entity name) |
format |
No | string | Display format: "binary" or "text" (auto-detected) |
unit |
No | string | Unit to display (auto-detected from entity) |
- Node.js (v16 or higher)
- npm or yarn
# Clone the repository
git clone https://github.com/CodedCactus/hrv-card.git
cd hrv-card
# Install dependencies
npm install# Start development server
npm run dev
# Build for production
npm run build
# Build and watch for changes
npm run build:watch
# Preview production build
npm run preview
# Type checking
npm run typecheckThis project is licensed under the MIT License - see the LICENSE file for details.
