Saltar al contenido

Precio Luz Home Assistant Tarifa Fija: Guía Fácil 2026

23/10/2021

Actualizado el 28 de enero de 2026

Si tienes una tarifa de luz del mercado libre con precios fijos por tramos horarios, integrarla en Home Assistant para un seguimiento preciso del coste puede parecer un desafío. Mientras que los usuarios de la tarifa PVPC disfrutan de una integración oficial que actualiza el precio cada hora, el resto necesitamos una solución a medida. Afortunadamente, en 2026, crear un sensor para el precio de la luz en Home Assistant con tarifa fija es más fácil y potente que nunca.

En esta guía definitiva, te enseñaré a abandonar los métodos antiguos y a crear un sensor de precios dinámico y totalmente integrado con el Energy Dashboard. Olvídate de editar archivos YAML cada vez que tu tarifa cambie.

¿Por qué actualizar? El fin de los sensores de plantilla «Legacy»

Hasta hace poco, la configuración de estos sensores se hacía directamente en `sensors.yaml` usando el formato `platform: template`. Sin embargo, desde finales de 2025, Home Assistant ha marcado este método como obsoleto. Si aún utilizas esta configuración, es crucial que la migres cuanto antes para evitar que deje de funcionar. Este tutorial utiliza exclusivamente los métodos modernos y recomendados para 2026.

Paso 1 (Esencial): Configurar el sensor de día laborable (Workday)

Nuestra lógica para calcular el precio necesita saber si hoy es un día laborable, fin de semana o festivo. Para ello, usamos la integración oficial Workday. Es un requisito indispensable.

1. Ve a Ajustes > Dispositivos y Servicios > Añadir Integración.

2. Busca y selecciona «Workday».

3. En la configuración, introduce los siguientes datos:

  • País: `ES`
  • Provincia (Opcional): El código de tu provincia (ej. `M` para Madrid, `B` para Barcelona) para incluir festivos regionales.

4. Confirma la configuración. Esto creará una entidad llamada `binary_sensor.workday_sensor`, que estará en estado `on` los días laborables y `off` los fines de semana y festivos.

Paso 2: Hacer los precios dinámicos con Ayudantes

Para no tener que editar código cada vez que cambien los precios de tu tarifa, vamos a crear «Ayudantes» de tipo «Número». Esto nos permitirá ajustar los precios directamente desde el panel de Home Assistant.

1. Ve a Ajustes > Dispositivos y Servicios > Ayudantes.

2. Pulsa «Crear Ayudante» y selecciona «Número».

3. Crea tres ayudantes, uno para cada tramo horario. Aquí tienes un ejemplo:

  • Nombre: Precio Electricidad Punta
    Icono: `mdi:flash-alert`
    Valor mínimo: 0
    Valor máximo: 2
    Paso: 0.001
    Unidad de medida: `€/kWh`
  • Nombre: Precio Electricidad Llano
    Icono: `mdi:flash`
    … (misma configuración)
  • Nombre: Precio Electricidad Valle
    Icono: `mdi:flash-off`
    … (misma configuración)

Una vez creados, tendrás tres entidades (ej: `input_number.precio_electricidad_punta`) que podrás añadir a tu dashboard para modificar los precios fácilmente.

Ayudantes de tipo número para los precios de la luz en Home Assistant

Paso 3: Crear el Sensor de Precio (Método Recomendado por UI)

Ahora que tenemos los precios y el sensor de día laborable, crearemos el sensor principal usando un Ayudante de Plantilla. Este es el método más limpio y recomendado en 2026.

1. Vuelve a Ajustes > Dispositivos y Servicios > Ayudantes.

2. Pulsa «Crear Ayudante» y selecciona «Plantilla».

3. Elige «Plantilla de un sensor».

4. Rellena los campos de la siguiente manera:

  • Nombre: Precio Electricidad Actual
  • Plantilla de estado (pega este código):
{% set precio_punta = states('input_number.precio_electricidad_punta') | float(0) %}
{% set precio_llano = states('input_number.precio_electricidad_llano') | float(0) %}
{% set precio_valle = states('input_number.precio_electricidad_valle') | float(0) %}

{% if is_state('binary_sensor.workday_sensor', 'off') %}
  {{ precio_valle }}
{% else %}
  {% set current_hour = now().hour %}
  {% if 0 <= current_hour < 8 %}
    {{ precio_valle }}
  {% elif 8 <= current_hour < 10 %}
    {{ precio_llano }}
  {% elif 10 <= current_hour < 14 %}
    {{ precio_punta }}
  {% elif 14 <= current_hour < 18 %}
    {{ precio_llano }}
  {% elif 18 <= current_hour < 22 %}
    {{ precio_punta }}
  {% else %}
    {{ precio_valle }}
  {% endif %}
{% endif %}
  • Unidad de medida: `€/kWh` (¡Muy importante!)
  • Clase de dispositivo: Monetario (Esto le da el icono correcto)
  • Clase de estado: Medición (¡Crítico para el Energy Dashboard!)

5. Pulsa «Crear». ¡Ya tienes tu sensor `sensor.precio_electricidad_actual` funcionando!

Alternativa para Fines de Semana

Algunas tarifas del mercado libre diferencian el precio del sábado del domingo. Puedes adaptar la plantilla fácilmente. Por ejemplo:

... (código anterior) ...
{% if now().isoweekday() == 7 %}
  {{ precio_valle_domingo }}
{% elif now().isoweekday() == 6 %}
  {{ precio_valle_sabado }}
{% elif is_state('binary_sensor.workday_sensor', 'off') %}
  {{ precio_valle }}
{% else %}
... (resto del código) ...
{% endif %}

Recuerda crear los `input_number` correspondientes para `precio_valle_domingo` y `precio_valle_sabado`.

Método Alternativo: Configuración YAML Moderna

Si prefieres gestionar tus plantillas en `configuration.yaml`, esta es la sintaxis moderna que debes usar. No uses `platform: template` bajo `sensor:`.

Añade el siguiente bloque a tu archivo `configuration.yaml`:

template:
  - sensor:
      - name: "Precio Electricidad Actual YAML"
        unique_id: precio_electricidad_actual_yaml_2026
        unit_of_measurement: "€/kWh"
        device_class: monetary
        state_class: measurement
        state: >-
          {% set precio_punta = states('input_number.precio_electricidad_punta') | float(0) %}
          {% set precio_llano = states('input_number.precio_electricidad_llano') | float(0) %}
          {% set precio_valle = states('input_number.precio_electricidad_valle') | float(0) %}

          {% if is_state('binary_sensor.workday_sensor', 'off') %}
            {{ precio_valle }}
          {% else %}
            {% set current_hour = now().hour %}
            {% if 0 <= current_hour < 8 %}
              {{ precio_valle }}
            {% elif 8 <= current_hour < 10 %}
              {{ precio_llano }}
            {% elif 10 <= current_hour < 14 %}
              {{ precio_punta }}
            {% elif 14 <= current_hour < 18 %}
              {{ precio_llano }}
            {% elif 18 <= current_hour < 22 %}
              {{ precio_punta }}
            {% else %}
              {{ precio_valle }}
            {% endif %}
          {% endif %}

Después de guardar, ve a Ajustes > Sistema > Recargar y recarga las "Entidades de Plantilla".

Comparativa de Métodos: UI vs. YAML

CaracterísticaMétodo UI (Ayudante)Método YAML Moderno
Facilidad de UsoMuy alta. Todo se hace desde la interfaz web, sin necesidad de editar archivos.Media. Requiere editar `configuration.yaml` y recargar las plantillas.
MantenimientoSencillo. La lógica se puede editar directamente desde el Ayudante en la UI.Requiere acceso a los archivos de configuración para cualquier cambio.
Recomendado para...La mayoría de los usuarios en 2026. Es el estándar actual.Usuarios avanzados que prefieren tener toda su configuración centralizada en código.

Paso Final: Integración con el Panel de Energía

Este es el objetivo final: ver el coste real de tu consumo. Con el sensor correctamente configurado (con `unit_of_measurement`, `device_class` y `state_class`), integrarlo es muy sencillo.

1. Ve a Ajustes > Paneles > Energía.

2. En la sección "Red eléctrica", busca "Precio de la electricidad".

3. Selecciona la opción "Usar una entidad con el precio de la electricidad actual".

4. En el desplegable, elige el sensor que has creado (ej. `sensor.precio_electricidad_actual`).

5. Guarda la configuración.

¡Listo! A partir de ahora, el Panel de Energía utilizará tu sensor para calcular el coste de la electricidad consumida de la red, dándote una visión precisa de tus gastos.

Energy Dashboard de Home Assistant configurado con un sensor de precio de tarifa fija

FAQ y Solución de Problemas Comunes

Mi sensor muestra 'unknown' o un error. ¿Qué hago?
Ve a Herramientas para desarrolladores > Plantilla. Pega el código de tu plantilla en el editor y comprueba el resultado. Los errores más comunes son: un `entity_id` incorrecto para los `input_number` o para el `binary_sensor.workday_sensor`. Asegúrate de que los nombres coinciden exactamente.

El sensor no aparece en la lista del Panel de Energía.
Este es el error más frecuente. La causa es casi siempre que al sensor le falta la `unit_of_measurement: '€/kWh'` y, sobre todo, la `state_class: 'measurement'`. Si creaste el sensor por la UI, edita el ayudante y asegúrate de que estos campos están configurados. Si usaste YAML, añádelos a tu configuración. Puede tardar hasta una hora en aparecer después de corregirlo.

¿Cómo modifico los tramos horarios de mi tarifa?
Debes editar la lógica `if/elif/else` dentro de la plantilla. Por ejemplo, si tu tramo punta es de 9:00 a 13:00, cambiarías la línea `{% elif 10 <= current_hour < 14 %}` por `{% elif 9 <= current_hour < 13 %}`. Es bastante intuitivo.

Con esta guía actualizada a 2026, tienes todas las herramientas para integrar a la perfección tu tarifa del mercado libre en Home Assistant y tomar el control total sobre tu consumo y gasto energético.