Vamos a usar nuestro enchufe inteligente Zigbee en Home Assistant con datos de consumo en tiempo real para calcular el coste, usando la tarifa PVPC… con Paciencia
En el caso de mercado libre, os hemos preparado otra guía paso a paso para mostrar en tiempo real el coste asociado a esta tarifa.
Tabla de contenidos
Precio consumo enchufe inteligente en Home Assistant.
Vamos a ver un uso muy útil de nuestro sistema Home Assistant, que va a requerir definír un template y un utility meter. Tendremos por tanto el precio acumulado del consumo de un enchufe inteligente.
Basado en el post anterior donde habilitamos a Home Assistant para empezar a emparejar los distintos dispositivos. No es necesario, sin embargo, que el protocolo sea Zigbee, pero os dejo unas buenas ofertas de enchufes y puros medidores ideales para este tema y otras opciones para el necesario coordinador que nos evitará tener una pasarela para cada marca:
Además de estas opciones, os pongo enlace a una superoferta de pack Blitzwolf de su modelo con medidor de consumo integrado BW-SHP13:
Y si queréis conocer más sobre amortizar vuestro Home Assistant no os perdáis estas ideas.

También hablaremos de la segunda integración necesaria que nos dará el precio regulado para el pequeño consumidor eléctrico PVPC y por tanto nos servirá para calcular el coste del consumo del enchufe inteligente en Home Assistant de manera exacta para el consumidor que conectemos a él (ver en tiempo real el coste de un ordenador, una TV os va a sorprender).
Los equipos que menos os pensáis son los que conllevan un coste más elevado, por ejemplo una TV grande puede llegar a demandar más de 100W, y hay días que casi no se apaga.
Este tipo de cálculos serán válidos siempre y cuando el procedimiento y los parámetros de cálculo del PVPC no varíe. En cualquier caso, las modificaciones que tengamos que realizar para tenerlo al día serán muy fáciles con solo cambiar la fórmula.
Como de costumbre vamos a numerar los pasos:
Paso 1. Precio consumo enchufe inteligente en Home Assistant. Instalación de integración precio PVPC
El mercado eléctrico español es bastante complejo, y en el extremo del mismo nos encontramos nosotros, los consumidores. No entramos en cómo se decide el precio del Mwh, ni de los mercados. Lo que nos interesa por ahora es que el consumidor puede elegir entre tener una tarifa regulada con un Precio de Venta al Pequeño Consumidor (PVPC tarifa regulada) o bien por una tarifa libre.
En líneas generales puede suponer un ahorro considerable en la factura de la luz el optar por PVPC hoy, sobre todo si vuestras puntas de consumo son en horas valle (horas más baratas). En junio de 2021 el gobierno ha realizado un cambio que nos discrimina según las horas del día en 3 períodos y según los días de la semana y festivos. Esta guía ha sido actualizada para reflejar dicho cambio.
Como no puede ser de otra forma, el precio al que nos venden la electricidad en cada hora del día es público, pero no queremos estar cada hora mirando nosotros dicho precio. Queremos que nuestro sistema se conecte a la página de Red Eléctrica y lea el precio de cada tramo de pvpc hoy.
Para poder realizar este paso previo, es necesario que instalemos una integración que podréis buscar accediendo por el menú Configuration > Integrations y buscando PVPC:

La documentación oficial la podéis encontrar en https://www.home-assistant.io/integrations/pvpc_hourly_pricing
No tiene más historia. Para verlo en nuestro panel, podemos editar el panel que queramos en Lovelace con la opción de su menú (los 3 puntos)

Le damos a la opción ADD CARD, y elegimos el tipo de tarjeta Entity especificando el nombre de nuestro nuevo sensor pvpc:

Nos tiene que quedar algo parecido a esto y podemos graficar el precio de cada hora del día pinchando en el valor:


Vemos en el ejemplo que el precio desde las 15:00 a las 16:00 del 22-abr-2021 es de 0.1486 €/kWh , pero este como veremos no es el precio final, pues hay que añadir impuestos y distintos pagos, y por supuesto multiplicar por nuestra energía consumida durante ese período.
Paso 2. Precio consumo enchufe inteligente en Home Assistant. Creación de Templates y Contadores
En este paso vamos a trabajar enteramente con el editor incluido en Home Assistant para añadir en el fichero configuration.yaml
De paso os voy a indicar cómo haremos primero una copia de seguridad completa de todo nuestro sistema, aunque en este caso estemos haciendo cosas básicas normales, pero así vamos sobre seguro.
Para realizar la copia vamos al menú Supervisor en la opción Snapshots (ahora llamada Backups). Desde la versión 2021.12 se accede desde el menú Configuration > Add-ons, Backups & Supervisor. Si le dejamos el nombre en blanco el sistema lo denominará con la fecha actual:

Luego podemos pinchar en la copia creada y descargarla para su archivado:

Bien, sigamos con la modificación de nuestro fichero configuration.yaml
Para poder incluir algún cálculo y convertirlo en sensor, crearemos el apartado template, tal y como se expone en el siguiente código, y justo debajo sensors: con el nombre que queramos darle al nuevo sensor calculado (en nuestro caso blitzwolf_1_energy_cost_hour:
El formato de configuración usado es bastante potente, pero desde luego nada amigable.
Si os confundís en algún espacio, o se introduce una tabulación dará error, y os váis a volver locos. Yo os recomiendo que copiéis el códio tal cual, uséis un editor tipo notepad++ en UTF-8 y se modifique con cuidado de no quitar ningún espacio antes de pegarlo en vuestro fichero configuration.yaml, teniendo en cuenta que si ya hay una sección sensors debajo de platform: template, no tendréis que crearla de nuevo:
- platform: template
sensors:
blitzwolf_1_energy_cost_hour:
friendly_name: "blitzwolf_1_Coste (current hour)"
unit_of_measurement: '€'
value_template: "
{%set IVA = 1.10 |float %}
{%set imp_elec = 1.05112696 |float %}
{{ (( states('sensor.blitzwolf_1_hourly_energy') | float * (states('sensor.pvpc') | float) ) * imp_elec * IVA ) | round(3) }}"
Si lo analizáis no es muy complicado de entender:
Para tener el término variable total, a la parte de peajes tendremos que sumar el coste de la energía (los kWh consumidos cada hora por el precio del kWh que nos da nuestro sensor PVPC). Todo aplicando un IVA del 10% por cortesía del Gobierno hasta que lo cambie de nuevo al 21% y un impuesto sobre la electricidad de 5,112696 %.
El precio publicado de PVPC ya incluye el término de energía de los peajes de transporte y distribución (FEUP), el término de energía activa consumida de los cargos (FEUC), el coste de producción de la energía y otros costes asociados (TCU).
Como véis si hay alguna variación es fácil modificar el template.
Con esto tendremos calculado el coste del término variable de nuestra factura. Hay otros apartados fijos en función del nº de días (potencia contratada, alquiler contador, …)
No tiene sentido sumar la parte fija a un único consumidor. Sí sería interesante si estáis calculando el consumo total de vuestra casa, por ejemplo con un Shelly EM.
- Shelly 20210 DIY
No cierres todavía el editor. Si te fijas, hacemos uso de un contador llamado sensor.blitzwolf_1_hourly_energy para el cálculo.
Esta es su configuración en el fichero configuration.yaml, y recordad de nuevo qye si ya hay una sección utility_meter, esa línea no hay que copiarla, pero sí debajo nuestas definiciones de contadores. Ya que estaba se ha configurado también energía diaria y mensual:
utility_meter:
blitzwolf_1_hourly_energy:
source: sensor.enchufe_blitzwolf_1_energy
cycle: hourly
blitzwolf_1_daily_energy:
source: sensor.enchufe_blitzwolf_1_energy
cycle: daily
blitzwolf_1_monthly_energy:
source: sensor.enchufe_blitzwolf_1_energy
cycle: monthly
blitzwolf_1_monthly_energy_cost:
source: sensor.blitzwolf_1_energy_cost_hour
cycle: monthly
Nos queda resetear nuestro sistema para que acepte lo que hemos añadido. Como siempre recuerda chequear antes. Lo explicamos en su momento al final de este otro post: https://www.pacienciadigital.com/integraciones-en-home-assistant-dispositivos-en-red/
En Lovelace, podremos por fin inserta el recién creado sensor (blitzwolf_1_monthly_energy) junto con la carga, voltaje, potencia, etc:

Ha costado un poco llegar hasta aquí. El poder tener un cálculo exacto del consumo nos puede ayudar a ahorrar bastante dinero al año, e incluir algún enchufe más solo es cuestion de emparejarlo y copiar/pegar en el fichero de configuración renombrando lo que sea necesario.
- Shelly 20210 DIY
Gestión de energía integrado
Tras la versión 2021.8.4 tenemos la oportunidad de gestionar también la energía a través de un componente específico Energy:

Integra un bonito dashboard con un buen diseño y posibilidad de incluir generación propia:

Si has leído el post pero todavía no estás muy metido en este mundo, no dejes de repasar la integración Zigbee y conocer más dispositivos Zigbee esenciales.
Y por último os dejo un listado de otras entradas que pueden interesar:
- Protocolo Matter. La solución definitiva a la proliferación de protocolos. Larga vida a Matter !!
- Uso de calendario local con Home Assistant
- Cómo optimizar la base de datos sqlite de Home Assistant
- Aliexpress tiene los componentes más baratos para hacernos con un ejército de dispositivos inteligentes. Nuestra casa domótica a precios asequibles
- Accede desde cualquier lugar a tu hogar inteligente con DuckDNS y Home Assistant. Y totalmente gratis !!
Muy buenas. Después de leer el post, me queda una duda: el impuesto sobre la electricidad está incluido?
Gracias por la aportación!
Hola Fernando, el impuesto sobre la electricidad efectivamente no estaba incluido.
Es un porcentaje que se aplica tanto a la parte fija (por potencia contratada) como a la variable (por energía consumida). Lo añado al template para tenerlo en cuenta aunque es poco el importe final en el mes.
De camino pongo el IVA también como una variable para cuando nos vuelva a subir que se vea claramente dónde tocar,jeje.
Gracias por el apunte.
Muchas gracias por la actualización. Tengo varios contadores con PVPC y así es mas preciso.
Hola, muchas gracias por el post, me ha encantado. Sin embargo hay un punto que no me queda claro, y es que tengo entendido que los peajes del término de la energía ya están incluidos en el sensor.pvpc. Si fuese así, el código del «platform:template» se simplificaría mucho.
Hola Alberto. El precio publicado de PVPC efectivamente incluye el término de energía de los peajes de transporte y distribución (FEUP), el término de energía activa consumida de los cargos (FEUC), el coste de producción de la energía y otros costes asociados (TCU). Lo acabo de modificar anotando este punto en la explicación y en efecto queda mucho más limpio el template. Gracias por la apreciacion y un saludo.
Hola, me ha parecido superinteresante tu articulo, ademas de practico. Tengo un shelly EM para controlar el consumo total de mi casa, (tengo pvpc + fotovoltaica con compensacion de excedentes). Como podria hacer para que me calculara el recibo aproximado teniendo en cuenta los excedentes??
Gracias por compartir tus conocimientos con todos.
Gracias por el comentario. Desgraciadamente desconozco el mecanismo de compensación para poder ayudarte. De todas formas, el cálculo debería poder deducirse de la factura que incluirá dicha compensación. Saludos.
Han incluido en la última actualización un módulo energía en el que puedes incluir un medidor tipo Shelly u otro para incluir la generación, realmente interesante.
Pues pinta bien, sí. He incluido una mención en el post. Lo iremos probando.
Buenas! Muy interesante. Estoy tratando de implementarlo en mi HA pero no me queda claro dónde se declaran las variables «imp_elec» e «IVA»
Muchas gracias!
Hola Iker, gracias por el comentario. Ya puedes verlo en el código de la entrada. Un saludo.
Muchas gracias por la respuesta! Y por el contenido de la web, +1 follower
Enhorabuena!! Muchísimas gracias por el trabajo compañero!!
Hola , muchas gracias por los tutoriales , son fantásticos para aprender,
estoy intentando crearme unos sensores de estos y tengo dudas
blitzwolf_1_hourly_energy:
source: sensor.enchufe_blitzwolf_1_energy
Este sensor con que dato lo sacas del blitzwolf? con el energy power? consumo en el acto?
Gracias
Hola. Gracias a ti, y me alegra que lo pongas en práctica. El sensor «sensor.enchufe_blitzwolf_1_energy» es el de la energía (kwh) no el de potencia. Lo que pasa es que el nombre que le ponen da lugar a confusión (energy power). Una vez los tengas funcionando también te puede interesar la entrada donde se analizan los datos, que es lo interesante: https://www.pacienciadigital.com/analisis-de-consumo-de-energia-home-assistant/
Hola, me encanta tu post, pero no tengo claro cual es el sensor energy, tengo el blitzwolf flasheado con tasmota, el sensor que me ofrece con la unidad kwh es: energia consumida hoy, ayer, total…. cual debo escoger? energy.today?
El comportamiento será correcto? ya que entiendo que en tasmota el energy.today va almacenando toda la energia que ha consumido ese enchufe durante todo el dia, así que no sé si será el correcto para calcular el precio de la energia por horas tal y como explicas en el post.
Hola David. Primero agradecerte que participes en los comentarios. En la definición del utility meter puede poner el sensor de energía total de tu blitzwolf. Lo que hará internamente es restar y proporcionar el consumo cada hora.
Buenas, que trabajo mas chulo, tan solo me queda una duda. Como controlas el periodo de facturacion, me explico, si creo ese template nos crea un sensor del gasto de los ultimos 30 dias? se podria hacer un sensor que llevase el gasto desde el dia que te facturan, creo que lo hacen cada 29 dias.
Saludos
Hola Antonio. Gracias por tu comentario. Hacer coincidir el periodo de facturación es casi misión imposible, sobre todo porque las comercializadoras hacen lo que quieren, o bien hay cambios en las bases de cálculo y te hacen una facturación parcial hasta una fecha determinada (como cuando cambiaron el IVA en junio-2021). Lo que sí puedes hacer fácilmente es incluir offset (mira la documentación de utility meter) al ciclo mensual para que resetee um día del mes distinto del día 1. Así lo tendrás más acorde con tu periodo de facturación si te suelen hacer el cierre alrededor de ese día.
Tienes razón, coincidiría el primer mes y luego nada…
He añadido el parametro offset: days: XX en el utility meter, a ver que tal.
Saludos y muchas gracias.
Muy buena entrada, gracias por compartir. Me estoy planteando ponerlo en marcha para la depuradora de la piscina. Para ello necesitaría almacenar, por ejemplo, las cuatro horas mas baratas del día.
Se puede sacar a través de aquí o irias a un script de python directamente ?
Saludos ¡
Hola Pascual, creo que la manera más directa es usando un atributo que viene con la integración PVPC (Next best at) y un template, pero no lo hemos probado.