Saltar al contenido

Migrar Plantillas Legacy en Home Assistant 2025.12: Solución al error de «Plantilla Obsoleta»

03/12/2025
Migrar plantillas legacy Home Assistant

Después de actualizar a Home Assistant 2025.12 me encontré con algo que, a primera vista, asusta bastante: el menú de Reparaciones marcaba más de 100 avisos en rojo y amarillo. “Plantilla heredada sensor obsoleta” “Plantilla heredada switch obsoleta”

Si te ha pasado lo mismo y necesitas migrar plantillas legacy en Home Assistant, que no cunda el pánico. En este artículo te cuento, en primera persona, qué estaba pasando exactamente en mi instalación, cómo lo he resuelto paso a paso y qué haría distinto si tuviera que empezar hoy.

¿Qué ha pasado en la versión 2025.12?

Básicamente, Home Assistant ha decidido «jubilar» el formato antiguo de las plantillas (lo que llamamos Legacy). Ese formato clásico que escribíamos así:

# ANTES (Formato a eliminar)
sensor:
  - platform: template
    sensors: ...

Ha convivido años con el formato moderno, pero ahora tiene fecha de caducidad. Tienes que migrar todo a la integración única template:.

Paso 1: El inventario (y qué NO tocar)

Lo primero que hice fue abrir mi VS Code y buscar platform: template. Aquí me llevé el primer susto, porque aparecían cientos de resultados. Pero ojo, hay que diferenciar:

  1. Plantillas de Home Assistant: Estas son las que hay que cambiar (están bajo sensor:, switch:, etc.).
  2. Plantillas de ESPHome: Si tienes nodos ESPHome, verás que también usan platform: template en sus YAML. ¡Esas no se tocan! Siguen funcionando igual.
  3. Otros sensores: Los history_stats, rest, o integration tampoco se ven afectados.

Paso 2: Centralizando todo en templates.yaml

Aproveché la limpieza para poner orden. En lugar de tener las plantillas dispersas por mil archivos, decidí moverlo todo a un único archivo templates.yaml (asegúrate de tener template: !include templates.yaml en tu configuration.yaml).

Paso 3: Casos Prácticos (Copia mis ejemplos)

Aquí es donde está la «chicha». Así es como transformé mis sensores reales.

El Truco Pro: default_entity_id

Esto es vital. Si no pones esta línea, HA creará un sensor nuevo y perderás todo tu historial de gráficas. Al forzar el ID antiguo, conservas los datos.

Caso A: Sensores de Coste (€) y Matemáticas

Tenía muchos sensores para calcular el gasto de la lavadora, tal como explicamos en el Tutorial de control de energía

ANTES (Legacy):

sensor:
  - platform: template
    sensors:
      lavadora_coste_diario:
        friendly_name: "Lavadora coste diario"
        value_template: "{{ (states('sensor.lavadora') | float * 0.20) | round(2) }}"

DESPUÉS (Moderno en templates.yaml):

- sensor:
    - name: "Lavadora coste diario"
      default_entity_id: sensor.lavadora_coste_diario  # <--- ¡Importante!
      unit_of_measurement: "€"
      state: "{{ (states('sensor.lavadora') | float * 0.20) | round(2) }}"

Fíjate que value_template ahora se llama state y friendly_name es solo name.

Caso B: El interruptor del PC (Switch)

Tenía un botón para encender el PC del salón. Los switches cambian un poco más, especialmente en la parte de las acciones.

DESPUÉS (Moderno):

- switch:
    - name: "PC Salón"
      default_entity_id: switch.pc_salon
      state: "{{ is_state('binary_sensor.pc_online', 'on') }}"
      turn_on:
        action: script.encender_pc_salon # Antes era 'service'
      turn_off:
        action: script.apagar_pc_salon

Los errores con los que me choqué

No todo fue perfecto. Durante la migración cometí un par de fallos que te cuento para que te los ahorres:

  • El error de indentación: Al principio copié código moderno dentro de un archivo antiguo que empezaba por sensor:. El validador me gritó «required key ‘platform’ not provided». Lección: Lo moderno va bajo template:, no bajo sensor:.
  • Los duplicados fantasma: Me olvidé de borrar algunos sensores viejos después de crear los nuevos. El sistema no daba error de código, pero el aviso de «Reparación» no se iba. Asegúrate de borrar lo viejo una vez migrado.

Preguntas Frecuentes sobre la Migración de Plantillas

¿Hasta cuándo tengo tiempo para migrar mis plantillas legacy? Aunque el aviso aparece en la versión 2025.12, las plantillas antiguas seguirán funcionando hasta la versión 2026.6 (junio de 2026). Sin embargo, te recomiendo hacerlo cuanto antes para evitar acumulaciones de errores.

¿Tengo que modificar mis archivos YAML de ESPHome? No, rotundamente no. El aviso de deprecación solo afecta a la configuración interna de Home Assistant. Los archivos de ESPHome, aunque usen platform: template, funcionan de forma independiente y no deben modificarse por este aviso.

He migrado un sensor y he perdido todo mi historial de gráficas, ¿por qué? Eso ocurre porque al crear el nuevo sensor, Home Assistant le ha asignado un ID nuevo (ej: sensor.temperatura_2). Para recuperar tu historial, debes añadir la línea default_entity_id: sensor.nombre_antiguo en tu nueva configuración para forzar el uso del ID original.

¿Puedo poner las nuevas plantillas dentro de sensor.yaml? No. El formato moderno no pertenece al dominio sensor:, sino al dominio template:. Debes colocarlas en tu archivo configuration.yaml bajo la clave template: o, mejor aún, en un archivo dedicado llamado templates.yaml.

¿Qué pasa con los sensores platform: history_stats o rest? Nada. Esas plataformas siguen vigentes. La deprecación solo afecta exclusivamente a platform: template.

Conclusión

Me costó una tarde dejarlo a cero, pero ha valido la pena. Ahora tengo un archivo centralizado donde veo todas mis fórmulas y cálculos de un vistazo.

Si tienes muchas reparaciones pendientes, mi consejo es: ve archivo por archivo. Migra un bloque, comprueba la configuración, reinicia y verifica. Poco a poco verás bajar ese contador de 100 a 0. ¡Ánimo!

Sígueme a Youtube

Migrar plantillas legacy Home Assistant