Custom Lovelace card that renders rooms on floors with current/target temperature, heating state, and an optional top labels strip. Built to complement home assistant's climate entities.
- Each room can show a climate or temperature entity
- When the heating is on for any room, rooms on the same circuit will also show heating (unless climate entity is off). E.g. you have a room that has a temperature sensor, a radiator, but not smart heating.
- You can set a room to have no heating source if you just want to show the temperature (like attic).
- You can add rooms to different heating circuits.
- Rooms are spread over floors, and show up in the UI as such.
- Rooms are organised on floors by circuits, then by the order you add in the config.
Search for "Home Climate Card" in HACS. Otherwise:
- Goto HACS (if you dont have that installed, install HACS)
- Add a custom repository
- Add the URL to this repo:
https://github.com/pacemaker82/Home-Climate-Cardusing the categoryDashboard(used to beLovelacepre HACS 2.0.0) - Go back to HACS and search for "home climate card" in the HACS store
- Download and refresh
- Goto dashboard, edit dashboard, select 'add card' button, and add the new custom Home Climate Card. Use the configuration below to setup.
type: custom:home-climate-card
entities:
- entity: climate.living_room
floor: 1
circuit: 1
name: Living Room
- entity: climate.bedroom
floor: 2
circuit: 2
name: Bedroomentities(required): list of room entries (see below).labels: list of label entries for the top strip (optional).primary_accent_color: Override the default card color (HEX, RGB etc)
entities:
- entity: climate.living_room
floor: 1
circuit: 1
name: Living Room
no_heat_source: false
is_heating_entity: binary_sensor.living_room_heat_call
color: redentity(required): climate or temperature entity that represents "a room".floor: Which floor is the entity on. Default1for ground.circuit: Default1. If you have heating on different circuits make sure to set this appropriately.name: Label override for the room. Falls back to entity friendly name.no_heat_source: iftrue, suppresses heating visuals for this room.is_heating_entity: optional binary_sensor used to detect heating when not using a climate sensor.color: Override the specific room color (HEX, RGB etc)valve_entity: Entity to represent the % open a TRV valve is for the room. Shows when room is heating.
By default, a floor of "1" is set on entity's that don't configure it. This means all rooms will render on the same floor (row) in the UI. Setting a floor number will render the room in different rows in the UI, lowest to highest. This allows you to create a visual representation of your rooms on floors from basement to attic and anything in between. There is no limit on floors.
Heating is not always on the same circuit, a good example can be underfloor heating in a certain room/s. The card lets you add climate and temperature entities on the same circuit to further group heating entities together. This allows you to see if rooms are heating that dont have a climate entity, because that circuit is being heated elsewhere.
E.g. Room 1 has smart TRV with climate entity, Room 2 has radiator with simple temperature sensor. If both are on the same circuit, Room 2 will show as "heating" if Room 1 climate entity triggers the heating.
To override this functionality, either set the room to a random circuit number e.g. 999 or set no_heat_source: true on the entity.
Each room will display an up or down chevron icon momentarily when the room temperature increases or decreases from the previous value. This is to help you identify room temperature changes.
Each room temperature label will change color to identify that its within 0.3C/0.5F of the target temperature, allowing you to see if the heating will turn on or off soon for that room.
Each label renders an icon + name + state + optional secondary line. You can show a max of 6 labels (1-3 on the top row, 4-6 on a second row after the rooms).
labels:
- entity: binary_sensor.heating_on_off
icon: mdi:radiator
name: Heating
secondary: last_updated
color: "#FFFFFF"
- entity: sensor.outside_temperature
icon: mdi:weather-partly-cloudy
name: Outside
color: "rgb(100,100,100)"
- entity: binary_sensor.hot_water_on_off
icon: mdi:water-boiler
name: Hot Water
secondary: sensor.hot_water_on_minutes
secondary_name: Total Timeentity(required): entity to display.icon: icon override (defaults to entity icon when available).name: label title (defaults to entity friendly name).secondary:last_updatedor another entity id.secondary_name: prefix text for the secondary line (e.g.,Total Time).color: Override the specific label color (HEX, RGB etc)
Notes:
- Numeric values are shown with up to 2 decimals (trailing zeros trimmed).
- The icon color changes to
var(--state-climate-heat-color)when the entity state ison. - Label layout:
- 1 label: full-width center.
- 2 labels: left and right slots.
- 3 labels: left, center, right.
- 4-6 labels: first row (1-3), rooms/floors, second row (4-6).
type: custom:home-climate-card
primary_accent_color: "#FF0000"
labels:
- entity: binary_sensor.heating_on_off
icon: mdi:radiator
name: Heating
secondary: last_updated
secondary_name: Last Change
color: blue
- entity: sensor.oil_tank_volume_percentage
icon: mdi:barrel
name: Heating Oil
secondary: sensor.tempest_temperature
secondary_name: Outside
- entity: binary_sensor.hot_water_on_off
icon: mdi:water-boiler
name: Hot Water
secondary: sensor.hot_water_on_minutes
secondary_name: Total Time
entities:
- entity: climate.entrance_hall_better_thermostat
floor: 0
name: Entrance Hall
color: yellow
- entity: climate.kitchen_thermostat
floor: 0
name: Kitchen
circuit: 2
- entity: climate.living_room_better_thermostat
floor: 0
name: Living
- entity: climate.snug_better_thermostat
floor: 0
name: Snug
- entity: sensor.toilet_h_t_temperature
floor: 0
name: Toilet
- entity: climate.master_bedroom_better_thermostat
floor: 1
name: Master
- entity: sensor.en_suite_h_t_temperature
floor: 1
name: Master Bath
- entity: climate.joe_better_thermostat
floor: 1
name: Joe
- entity: sensor.joe_bath_h_t_temperature
floor: 1
name: Joe Bath
- entity: climate.daisy_better_thermostat
floor: 1
name: Daisy
- entity: climate.office_better_thermostat
floor: 1
name: Office