Climate Air Cards
Cards for air purifiers, fans, air conditioners and thermostats, with an overview of every device.
One card per kind of device, each with a mini card, and an overview of the whole home. Add a card and it finds the device and its sensors by itself; the illustrations come alive while a device runs.
Highlights
- Air purifier, fan, air conditioner and thermostat cards, each with a mini card
- Thermostats, radiators and radiator valves: target, presets, mode, valve, open window and battery
- Overview of every device, grouped by kind or by area
- Animated illustrations: turning blades, air flowing, swinging head
- Automatic discovery of devices and their sensors
- Heat / cool range of air conditioners on the overview
- Horizontal swing for the air conditioners that support it
- Target humidity slider for the air conditioners that support it
- Sliders showing their fill and value while they move
- Chips opening the more-info dialog of their entity
Works with
Cards
type: custom:climate-air-overview-cardInstall
- 1Open the repository in the Marketplace with the Add to Marketplace button above, or add
github.com/juju35/ha-climate-air-cardas a custom repository (category Dashboard). - 2Download it from the Marketplace.
- 3Reload the browser and add the card from the dashboard editor.
Gallery 34
Documentation
From the README Features
Features
Overview#
custom:climate-air-overview-card — Every air conditioner, air purifier and fan at a glance.
- Automatic discovery: every
climateentity that can cool, dry or only blow (a heat-only thermostat is left out: ha-heating-card shows those), and everyfanentity, sorted into air purifiers (from their name, or a PM2.5, air quality or filter sensor on the device) and fans - One compact tile per device with its illustration, animated while it runs like on the device cards (turning blades and rotor, air flowing out, swinging head or flap), coloured by its state: the mode colour of an air conditioner, the air quality of a purifier, blue for a fan
- The state on each tile: Cool · 22 °C, PM2.5 6 · Good air, 45 % · Natural wind, or Off (with the room temperature for an air conditioner); a chip flags a filter to replace or to clean (a click on it opens that entity's more-info); an air conditioner with a low / high range shows it (Heat/Cool · 20–24 °C)
- Grouped by kind of device, by area, or not at all (
group_by) - Tap the icon of a tile to turn the device on or off; tap the tile to unfold its full card at the top of the overview, tap it again or anywhere else to fold it back
- Only the devices that are on or need attention show; the detail button (top right) shows every device, and back, as does a click anywhere else.
show_all: truestarts on every device instead, the button then keeping only the devices on or needing attention (zoom: false: every device, always, no button) - Header with how many devices are on and how many filters need care
- The illustration of every device of a kind or of each device (
illustrations, guessed from the device model otherwise), or an icon instead (icons); a name and a type per device (devices); the header icon (icon). In the visual editor, the Device types and Devices sections set all of them, without YAML
Air purifier#
custom:climate-air-purifier-card — An air purifier (fan entity) and the sensors of its device.
- The PM2.5 density (or the air quality index) in large, with its level: Good air, Moderate air, Poor air, Very poor air; the card takes the colour of the air quality
- Animated illustration while it runs: the fan turns (faster with the speed), clean air rises and dust is drawn into the intake; the display ring and the floor light take the air quality colour. Four shapes: a tower (a tall box whose display shows the PM2.5), a round purifier, a square box and a Dyson-style bladeless loop, picked from the device model or set with
illustration - Filter life bar (with its hours of use on hover) and a Replace the filter alert at 10 % or less
- Presets as segmented buttons (Auto, Sleep, Favorite…), or the device's mode select when it has no presets (HomeKit purifiers); speed slider; favorite level in the Favorite preset
- Temperature, humidity, PM10 and, when the device reports them, VOC and NO₂ chips (Dyson); child lock, sound and indicator light toggles
Fan#
custom:climate-air-fan-card — A fan (fan entity) and the controls of its device.
- The speed in large, with the preset; speed slider and presets (natural wind, straight wind…)
- Animated illustration while it runs: the blades turn faster with the speed, the head swings while oscillating, and the breeze comes in gusts in a natural wind preset
- Oscillation, ionizer, child lock, sound and indicator light toggles; oscillation angle, timer and display brightness; turn left / turn right buttons
- Temperature and humidity chips when the fan measures them
Air conditioner#
custom:climate-air-aircon-card — An air conditioner (climate entity) and the sensors of its device.
- The room temperature in large and the target next to it; modes as segmented buttons (only the selected one keeps its label when there are many); − / + buttons for the target, sent once the taps stop and kept on screen until the device reports it. In Heat/Cool or Auto with a low / high range (
target_temp_low/target_temp_high), both ends show with their own − / + (Heat to, Cool to); the mini card shows the range and leaves its buttons to the full card - A Target humidity slider when the entity supports it (
climate.set_humidity, withinmin_humidity/max_humidity) - Fan mode, swing mode, horizontal swing mode (when the entity supports it,
climate.set_swing_horizontal_mode) and preset; the device's other switches (eco, display, self clean, sound…) as option toggles - Animated illustration while it runs: the air flows out in the mode colour, with snowflakes when cooling, shimmer when heating and droplets when drying; the flap swings with the vertical swing and the airflow sways with the horizontal one; the status light breathes while the compressor runs. Three shapes: a wall split unit, a portable unit with its exhaust hose and a window split (indoor unit, outdoor unit hung outside the window, whose fan turns with the compressor), picked from the device model or set with
illustration - Outdoor temperature, humidity and power draw chips; a Clean the filter alert from the device's dust sensor
Mini cards#
custom:climate-air-purifier-mini-card, custom:climate-air-fan-mini-card, custom:climate-air-aircon-mini-card — The device on two lines, for a compact dashboard.
- The illustration (animated too), the key reading (PM2.5, speed, temperatures) and round buttons: power, plus the preset (purifier), the oscillation (fan) or − / + for the target (air conditioner)
- The detail button (top right) unfolds the full card, and back, as does a click anywhere else (
zoom: falseremoves it)
Supported integrations
Supported integrations
The cards work with any integration that provides air purifiers and fans as fan entities and air conditioners as climate entities (Xiaomi Home, Xiaomi Miio, HomeKit Device, Matter, Midea, Dyson…). Some get a specific treatment:
| Integration | What the cards add |
|---|---|
| The mode select as presets when the purifier has none; an air quality index on the HomeKit 1–5 scale | |
| VOC and NO₂ chips, the HEPA filter life, and a bladeless loop illustration |
The sensors of the device (PM2.5, temperature, humidity, filter, child lock…) are discovered from its registry, whatever the integration.
Prerequisites
Prerequisites
- Home Assistant 2024.8 or later
- Air purifiers and fans as
fanentities, air conditioners asclimateentities, from any integration (Xiaomi Home, Xiaomi Miio, HomeKit Device, Matter, Midea, Dyson…)
Configuration
Configuration
Common options#
The purifier, fan and air conditioner cards, and their mini cards, share these options.
| Option | Required | Default | Description |
|---|---|---|---|
entity |
❌ | First found | The fan or climate entity of the device; without it, the card takes the first device of its kind |
name |
❌ | Device name | Card title |
show_title |
❌ | true |
Show the title in the header (e.g. false under a section heading of your own) |
show_subtitle |
❌ | true |
Show the subtitle under the title |
icon |
❌ | Illustration | Replaces the illustration with an icon |
illustration |
❌ | auto |
Purifier: tower, cylinder, box or dyson (bladeless loop); air conditioner: split, portable or window. auto picks one from the device model and name |
show_controls |
❌ | true |
Show the controls (presets, speed, modes, options) |
show_sensors |
❌ | true |
Show the measurement chips (temperature, humidity, PM10, outdoor temperature, power) |
show_alerts |
❌ | true |
Purifier and air conditioner cards only: show the filter alerts (the fan cards have none) |
zoom |
❌ | true |
Mini cards only: detail button at the top right that unfolds the full card (a click elsewhere folds it back) |
language |
❌ | Auto | Force language: en, fr, de, es, sr, sr-Latn, it, nl, pt, pl, ro, da, sv, bg, ru, uk, hu, sk, cs, sl, lv or el (auto-detects from HA settings; pt-BR gets European Portuguese); also on the Overview card |
entities |
❌ | Auto | Override the sensors and controls found on the device (see Entity overrides) |
Overview#
Minimal:
type: custom:climate-air-overview-card
Full options:
type: custom:climate-air-overview-card
title: Climate & air
icon: mdi:home-thermometer
group_by: type
columns: 2
zoom: true
show_all: false
exclude:
- fan.garage_fan
include:
- fan.attic_fan
illustrations:
aircon: window
fan.bedroom_air: box
icons:
fan.garage_fan: mdi:ceiling-fan
devices:
- entity: fan.bedroom_air
name: Bedroom
type: purifier
| Option | Required | Default | Description |
|---|---|---|---|
title |
❌ | Climate & air | Card title |
show_title |
❌ | true |
Show the title in the header (e.g. false under a section heading of your own) |
icon |
❌ | mdi:air-filter |
Header icon |
illustrations |
❌ | Auto | Tile illustrations, by kind of device (aircon, purifier) and by entity ID, the device's own winning: purifier tower, cylinder, box or dyson; air conditioner split, portable or window. Unset or auto: guessed from the device model and name. The unfolded card uses the same one. In the visual editor's Device types and Devices sections |
icons |
❌ | — | An icon instead of the illustration, by kind of device (aircon, purifier, fan) or by entity ID; it moves with the device state (turning fan, mode icon of an air conditioner). In the visual editor's Device types and Devices sections |
group_by |
❌ | type |
type (air conditioners, air purifiers, fans), area or none. With area, the heading shows the area's icon and name, and each tile is labelled by its kind of device (Air purifier, Air conditioner…) instead of repeating the room — a name set in devices still wins |
columns |
❌ | 2 |
Number of tile columns (1 on narrow cards unless set) |
zoom |
❌ | true |
Only the devices on or needing attention show, and a detail button shows them all; false: every device, always |
show_all |
❌ | false |
Every device shows at first, and the detail button keeps only the ones on or needing attention (a click elsewhere brings every device back). In the visual editor: Show every device |
show_alerts |
❌ | true |
Filter alerts on the purifier and air conditioner tiles (a device needing attention shows even when off, with zoom); false: none |
exclude |
❌ | — | Devices left out |
include |
❌ | — | climate or fan entities the card would not pick on its own (a hidden entity); a heat-only thermostat stays out unless devices gives it a type |
devices |
❌ | — | Per-device overrides: {entity, name, icon, illustration, type}, with type one of aircon, purifier, fan (they win over icons and illustrations) |
Air purifier#
type: custom:climate-air-purifier-card
entity: fan.living_room_purifier
illustration: cylinder
Fan#
type: custom:climate-air-fan-card
entity: fan.bedroom_fan
Air conditioner#
type: custom:climate-air-aircon-card
entity: climate.air_conditioner
illustration: window
Coming from 1.x: thermostats#
The thermostat card moved to ha-heating-card, where it lives on; 2.0.0 removes it from this repository, and the Overview no longer shows thermostats. Install ha-heating-card, then replace the card types (every option keeps its name and meaning: entity, name, icon, illustration, entities, show_title, show_subtitle, show_controls, show_sensors, show_alerts, zoom, language):
| Before (1.x) | Now (ha-heating-card) |
|---|---|
custom:climate-air-thermostat-card |
custom:heating-card |
custom:climate-air-thermostat-mini-card |
custom:heating-mini-card |
type: custom:heating-card
entity: climate.bedroom_radiator
illustration: valve
On the Overview, drop thermostat from illustrations, icons and devices (type: thermostat): it no longer means anything.
Entity overrides#
The cards find the other entities of the device by their registry translation key, their entity ID (English, French, German or Spanish) or their device class. Set one under entities when the card picks the wrong one or misses it:
| Key | Domain | Card | Used for |
|---|---|---|---|
pm25 / pm10 |
sensor |
Purifier | Particle density, air quality colour |
voc / no2 |
sensor |
Purifier | Volatile organic compounds and nitrogen dioxide index (Dyson) |
aqi |
sensor |
Purifier | Air quality index, when there is no PM2.5 sensor. A value of 5 or less is read on the HomeKit 1–5 scale, above that as a US AQI |
filter / filter_hours |
sensor |
Purifier | Filter life (%) and hours of use. Dyson's HEPA (or combined) filter is used, not its carbon one |
status |
sensor |
Purifier | State shown while on (Purifying, Idle…) |
mode |
select |
Purifier | Mode buttons, when the fan entity has no presets |
favorite |
number |
Purifier | Favorite level |
temperature / humidity |
sensor |
Purifier, fan, air conditioner (humidity) | Measurement chips |
angle |
number / select |
Fan | Oscillation angle |
timer |
number |
Fan | Timer |
rotate_left / rotate_right |
button |
Fan | Turn buttons |
brightness |
select |
Fan | Display brightness |
anion / child_lock / buzzer |
switch |
Purifier, fan | Option toggles |
light |
light |
Purifier, fan | Indicator light toggle |
indoor_temp / outdoor_temp |
sensor |
Air conditioner | Room temperature (when the climate entity has none) and outdoor chip |
power |
sensor |
Air conditioner | Power draw chip |
compressor |
sensor |
Air conditioner | Compressor frequency: the status light breathes while it runs |
filter_alert |
binary_sensor |
Air conditioner | Clean the filter alert |
entities:
pm25: sensor.living_room_pm2_5
filter: sensor.living_room_purifier_filter_life
Changelog
All 38 versions 2.0.1Nov 13, 2026Latest
Fixes
- Folding back on a tap elsewhere now works on iOS (Safari and the companion app): a tap on something that is not clickable sent no click to the page, so the detailed view of the mini cards and the overview's open device and full list stayed open. The press and the release are caught instead; a slider dragged out of the card and a scroll do not fold anything.
- Leaving the card (another dashboard view, a conditional card hidden) brings it back in its default state: mini cards compact, the overview back to the devices that are on.
2.0.0Nov 13, 2026
⚠ Breaking changes
- The thermostat card moved to ha-heating-card:
custom:climate-air-thermostat-cardandcustom:climate-air-thermostat-mini-cardare removed. Install ha-heating-card and replace them withcustom:heating-cardandcustom:heating-mini-card; every option keeps its name and meaning (entity,name,icon,illustration,entities,show_title,show_subtitle,show_controls,show_sensors,show_alerts,zoom,language). See Coming from 1.x in the README. - Overview: thermostats are gone too. It shows air conditioners, air purifiers and fans only: a
climateentity is an air conditioner when it can cool, dry or only blow, and a heat-only one (heat, auto or heat/cool) is left out, even underinclude, unlessdevicesgives it atype. Thethermostatkind ofillustrations,iconsanddevicesno longer exists, nor do the Window open and Low battery tile alerts.
Changes
- Translations: the texts only the thermostat used are removed from every language.
- Screenshots: the Overview is rendered again without thermostats; the thermostat screenshots and animations are removed.
1.15.0Nov 12, 2026
Features
show_titleandshow_subtitleoptions (also in the visual editor) hide the header's title and its subtitle, separately, for a card placed under a section heading of its own (asked in juju35/ha-vehicle-card#72).
1.14.3Nov 9, 2026
Maintenance
- No code change: released again to check the installation from the Marketplace.
1.14.2Nov 9, 2026
Performance
- A role a device lacks (no filter sensor, no VOC sensor…) is remembered with the states it was worked out from, instead of the device being scanned again on every update of the home; it is looked up again as soon as one of the device's entities changes (back from unavailable, say). The overview with hundreds of devices spends about 40 % less time per update; a home with a few devices sees no difference.
1.14.1Nov 9, 2026
Fixes
- Translations: the cards are defined once the page's language file has arrived (at most 1.5 s; Home Assistant builds a card when its element gets defined), so the first render is already translated instead of English then redrawn; until a language file is in, a missing text reads the English one wherever the card has no fallback of its own.