
Actualizado el 03 de febrero de 2026
Si buscas transformar por completo la interfaz de usuario de Home Assistant, la Button Card es, sin duda, la herramienta definitiva que necesitas en 2026. Esta tarjeta personalizada te permite ir mucho más allá de los botones estándar, ofreciendo un nivel de personalización que puede dar una nueva vida a tus paneles Lovelace. En esta guía actualizada, te mostraré cómo exprimir al máximo sus capacidades para crear una interfaz no solo funcional, sino también estéticamente impresionante.
Características Clave de Button Card en 2026
La popularidad de Button Card no es casualidad. Su versatilidad se debe a un conjunto de características muy potentes que se han mantenido y mejorado a lo largo de los años:
- Compatibilidad Universal: Funciona con prácticamente cualquier entidad de Home Assistant, especialmente aquellas que tienen un estado conmutable (luces, interruptores, etc.).
- Múltiples Acciones: Permite configurar hasta 6 acciones distintas mediante toque, doble toque y mantener pulsado. Las acciones disponibles son
none,toggle,more-info,navigate,urlycall-service. - Personalización Visual Extrema: Ofrece control total sobre colores, iconos, tamaños y estilos CSS. El color puede ser fijo, automático (basado en el color de una luz) o dinámico según el estado de una entidad.
- Estados Dinámicos: Puedes definir diferentes iconos, colores y estilos para cada estado de una entidad (p. ej., un icono para ‘on’, otro para ‘off’, y otro para ‘unavailable’).
- Plantillas Javascript: Para una personalización avanzada, admite el uso de plantillas de Javascript en la mayoría de sus campos, permitiendo lógica condicional directamente en la configuración de la tarjeta.
- Diseños Flexibles (Layouts): Viene con múltiples diseños predefinidos para organizar el icono, el nombre y el estado, además de permitir la creación de diseños personalizados.
- Animaciones: Soporta animaciones nativas como parpadeo (blink) y rotación (spin), ideales para indicar estados activos o de alerta.
- Seguridad Integrada: Incluye opciones de confirmación antes de ejecutar una acción y un mecanismo de bloqueo para evitar pulsaciones accidentales en controles sensibles.
- Integración con la App Móvil: Soporte háptico para la aplicación complementaria de Home Assistant en iOS y Android.
Instalación Sencilla con HACS
En 2026, la forma más sencilla y recomendada de instalar y mantener actualizada la Button Card es a través de HACS (Home Assistant Community Store). Si aún no lo tienes instalado, te recomiendo seguir nuestra guía completa.
Una vez con HACS funcionando:
- Ve a HACS > Frontend.
- Haz clic en el botón azul «Explorar y descargar repositorios».
- Busca «Button Card» y selecciónala.
- Haz clic en «Descargar» y sigue las instrucciones para añadir el recurso a tu Lovelace.
Configuración de Button Card: Guía Completa
La configuración de la tarjeta se realiza mediante código YAML. A continuación, desglosamos las opciones más importantes que necesitarás para dominarla.
Opciones Principales
Estas son las propiedades fundamentales para definir el comportamiento y la apariencia de tu tarjeta.
| Nombre | Tipo | Defecto | Descripción |
|---|---|---|---|
type | cadena | Requerido | Debe ser custom:button-card para identificar el tipo de tarjeta. |
entity | cadena | Opcional | El entity_id de la entidad que controlará la tarjeta (ej: light.salon). |
name | cadena | Opcional | Texto a mostrar en la tarjeta. Por defecto, es el nombre amigable de la entidad. Soporta plantillas. |
icon | cadena | Opcional | Icono a mostrar (ej: mdi:lightbulb). Por defecto, es el icono de la entidad. Soporta plantillas. |
tap_action | objeto | action: toggle | Define la acción a ejecutar con un solo toque. |
hold_action | objeto | Opcional | Define la acción al mantener pulsado el botón. |
double_tap_action | objeto | Opcional | Define la acción al hacer doble clic. |
show_name | booleano | true | Controla si se muestra el nombre. |
show_icon | booleano | true | Controla si se muestra el icono. |
show_state | booleano | false | Muestra el estado actual de la entidad (ej: «on», «off», «22.5 °C»). |
color_type | cadena | icon | Define qué se colorea: icon (solo el icono) o card (el fondo de la tarjeta). |
color | cadena | Opcional | Define el color. Puede ser un nombre (blue), un código RGB (rgb(0,0,255)) o auto para luces. |
state | lista de objetos | Opcional | Permite definir estilos, iconos y colores diferentes según el valor del estado de la entidad. |
styles | objeto | Opcional | Permite aplicar estilos CSS personalizados a diferentes partes de la tarjeta (card, icon, name, etc.). Es la clave para una personalización avanzada y se puede combinar con Card-Mod. |
layout | cadena | vertical | Cambia la disposición de los elementos (icono, nombre, estado). |
lock | objeto | Opcional | Añade un candado de seguridad para evitar acciones accidentales. |
confirmation | objeto | Opcional | Pide confirmación en un diálogo emergente antes de ejecutar una acción. |
Definiendo Acciones (tap, hold, double_tap)
Cada una de las tres acciones (tap_action, hold_action, double_tap_action) es un objeto que contiene una propiedad action y, opcionalmente, datos adicionales. Por ejemplo:
tap_action:
action: call-service
service: light.turn_on
service_data:
entity_id: light.cocina
brightness: 255Confirmación de Acción
Ideal para acciones destructivas o importantes, como apagar un servidor o abrir la puerta del garaje.
| Nombre | Tipo | Defecto | Descripción |
|---|---|---|---|
text | cadena | ninguno | El texto que se mostrará en el diálogo de confirmación (ej: «¿Estás seguro?»). Soporta plantillas. |
exemptions | lista | ninguno | Lista de usuarios que no verán el diálogo de confirmación. Formato: - user: TU_USER_ID. |
Bloqueo de Seguridad (Lock)
Muestra un candado que debe ser pulsado para «desbloquear» el botón durante unos segundos, permitiendo su uso normal.
| Nombre | Tipo | Defecto | Descripción |
|---|---|---|---|
enabled | booleano | false | Activa o desactiva el bloqueo. Soporta plantillas. |
duration | número | 5 | Duración en segundos que el botón permanece desbloqueado. |
unlock | cadena | tap | Define qué acción desbloquea el candado: tap, hold o double_tap. |
Estados Dinámicos y Personalizados
Aquí reside la magia de Button Card. La sección state te permite cambiar la apariencia de la tarjeta en función del estado de la entidad. El sistema evalúa la lista de estados en orden y aplica el primer estilo que coincida.
| Nombre | Tipo | Defecto | Descripción |
|---|---|---|---|
value | cadena/número | Requerido | El valor del estado con el que se comparará (ej: 'on', 'home', 25). |
operator | string | == | El operador de comparación a usar (<, >, !=, template, etc.). |
icon | cadena | Opcional | Icono específico para este estado. |
color | cadena | Opcional | Color específico para este estado. |
spin | booleano | false | Activa la animación de rotación para este estado. |
styles | objeto | Opcional | Aplica estilos CSS personalizados solo para este estado. |
Operadores de Comparación
| Operador | Descripción |
|---|---|
== | Igual a (operador por defecto). |
!= | Diferente a. |
<, <=, >, >= | Comparadores numéricos (menor que, mayor que, etc.). |
regex | Compara usando una expresión regular. |
template | Evalúa una plantilla de Javascript que debe devolver true o false. |
default | Se aplica si ningún otro estado coincide. |
Ejemplos Prácticos de Button Card en Home Assistant (2026)
Vamos a ver cómo aplicar todo lo anterior con ejemplos de YAML que puedes copiar y adaptar para tu configuración.
Ejemplo 1: Ventilador Animado con Imagen Personalizada
Este es un clásico. Mostramos una imagen de un ventilador que rota cuando está encendido. Las imágenes deben estar en tu carpeta /config/www/.
type: custom:button-card
entity: fan.ventilador_despacho
show_entity_picture: true
tap_action:
action: toggle
state:
- value: 'off'
entity_picture: /local/icon-fan-off.png
- value: 'on'
entity_picture: /local/icon-fan-on.png
spin: true
styles:
entity_picture:
- animation: 'rotating 1s linear infinite'Ejemplo 2: Control Avanzado de Luces RGB
Este botón controla una luz. Con un toque la enciende/apaga. Manteniendo pulsado, abre el diálogo de detalles para cambiar color y brillo. El color del icono refleja el color real de la luz.
type: custom:button-card
entity: light.tira_led_salon
name: Tira LED Salón
icon: mdi:led-strip-variant
color_type: icon
color: auto
tap_action:
action: toggle
hold_action:
action: more-info
state:
- value: 'off'
styles:
icon:
- opacity: 0.5
- value: 'on'
styles:
icon:
- animation: 'blink 2s linear infinite'
- filter: brightness(120%)Ejemplo 3: Botón para Persianas con Múltiples Acciones
Un botón para controlar una persiana. Un toque la sube o la baja completamente, un doble toque la detiene, y al mantener pulsado se abre el control deslizante.
type: custom:button-card
entity: cover.persiana_dormitorio
name: Persiana
icon: mdi:blinds
tap_action:
action: call-service
service: cover.toggle
double_tap_action:
action: call-service
service: cover.stop_cover
hold_action:
action: more-info
state:
- value: 'open'
icon: mdi:blinds-open
- value: 'closed'
icon: mdi:blindsEjemplo 4: Activador de Escenas con Confirmación
Un botón simple para activar una escena, pero con un diálogo de confirmación para evitar activaciones accidentales.
type: custom:button-card
name: Modo Cine
icon: mdi:movie-open
tap_action:
action: call-service
service: scene.turn_on
service_data:
entity_id: scene.modo_cine
confirmation:
text: '¿Quieres activar el Modo Cine?'
styles:
card:
- background-color: '#333355'
- color: whiteSolución de Problemas Comunes (Troubleshooting)
Aunque Button Card es muy estable, a veces pueden surgir problemas. Aquí tienes los más comunes y sus soluciones:
- Error: «Custom element doesn’t exist: button-card»: Este es el problema más frecuente. Significa que Home Assistant no ha podido cargar el código de la tarjeta.
- Solución 1: Limpia la caché de tu navegador por completo.
- Solución 2: Asegúrate de que la ruta al archivo
button-card.jsen Configuración > Paneles > Recursos es correcta. HACS debería gestionarlo automáticamente, pero una revisión manual nunca está de más. La ruta debería ser algo como/hacsfiles/button-card/button-card.js.
- La tarjeta no se muestra o muestra un error de YAML:
- Solución: La causa casi siempre es un error de indentación en tu código YAML. Usa un editor de código como Visual Studio Code con la App (anteriormente conocido como Add-on) de Home Assistant para validar tu sintaxis antes de guardar.
- Una plantilla no funciona como esperaba:
- Solución: Las plantillas de Javascript se escriben entre
[[[ ... ]]]. Un error común es olvidar los corchetes o usar una sintaxis incorrecta. Prueba tu lógica en la sección de Herramientas para desarrolladores > Plantilla de Home Assistant para depurar el código.
- Solución: Las plantillas de Javascript se escriben entre
Con esta guía definitiva de 2026, tienes todo lo necesario para llevar la automatización y personalización de tu Home Assistant al siguiente nivel con Button Card. ¡Es hora de experimentar y crear la interfaz de tus sueños!
