guías

PVPC en Home Assistant: enciende el termo en las horas baratas y deja que tu IA te avise

Usa la integración PVPC de Home Assistant, un enchufe Shelly y Ollama para encender el termo en las horas más baratas y saber cuándo poner la lavadora.


Si tienes la tarifa regulada de luz, el PVPC, el precio del kWh cambia cada hora. Hay horas que cuestan el doble que otras, y no son siempre las mismas: dependen del día, del viento, del sol y de la demanda.

La teoría es fácil: consume cuando sea barato. Lo difícil es acordarse de mirar la tabla de precios cada noche y luego estar en casa para encender las cosas a esa hora.

Home Assistant puede hacerlo por ti. Tiene una integración oficial que lee los precios del PVPC directamente de Red Eléctrica. Le sumas un enchufe que mide consumo y un modelo de IA local, y consigues dos cosas: lo que se puede encender solo se enciende en las horas baratas, y para lo que no (la lavadora), tu asistente te avisa de cuándo conviene.

Lo que necesitas antes de empezar

  • Tener contratado el PVPC. Es la tarifa regulada para potencias de hasta 10 kW. Si tienes un precio fijo con una comercializadora del mercado libre, esta guía te sirve de poco: tu kWh cuesta lo mismo a las 4 de la madrugada que a las 8 de la tarde. Mira tu factura: si pone “PVPC” o “precio voluntario para el pequeño consumidor”, adelante.
  • Home Assistant funcionando. Si aún no lo tienes, empieza por la guía de Home Assistant desde cero.
  • Un enchufe inteligente con control local, como un Shelly Plug S Gen3.
  • Para la parte de IA: Ollama en un ordenador o mini PC de casa. Lo tienes explicado en cómo instalar Ollama.

Nivel: intermedio. No hay que soldar ni tocar el cuadro eléctrico, pero sí copiar y adaptar algo de YAML (el formato de texto con el que Home Assistant define automatizaciones).

Cómo lo abrimos: la integración PVPC

Home Assistant incluye de serie la integración Spain electricity hourly pricing (PVPC). Lee los datos de ESIOS, la plataforma pública donde Red Eléctrica publica los precios. No necesitas cuenta ni API de pago para el precio básico.

Para activarla:

  1. Ve a Ajustes → Dispositivos y servicios → Añadir integración.
  2. Busca PVPC.
  3. Elige la tarifa 2.0TD (península, Baleares y Canarias) y escribe tu potencia contratada.

Crea un sensor con el precio de la hora actual en €/kWh. Ese precio incluye peajes y cargos, pero no impuestos. Lo bueno está en los atributos del sensor, que son datos extra que van pegados a él:

  • price_00h … price_23h: el precio de cada hora del día.
  • min_price, min_price_at: el precio más bajo del día y a qué hora toca.
  • next_best_at: cuándo llega la siguiente hora barata.
  • price_next_day_00h … price_next_day_23h: los precios de mañana, que aparecen por la tarde-noche, cuando Red Eléctrica los publica.

Puedes ver todos los atributos en Herramientas para desarrolladores → Estados buscando tu sensor. El nombre exacto de la entidad depende de tu instalación; en los ejemplos uso sensor.esios_pvpc, pero cámbialo por el tuyo.

¿Y lo de los precios cada 15 minutos? Desde finales de 2025, el mercado mayorista fija precios por cuartos de hora. Pero los contadores domésticos miden por horas, así que en el PVPC se sigue aplicando un precio por hora (la media de sus cuatro cuartos). Para esta guía, la hora sigue siendo la unidad que importa.

Qué se puede automatizar de verdad (y qué no)

Aquí está la parte honesta. Un enchufe inteligente solo sabe dar o quitar corriente. No pulsa botones.

Sí puedes encender y apagar sin problemas:

  • El termo eléctrico. Es el caso ideal: calienta agua, la guarda y no le importa a qué hora lo hace.
  • Un deshumidificador o un radiador de aceite, si al volver la corriente siguen en el modo en el que los dejaste.
  • Cargadores de bicicleta o patinete eléctrico.

No puedes encender con un enchufe:

  • La lavadora y el lavavajillas. Cortar y devolver la corriente no inicia el programa, y en algunos modelos interrumpe el ciclo. Para estos, lo que funciona es que el sistema te diga cuál es la mejor hora y tú uses el inicio diferido del propio aparato.

Antes de enchufar el termo, mira su potencia en la etiqueta. El Shelly Plug S Gen3 aguanta hasta 12 A, unos 2.500 W en cargas resistivas como una resistencia de agua. Muchos termos domésticos están por debajo, pero si el tuyo se acerca al límite, o está conectado directamente a la instalación sin enchufe, lo correcto es que un electricista instale un relé o contactor en el cuadro. No lo improvises.

El cacharro: Shelly Plug S Gen3

Elegimos Shelly por una razón técnica: funciona en local. Home Assistant lo descubre solo en tu red y lo controla sin pasar por la nube del fabricante. Además mide el consumo en tiempo real, así que puedes ver cuánto gasta el termo en cada ciclo.

Para el resto de la casa, si quieres medir el consumo total, existen medidores Shelly que se instalan en el cuadro eléctrico con pinzas. Funcionan muy bien, pero se instalan dentro del cuadro: o sabes lo que haces o llamas a un electricista.

Automatización: el termo en las 3 horas más baratas

Esta automatización revisa cada hora en punto si la hora actual es una de las 3 más baratas del día. Si lo es, enciende el termo. Si no, lo apaga.

alias: Termo en horas baratas PVPC
triggers:
  - trigger: time_pattern
    minutes: "0"
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: >
              {% set s = 'sensor.esios_pvpc' %}
              {% set ns = namespace(precios=[]) %}
              {% for h in range(24) %}
                {% set p = state_attr(s, 'price_%02dh' % h) %}
                {% if p is not none %}
                  {% set ns.precios = ns.precios + [p | float] %}
                {% endif %}
              {% endfor %}
              {% if ns.precios | length >= 3 %}
                {{ states(s) | float(99) <= (ns.precios | sort)[2] }}
              {% else %}
                false
              {% endif %}
        sequence:
          - action: switch.turn_on
            target:
              entity_id: switch.termo
    default:
      - action: switch.turn_off
        target:
          entity_id: switch.termo
mode: single

Qué cambiar:

  • sensor.esios_pvpc por el nombre de tu sensor PVPC.
  • switch.termo por el nombre del enchufe Shelly.
  • El [2] significa “las 3 horas más baratas” (se cuenta desde 0). Si tu termo necesita 4 horas para calentar el agua, cámbialo por [3].

Pégalo en Ajustes → Automatizaciones → Crear automatización → Editar en YAML y guarda.

Un consejo: los primeros días, mira la gráfica de consumo del enchufe. Si el termo termina de calentar en una hora y media, no tiene sentido dejarlo encendido tres.

Qué capa de IA le ponemos encima

La automatización del termo no necesita IA, y es mejor así: una regla fija es predecible y no se equivoca. La IA aporta en lo que una regla no sabe hacer bien: explicarte las cosas y ayudarte a decidir.

1. Un sensor que la IA pueda leer

Los modelos de lenguaje conectados a Home Assistant leen mejor un texto sencillo que 48 atributos numéricos. Crea un sensor de plantilla (Ajustes → Dispositivos y servicios → Ayudantes → Crear ayudante → Plantilla → Sensor) con este contenido:

{% set s = 'sensor.esios_pvpc' %}
{% set ns = namespace(horas=[]) %}
{% for h in range(24) %}
  {% set p = state_attr(s, 'price_%02dh' % h) %}
  {% if p is not none %}
    {% set ns.horas = ns.horas + [(p | float, h)] %}
  {% endif %}
{% endfor %}
{% for precio, h in (ns.horas | sort)[:4] -%}
  {{ '%02d' % h }}:00 ({{ (precio * 100) | round(1) }} c€/kWh){{ ', ' if not loop.last }}
{%- endfor %}

Llámalo “Horas baratas hoy”. Su estado será algo como 03:00 (8.2 c€/kWh), 04:00 (8.4 c€/kWh), 14:00 (9.1 c€/kWh), 15:00 (9.3 c€/kWh).

2. Pregúntale a tu casa

Conecta Ollama a Home Assistant con la integración oficial de Ollama y activa la opción para que pueda leer y controlar tu casa a través de Assist, el asistente de voz y texto de Home Assistant. Expón solo lo necesario: el sensor “Horas baratas hoy”, el precio actual y el enchufe del termo.

A partir de ahí, puedes preguntar en lenguaje normal:

  • “¿Cuándo me conviene poner la lavadora hoy?”
  • “¿La luz está cara ahora mismo?”
  • “¿Está encendido el termo?”

Usa un modelo que soporte herramientas (tools). Si quieres entender qué es eso, está explicado en llamadas de herramienta en Ollama. La propia documentación de Home Assistant recomienda exponer pocas entidades: los modelos pequeños se lían con listas largas.

3. Un aviso cada noche

Esta automatización le pide a tu modelo local un resumen de las horas baratas cuando ya están los precios del día siguiente, y te lo manda al móvil:

alias: Resumen de precios de mañana
triggers:
  - trigger: time
    at: "21:00:00"
actions:
  - action: conversation.process
    data:
      agent_id: conversation.ollama
      text: >
        Precios de luz de mañana en €/kWh:
        {% for h in range(24) %}{{ '%02d' % h }}h={{ state_attr('sensor.esios_pvpc', 'price_next_day_%02dh' % h) }} {% endfor %}.
        En dos frases cortas: dime la mejor franja para poner la lavadora
        y si mañana es un día caro o barato. Sin listas.
    response_variable: resumen
  - action: notify.mobile_app_tu_movil
    data:
      title: Luz mañana
      message: "{{ resumen.response.speech.plain.speech }}"
mode: single

Cambia conversation.ollama por el nombre de tu agente de Ollama y notify.mobile_app_tu_movil por tu móvil, que aparece al instalar la app de Home Assistant.

Así recibes un mensaje tipo “Mañana la mejor franja es de 13:00 a 16:00 gracias al sol; por la noche sube bastante. Es un día barato, buena ocasión para la colada”. Todo procesado en tu casa, sin mandar tus hábitos de consumo a ninguna nube.

Lista de compra

  • Shelly Plug S Gen3 (unos 20-25 €): enchufe con medición de consumo, control local y compatible con Home Assistant. Uno por aparato que quieras automatizar.
  • Un equipo para Home Assistant: Home Assistant Green, Raspberry Pi o mini PC. Si dudas, mira cuál comprar.
  • Un equipo para Ollama: puede ser el mismo mini PC si tiene 16 GB de RAM o más, o tu ordenador de sobremesa. Más opciones en qué comprar para usar Ollama en casa.
  • Opcional: un medidor de consumo total para el cuadro eléctrico, instalado por un electricista.

Lo que no te van a contar

El ahorro es real pero modesto. Haz la cuenta con tus datos: si el termo gasta unos 2 kWh al día y la diferencia entre la hora barata y la cara fuera de 10 céntimos por kWh, ahorrarías unos 20 céntimos al día, unos 6 € al mes. Está bien, pero no te va a cambiar la factura. Mira la diferencia real entre horas en tu sensor antes de hacerte ilusiones.

Las diferencias entre horas se han suavizado. Desde 2024, una parte creciente del precio del PVPC se calcula con mercados a plazo y no solo con el precio del día. Eso hace la tarifa más estable, pero también reduce el premio de mover consumos de hora.

Si tu termo tiene termostato propio, tenlo en cuenta. Durante las horas encendido, el termo calentará hasta su temperatura y se parará solo. Fuera de esas horas no calentará aunque gastes agua. Si en casa os ducháis a horas raras, deja una hora de margen extra o ajusta las horas a vuestra rutina.

La IA no debe decidir sola el termo. Un modelo de lenguaje puede equivocarse con los números. Por eso la automatización del termo es una regla fija y la IA solo resume y responde. Así, si el modelo se equivoca, lo peor que pasa es que te da un mal consejo, no que te quedes sin agua caliente.

Fuentes para verificar

Veredicto

Si tienes PVPC y termo eléctrico, esta es una de las automatizaciones más útiles que puedes montar en Home Assistant: un enchufe de 20 €, una regla y te olvidas. La capa de IA es el extra que hace que toda la casa sepa cuándo conviene poner la lavadora, sin abrir ninguna app. Para alguien que empieza, es un buen segundo proyecto en cuanto Home Assistant ya funciona. Si tienes tarifa de precio fijo, sáltatelo.