---
title: "Badges"
description: "Description of the various badges that are available."
---
Badges are widgets that sit at the top of a panel, above all the cards.
Badges at the top of a panel.
## Adding a badge to your dashboard
1. Go to {% my lovelace_dashboards title="**Settings** > **Dashboards**" %}.
2. If you have multiple [views](/dashboards/views/), open the view to which you want to add a badge.
3. In the top right of the screen, select the edit {% icon "mdi:edit" %} button.
4. To add a badge, select the plus {% icon "mdi:plus" %}button.

5. Select the entity for which you want to display a badge.
6. Configure your badge.
- The available options depend on the entity.
- Add the states you want to see.
- If you want, add a **Name**.

7. Under **Interactions**, you can define the tap behavior.
8. If you want this badge to be visible only to specific users or under a certain condition, open the **Visibility** tab to [define those conditions](/dashboards/cards/#showing-or-hiding-a-card-or-badge-conditionally).
- The [available conditions](/dashboards/conditional/#conditions-options) are the same as the ones for the conditional card.
9. Select **Save**.
Adding a badge to a dashboard.
## Entity badge
The Entity badge allows you to display the state of an entity on a badge. This badge supports [actions](/dashboards/actions/).
```yaml
type: entity
entity: light.living_room
```
{% configuration entity %}
type:
required: true
description: "`entity`"
type: string
entity:
required: true
description: Entity ID.
type: string
name:
required: false
description: Overwrites the entity name.
type: string
icon:
required: false
description: Overwrites the entity icon.
type: string
color:
required: false
description: Set the color when the entity is active. By default, the color is based on `state`, `domain`, and `device_class` of your entity. It accepts [color token](/dashboards/tile/#available-colors) or hex color code.
type: string
default: state
show_entity_picture:
required: false
description: If your entity has a picture, it will replace the icon.
type: boolean
default: false
show_name:
required: false
description: Show the name
type: boolean
default: "false"
show_icon:
required: false
description: Show the icon
type: boolean
default: "true"
show_state:
required: false
description: Show the state.
type: boolean
default: "true"
state_content:
required: false
description: >
Content to display for the state. Can be `state`, `last_changed`, `last_updated`, or any attribute of the entity. Can be either a string with a single item, or a list of string items. Default depends on the entity domain.
type: [string, list]
tap_action:
required: false
description: Action taken on card tap. See [action documentation](/dashboards/actions/#tap-action). By default, it will show the "more-info" dialog.
type: map
hold_action:
required: false
description: Action taken on tap-and-hold. See [action documentation](/dashboards/actions/#hold-action).
type: map
double_tap_action:
required: false
description: Action taken on double tap. See [action documentation](/dashboards/actions/#double-tap-action).
type: map
{% endconfiguration %}
## Entity Filter Badge
This badge allows you to define a list of entities that you want to track only when in a certain state. Very useful for showing lights that you forgot to turn off or show a list of people only when they're at home.
{% configuration filter_badge %}
type:
required: true
description: "`entity-filter`"
type: string
entities:
required: true
description: A list of entity IDs or `entity` objects, see below.
type: list
conditions:
required: false
description: List of conditions to check. See [available conditions](#conditions-options).*
type: list
state_filter:
required: false
description: (legacy) List of strings representing states or filters to check. See [available legacy filters](#legacy-state-filters).*
type: list
{% endconfiguration %}
*one is required (`conditions` or `state_filter`)
### Options for entities
If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configurations:
{% configuration entities %}
type:
required: false
description: "Sets a custom badge type: `custom:my-custom-badge`"
type: string
entity:
required: true
description: Entity ID.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
icon:
required: false
description: Overwrites icon or entity picture. You can use any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
conditions:
required: false
description: List of conditions to check. See [available conditions](#conditions-options).*
type: list
state_filter:
required: false
description: (legacy) List of strings representing states or filters to check. See [available legacy filters](#legacy-state-filters).*
type: list
{% endconfiguration %}
*only one filter will be applied: `conditions` or `state_filter` if `conditions` is not present
You may also add any additional configuration options to an entity which are supported by the chosen badge type (`Entity` badge type if no type is chosen).
## Conditions options
You can specify multiple `conditions`, in which case the entity will be displayed if it matches all conditions.
### State
Tests if an entity has a specified state.
```yaml
type: entity-filter
entities:
- climate.thermostat_living_room
- climate.thermostat_bed_room
conditions:
- condition: state
state: heat
```
```yaml
type: entity-filter
entities:
- climate.thermostat_living_room
- climate.thermostat_bed_room
conditions:
- condition: state
state_not: "off"
```
```yaml
type: entity-filter
entities:
- sensor.gas_station_1
- sensor.gas_station_2
- sensor.gas_station_3
conditions:
- condition: state
state: sensor.gas_station_lowest_price
```
{% configuration condition_state %}
condition:
required: true
description: "`state`"
type: string
state:
required: false
description: Entity state or ID to be equal to this value. Can contain an array of states.*
type: [list, string]
state_not:
required: false
description: Entity state or ID to not be equal to this value. Can contain an array of states.*
type: [list, string]
{% endconfiguration %}
*one is required (`state` or `state_not`)
### Numeric state
Tests if an entity state matches the thresholds.
```yaml
type: entity-filter
entities:
- sensor.outside_temperature
- sensor.living_room_temperature
- sensor.bed_room_temperature
conditions:
- condition: numeric_state
above: 10
below: 20
```
{% configuration condition_numeric_state %}
condition:
required: true
description: "`numeric_state`"
type: string
above:
required: false
description: Entity state or ID to be above this value.*
type: string
below:
required: false
description: Entity state or ID to be below this value.*
type: string
{% endconfiguration %}
*at least one is required (`above` or `below`), both are also possible for values between.
### Screen
Specify the visibility of the entity per screen size. Some screen size presets are available in the UI but you can use any CSS media query you want in YAML.
```yaml
type: entity-filter
entities:
- sensor.outside_temperature
- sensor.living_room_temperature
- sensor.bed_room_temperature
conditions:
- condition: screen
media_query: "(min-width: 1280px)"
```
{% configuration condition_screen %}
condition:
required: true
description: "`screen`"
type: string
media_query:
required: true
description: Media query to check which screen size are allowed to display the entity.
type: string
{% endconfiguration %}
### User
Specify the visibility of the entity per user.
```yaml
type: entity-filter
entities:
- sensor.outside_temperature
- sensor.living_room_temperature
- sensor.bed_room_temperature
conditions:
- condition: user
users:
- 581fca7fdc014b8b894519cc531f9a04
```
{% configuration condition_user %}
condition:
required: true
description: "`user`"
type: string
users:
required: true
description: User ID that can see the entity (unique hex value found on the Users configuration page).
type: list
{% endconfiguration %}
### And
Specify that both conditions must be met.
```yaml
type: entity-filter
entities:
- sensor.outside_temperature
- sensor.living_room_temperature
- sensor.bed_room_temperature
conditions:
- condition: and
conditions:
- condition: numeric_state
above: 0
- condition: user
users:
- 581fca7fdc014b8b894519cc531f9a04
```
{% configuration condition_and %}
condition:
required: true
description: "`and`"
type: string
conditions:
required: false
description: List of conditions to check. See [available conditions](#conditions-options).
type: list
{% endconfiguration %}
### Or
Specify that at least one of the conditions must be met.
```yaml
type: entity-filter
entities:
- sensor.outside_temperature
- sensor.living_room_temperature
- sensor.bed_room_temperature
conditions:
- condition: or
conditions:
- condition: numeric_state
above: 0
- condition: user
users:
- 581fca7fdc014b8b894519cc531f9a04
```
{% configuration condition_or %}
condition:
required: true
description: "`or`"
type: string
conditions:
required: false
description: List of conditions to check. See [available conditions](#conditions-options).
type: list
{% endconfiguration %}
## Legacy state filters
### String filter
Show only active switches or lights in the house.
```yaml
type: entity-filter
entities:
- entity: light.bed_light
name: Bed
- light.kitchen_lights
- light.ceiling_lights
state_filter:
- "on"
```
You can also specify multiple `state_filter` conditions, in which case the entity will be displayed if it matches any condition.
If you define `state_filter` as objects instead of strings, you can add more customization to your filter, as described below.
### Operator filter
Tests if an entity state correspond to the applied `operator`.
{% configuration condition_operator %}
value:
required: true
description: String representing the state.
type: string
operator:
required: true
description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=`, `in`, `not in`, or `regex`.
type: string
attribute:
required: false
description: Attribute of the entity to use instead of the state.
type: string
{% endconfiguration %}
#### Examples
Displays everyone who is at home or at work.
```yaml
type: entity-filter
entities:
- device_tracker.demo_paulus
- device_tracker.demo_anne_therese
- device_tracker.demo_home_boy
state_filter:
- operator: "=="
value: home
- operator: "=="
value: work
```
Specify filter for a single entity.
```yaml
type: entity-filter
state_filter:
- "on"
- operator: ">"
value: 90
entities:
- sensor.water_leak
- sensor.outside_temp
- entity: sensor.humidity_and_temp
state_filter:
- operator: ">"
value: 50
attribute: humidity
```
Use a regex filter against entity attributes. This regex filter below looks for expressions that are 1 digit in length and where the number is between 0-7 (so show holidays today or in the next 7 days) and displays those holidays as entities in the Entity Filter badge.
```yaml
type: entity-filter
state_filter:
- operator: regex
value: "^([0-7]{1})$"
attribute: eta
entities:
- entity: sensor.upcoming_ical_holidays_0
- entity: sensor.upcoming_ical_holidays_1
- entity: sensor.upcoming_ical_holidays_2
- entity: sensor.upcoming_ical_holidays_3
- entity: sensor.upcoming_ical_holidays_4
show_empty: false
```