Skip to content

Releases: homeassistant-extras/device-card

0.19.0 - Device Sorting & Heading Entity Icon 📋🎯

14 Mar 22:55

Choose a tag to compare

📋 Device Sorting for Integration Card

You can now sort devices in the Integration card by name, in ascending or descending order. This helps keep devices in a consistent order (e.g. alphabetically by name)

type: custom:integration-card
integration: overkiz
sort_devices:
  type: name
  direction: asc

Options: type is name; direction can be asc or desc (default: asc).

🖼️ Heading Icon

When you configure entity_id on the device card, the entity's icon now appears next to the heading. The icon reflects the entity's current state (e.g., a thermostat shows its mode, a sensor shows its device class icon).

icon

You can also set a custom icon in the config (or via the visual editor's icon picker) to override the entity icon or display an icon when no entity is configured.

type: custom:device-card
device_id: YOUR_DEVICE_ID
entity_id: sensor.living_room_temperature
icon: mdi:thermometer # Optional: override or use without entity_id

Not a fan of the heading icon? Add hide_icon to your features to hide it:

type: custom:device-card
device_id: YOUR_DEVICE_ID
features:
  - hide_icon

What's Changed

Full Changelog: 0.18.0...0.19.0

0.18.0 - Show Hidden Entities and more-info tap fix 🔍✨

08 Mar 17:57

Choose a tag to compare

🔍 Show Hidden Entities

Added show_hidden_entities feature flag to display entities marked as hidden.

type: custom:device-card
device_id: your_device_id
features:
  - show_hidden_entities

🐞More-info and action fixes

Fixes a bug in recent HA versions where the more-info dialog closes immediately after opening.

  • Also fixes hold triggering tap (expand) and duplicate taps with tap_action: more-info.
  • Actions now delegated to HA's event handler in 2026.3
  • Bit of a big refactor.. let me know if anything breaks <3

What's Changed

  • Show Hidden Entities and more-info tap fix 🔍✨ by @warmfire540 in #48

Full Changelog: 0.17.0...0.18.0

0.17.0 - Hidden Entity Filtering, Renamed Device Support, Jinja Templates, auto-entities & new documentation 👖🪜

14 Feb 19:49

Choose a tag to compare

Documentation moved to GitHub Pages 📚

Full documentation is now hosted at homeassistant-extras.github.io/device-card. The README has been slimmed down with quick start and installation—see the docs for configuration, examples, and troubleshooting.

🔗 Auto-Entities Support

Added entity config property as a convenience for use with the auto-entities card. When auto-entities generates device cards, it passes entity—the card now accepts this and resolves the device automatically. Combine auto-entities filtering with device-card zoom for filtered device dashboards.

type: custom:auto-entities
card:
  type: grid
card_param: cards
filter:
  include:
    - domain: sensor
      attributes:
        device_class: temperature
  options:
    type: custom:device-card

✨ Integration Card Jinja Template Support

Both include_devices and exclude_devices can be a list or a jinja template. Values can be device IDs or names, with or without wildcards and regex. You can dynamically filter devices based on entity states, attributes, or any other template expression that returns a list.

include_devices – show only matching devices:

type: custom:integration-card
integration: zwave_js
include_devices: |
  {{ expand(integration_entities('zwave_js'))
    | selectattr('state', 'in', ['dead'])
    | map(attribute='entity_id')
    | map('device_attr', 'id')
    | reject('match', 'None')
    | unique
    | list
    | sort
  }}

exclude_devices – hide matching devices:

type: custom:integration-card
integration: zwave_js
exclude_devices: |
  {{ expand(integration_entities('zwave_js'))
    | selectattr('state', 'in', ['dead', 'unknown'])
    | map(attribute='entity_id')
    | map('device_attr', 'id')
    | reject('match', 'None')
    | unique
    | list
  }}

The card automatically updates when entities referenced in the template change.

🔍 Hidden Entity Filtering

Hidden entities are now automatically filtered out from device cards, matching the default behavior

🏷️ Renamed Device Support

Device cards now properly display user-renamed device names (name_by_user) instead of the default device name. include_devices and exclude_devices also match against the user-defined name.

User Contribution! Thanks @l00k

⚡ Integration Card Render Optimization

Hass updates no longer re-render every device card in the integration card. Device cards now receive updates via events and handle them themselves—only re-rendering when their device data actually changes.


What's Changed

  • Properly handle renamed devices by @l00k in #42
  • Hidden Entity Filtering, Renamed Device Support, auto-entities & new documentation 👖🪜 by @warmfire540 in #44

New Contributors

  • @l00k made their first contribution in #42

Full Changelog: 0.16.0...0.17.0

0.16.0 - Configure inverse percent entities + device names removed from entities once again! 🥼 🏷️

04 Jan 18:40

Choose a tag to compare

🎉 Happy New Year! 🎉
"The best way to get a project done faster is to start sooner." - Jim Highsmith

Bug Fix: Entity Name Display

What's Fixed

Entity names now correctly display using their friendly name without the device name prefix. This ensures cleaner, more readable entity labels in the card display, matching the expected behavior where entity names should be distinct from device names.

New Feature: Inverse Percent Colors

What's New

Added support for inverting percent bar colors for specific entities. This is particularly useful for metrics where low values are good and high values are bad, such as disk usage or memory usage.

How It Works

When you configure inverse_percent with a list of entity IDs, those entities will display:

  • Green for low percentages (≤30%)
  • Yellow for medium percentages (31-60%)
  • Red for high percentages (>60%)

This is the opposite of the default behavior, where green indicates high values and red indicates low values.

Configuration

Add inverse_percent to your card configuration in the Features section of the editor, or via YAML:

type: custom:device-card
device_id: your_device_id
inverse_percent:
  - sensor.disk_usage_home
  - sensor.disk_usage_root
  - sensor.memory_usage_percent

Example Use Cases

  • Disk usage: Low disk usage is good (green), high usage is bad (red)
  • Memory usage: Low memory usage is good (green), high usage is bad (red)
  • Error rates: Low error rates are good (green), high rates are bad (red)

What's Changed

  • Added Russian translation by @Virenbar in #32
  • More percent entities show graph bar 🎭 🪫 by @warmfire540 in #36
  • Configure inverse percent entities + device names removed from entities once again! 🥼 🏷️ by @warmfire540 in #37

New Contributors

Full Changelog: 0.15.0...0.16.0

0.15.0 - Refactored card to fix certain issues on mobile and when clicking. Also French & Portuguese translations! 🇵🇹 🇫🇷

14 Sep 03:08

Choose a tag to compare

Fix: Prevent Double Action Triggers on Entity Rows

Fixed an issue where clicking on number entities or select dropdown entities would trigger both the entity's built-in action and the card's tap action simultaneously.

What Changed

  • Updated entity row rendering to use Home Assistant's createRowElement instead of the deprecated state-card-content
  • Disabled built-in tap, hold, and double-tap actions on entity rows to prevent conflicts with the card's action handling
  • The card now properly handles all entity interactions through its own action system

Impact

  • Number entities and select dropdowns now work correctly without triggering unintended actions on mobile
  • Maintains all existing card functionality while fixing the double-action bug
  • Improves user experience by providing consistent interaction behavior across all entity types

Languages

Added support for

  • Portuguese
  • French

This resolves a long-standing issue where certain entity types would cause unexpected behavior due to conflicting action handlers. Thank you all for being patient.. I tried to fix it in HAS itself but the devs told me to refactor this card instead :D


What's Changed

  • Refactored card to fix certain issues on mobile and when clicking. Also French & Portuguese translations! 🇵🇹 🇫🇷 by @warmfire540 in #31

Full Changelog: 0.14.0...0.15.0

0.14.0 - Easy Config with Entity ID + New Hide State Feature + Fixes 🚂 🧖

13 Jul 04:35

Choose a tag to compare

🎉 New Features

Entity ID Support

  • Alternative to device_id: You can now use entity_id instead of device_id - the card will automatically determine the device for you! No more hunting for device IDs.
  • Hide entity state: New hide_entity_state feature flag to hide the entity state display in the card header
# Now you can do this instead of finding device_id!
type: custom:device-card
entity_id: sensor.living_room_temperature

Hide Entity State Feature

  • Clean header option: Use the hide_entity_state feature to hide entity state display in the card header for a cleaner look
# Hide the entity state display in header
type: custom:device-card
entity_id: sensor.battery_level
features:
  - hide_entity_state

🔧 Improvements

  • Case insensitive wildcards: Wildcard matching is now case insensitive for better flexibility
  • Covers as controls: Cover entities are now properly categorized as controls alongside other interactive elements

🙏 Thanks

  • @potat0man for the entity_id feature - making device cards much easier to configure!
  • @PedroKTFC pointing out issues to improve card !

For full documentation and examples, check out the README


What's Changed

  • Easy Config with Entity ID + New Hide State Feature + Fixes 🚂 🧖 by @warmfire540 in #27

Full Changelog: 0.13.5...0.14.0

0.13.0 - Pinned State, Device Card Collapse, Sort Entities, Hide Titles, and Buggers 🪅 🏓 🦖

03 May 21:51

Choose a tag to compare

Full Changelog: 0.12.5...0.13.0

0.12.0 - Add include_options feature and better styling on mobile / small screens! ✅ 🔍

02 May 02:25

Choose a tag to compare

Full Changelog: 0.11.1...0.12.0

0.11.0 - 🐛🔨 Fix for expanding sections and entities! 🪲 🔨

01 May 19:05

Choose a tag to compare

Full Changelog: 0.10.2...0.11.0

0.10.0 - Regex and Wildcard matching for exclusion filters 🧇 🍳 🥓

29 Apr 03:03

Choose a tag to compare

Full Changelog: 0.9.1...0.10.0