La semana pasada analizamos la perilla inteligente Tuya ZG-101Z/D. Hoy te explico paso a paso cómo configurarla en Home Assistant para controlar el brillo y la temperatura de color de tus luces de forma intuitiva, simplemente girando la perilla.
Si aún no tienes la perilla Tuya ZG-101Z/D, puedes comprarla en los siguientes enlaces:
¿Qué conseguiremos?
Al finalizar este tutorial tendrás:
- ✅Control de brillo girando la perilla (hacia la derecha sube, hacia la izquierda baja)
- ✅Control de temperatura de color al pulsar y girar la perilla (más cálida/más fría).
- ✅Una respuesta lo más fluida posible.
Requisitos previos
- Al menos una luz compatible con control de brillo y temperatura.
- Home Assistant con Zigbee2MQTT configurado.
- Perilla Tuya ZG-101Z/D ya emparejada con tu red Zigbee.
Activar el modo comando en la perilla Tuya ZG-101Z/D
Para controlar el brillo, lo mejor es usar el modo comando. Asegúrate de que la perilla esté en este modo, ya que así aparecerá la acción brightness_step_up, que es la que nos interesa.
¿Qué diferencia hay entre comando y evento?
Antes de crear las automatizaciones, es importante entender cómo se comunica la perilla con Home Assistant. Cuando usamos un dispositivo Zigbee como este, Zigbee2MQTT puede enviar dos tipos de información:
- Modo evento (Event Mode): Envía notificaciones de acciones únicas (ej. rotate_right). A menudo, espera a que termines la acción para enviar el evento, lo que puede causar que el brillo cambie a saltos. Es útil para disparar acciones únicas, pero no para un control fluido.
- Modo comando (Command Mode): Ideal para ajustes graduales. Envía un flujo continuo de comandos mientras giras la perilla (ej. brightness_step_up, brightness_step_up…). Esto, combinado con el modo «Reiniciar» de la automatización, permite un control de brillo suave y en tiempo real.
En este tutorial vamos a usar el modo comando, que es el más directo y eficaz para asociar giros o clics a acciones como cambiar el brillo o el color de una bombilla.
Puedes activar el modo comando de dos formas:
- Desde la interfaz de Zigbee2MQTT: ve al dispositivo, selecciona la pestaña Expone y elige comando en el desplegable correspondiente.
- Pulsando 3 veces el botón de reset de la perilla.
Una vez activado, ya podemos empezar a crear la automatización.

Configurar el control de brillo
Subir brillo
En Home Assistant, ve al menú lateral y selecciona «Configuración»

En el menú de configuración, entra en «Automatizaciones y escenas»

Pulsa en «Crear automatización» y luego selecciona «Crear nueva automatización»

En la sección cuando, pulsa en «Añadir disparador»

En el tipo de disparador, elige «Dispositivo»

Selecciona la perilla Tuya ZG-101Z/D: en mi caso lo tengo nombrado como botón tuya
Elige como disparador la acción brightness_step_up

Con esto ya tendríamos configurado el primer paso: subir el brillo con la perilla Tuya ZG-101Z/D. Ahora, vamos a ajustar las luces.
Configurar la acción (encender la luz con ajuste de brillo)
En la sección «Entonces hacer», pulsa «Añadir acción»

En el tipo de acción, selecciona Luz: Encender (puedes usar el buscador para encontrarla más rápido).

Elige la entidad sobre la que quieres actuar. En mi caso, light.luz_habitacion_tuya.

Configura los siguientes parámetros:
- Transición: 1 segundo, con este ajuste debería ser suficiente, pero puedes ir probando
- Paso de brillo: por ejemplo, 20 % (ajústalo a tu gusto)

Ahora, el paso más importante para la fluidez. Arriba a la derecha, pulsa en los tres puntos (⋮) y selecciona Cambiar modo. Elige el modo Reiniciar.

Ahora seleccionas el modo reiniciar

¿Por qué hacemos esto?
Cuando giras una perilla, esta envía eventos de brightness_step_up muy rápido. Si la automatización está en modo single (el predeterminado), solo procesará el primer evento e ignorará el resto hasta que termine, lo que hace que la atenuación vaya «a tirones». Al ponerlo en modo Reiniciar, cada nuevo giro interrumpe la automatización anterior y la reinicia, creando esa sensación de control suave y continuo.
Guardamos los cambios y le ponemos nombre a la acción, y asignale una categoría, así luego lo tendrás organizado, yo en mi caso, lo tengo como botón tuya, y con esto estaría terminada la primera parte
💡 Consejo: Para configurar la bajada de brillo, no hace falta repetir todo. Pulsa en los tres puntos (⋮) en la parte superior derecha de la automatización, selecciona «Duplicar» y simplemente cambia el disparador a brightness_step_down
, y el paso de brillo a negativo, por ejemplo -20%

Ajustar el color de la luz (temperatura de color)
Configurar botón para subir temperatura, nuevamente repetimos los pasos
- En Home Assistant, ve al menú lateral y selecciona «Configuración»
- En el menú de configuración, entra en «Automatizaciones y escenas»
- Pulsa en «Crear automatización» y luego selecciona «Crear nueva automatización»
- Pulsa en «Añadir disparador»
- En el tipo de disparador, elige «Dispositivo»
- Selecciona nuevamente el botón
- Ahora tienes que elegir como disparador la acción color_temperature_step_up o color_temperature_step_down» si quieres subir o bajar la temperatura.

Aquí está la magia
Aquí es donde aparece una limitación de la interfaz gráfica de Home Assistant: si usamos la acción estándar «Luz: Encender», no hay una opción para aplicar un «paso» en la temperatura de color. Solo se puede fijar un valor concreto, lo cual no nos sirve para un cambio gradual.
La solución es editar la acción en modo YAML y usar una plantilla que calcule el nuevo valor automáticamente.
Hacer la luz más cálida
Ve a entonces hacer, y vuelve a darle añadir acción

Igual que antes, seleccionas la acción «Luz: Encender»,

Selecciona la entidad deseada (por ejemplo, luz habitacion tuya
)

Aquí es donde ya cambia la forma de configurarlo, debes pulsar en los tres puntos (⋮) junto a la acción y elige «Editar en YAML»

Sustituye el contenido por este código:
target:
entity_id: light.luz_habitacion_tuya
data:
kelvin: >
{% set current_kelvin = state_attr('light.luz_habitacion_tuya',
'color_temp_kelvin') | int(3750) %} {{ [current_kelvin - 250, 2000] | max }}
brightness: |
{{ state_attr('light.luz_habitacion_tuya', 'brightness') | int(153) }}
action: light.turn_on
📌 Importante: cambia light.luz_habitacion_tuya
por el nombre real de tu bombilla o grupo de luces.

¿Qué hace este código?
- Obtiene la temperatura actual de la bombilla
- Le resta 250 K (Puedes modificarlo a gusto si quieres que vaya más rapido)
- Establece el nuevo valor, pero sin bajar nunca de 2000 K, debes ver cuál es el valor más bajo de tu bombilla y ajustarlo
- Mantiene el nivel de brillo actual para evitar cambios bruscos
De esta forma conseguimos un cambio gradual, aunque Home Assistant no lo permita directamente con acciones estándar.
Hacer la luz más fría
Ahora solo hay que duplicar la automatización anterior y hacer dos cambios:
- Disparador: cámbialo a
color_temperature_step_up
- Código YAML: sustituye la resta por una suma, y usa
min
para fijar el límite superior
target:
entity_id: light.luz_habitacion_tuya
data:
kelvin: >
{% set current_kelvin = state_attr('light.luz_habitacion_tuya',
'color_temp_kelvin') | int(3750) %} {{ [current_kelvin + 100, 7042] | min }}
brightness: |
{{ state_attr('light.luz_habitacion_tuya', 'brightness') | int(153) }}
action: light.turn_on

Vuelve a guardar los cambios, y no te olvides de seleccionar la categoría, lo agradecerás si algún día tienes que modificar algo.
⚠️ Ten en cuenta que esta configuración funciona con luces que permiten ajuste de temperatura en Kelvin. Algunas bombillas solo usan color_temp
(en mireds), y podría ser necesario adaptar el código.
🛠️ Código adaptado a mireds
🔻 Hacer la luz más cálida (aumentar mireds)
target:
entity_id: light.luz_habitacion_tuya
data:
color_temp: >
{% set current_temp = state_attr('light.luz_habitacion_tuya', 'color_temp') | int(300) %}
{{ [current_temp + 30, 500] | min }}
brightness: >
{{ state_attr('light.luz_habitacion_tuya', 'brightness') | int(153) }}
action: light.turn_on
🔺 Hacer la luz más fría (reducir mireds)
target:
entity_id: light.luz_habitacion_tuya
data:
color_temp: >
{% set current_temp = state_attr('light.luz_habitacion_tuya', 'color_temp') | int(300) %}
{{ [current_temp - 30, 153] | max }}
brightness: >
{{ state_attr('light.luz_habitacion_tuya', 'brightness') | int(153) }}
action: light.turn_on
📌 Notas importantes
- Sustituye
light.luz_habitacion_tuya
por la entidad real. - Ajusta el paso (
±30
) según la sensibilidad que quieras. - El valor predeterminado (
int(300)
) es un valor medio que funcionará si el atributo aún no está presente.
Conclusión
Con esto ya tienes una configuración funcional para controlar tanto el brillo como la temperatura de color con la perilla inteligente Tuya ZG-101Z/D en Home Assistant.
No es la única forma de hacerlo, pero es una solución eficaz y que funciona muy bien en mi instalación. Si tienes dudas o quieres compartir tu experiencia, ¡te leo en los comentarios!
También podría interesarte Meross MSS815MA: Interruptor inteligente con Matter, Wi-Fi y control por voz
Nota sobre enlaces de afiliado: Este artículo puede contener enlaces de afiliado. Si realizas una compra a través de ellos, es posible que recibamos una comisión sin que esto suponga ningún coste adicional para ti. Esto nos ayuda a mantener y mejorar nuestro trabajo.