Precios dinámicos de la electricidad en Home Assistant: por qué tu cifra de coste se desvía y cómo mantener el precio junto al kWh

  • Probado con el firmware v1.2.1
  • Primeros pasos

Si su contrato sigue el mercado, probablemente le haya pasado esto. El panel de energía muestra un coste de ayer. Lo mira de nuevo un día después y ya es otro. O una hora acumula un pico de energía que nadie consumió, valorado al precio que tuvo esa hora.

No se lo imagina, y no es el único:

"Pero por alguna razón el panel siempre calcula más de lo que debería." — odechr, hilo del foro de Home Assistant 496113

"mostrando un coste/ingreso mucho mayor de lo realista." — andreaskin, hilo 647174

No es un error que pueda encontrar en su propia configuración, y por eso sobrevive a tantas tardes buscándolo. Es un desajuste entre dos resoluciones.

El mecanismo, en un párrafo

Home Assistant calcula el coste de la energía a partir de sus estadísticas a largo plazo, que son horarias. Para una tarifa fija eso es exactamente correcto: una hora a una tarifa es una hora a una tarifa. Para un contrato que cambia de precio durante el día, la hora es el problema, y cuando algo interrumpe el registro, la hora pasa a ser todo el problema.

La descripción más clara la escribió alguien a quien le pasó:

"Simplemente está sumando toda la energía que faltaba a la hora en que el sistema volvió a encenderse." — anon11644107, hilo 965144

Así que: Home Assistant se reinicia, o un sensor se desconecta y vuelve, y el contador da un salto. La energía del hueco es real (su contador la midió), pero llega de golpe, cae en la hora del reinicio y se valora al precio de esa hora. Si el hueco abarcó las horas nocturnas más baratas y usted volvió a la hora del desayuno, acaba de comprar la noche al precio de la mañana.

Dos gráficos de barras sobre el mismo eje de 00:00 a 09:00. Arriba, «Lo que realmente ocurrió»: cuatro barras verdes pequeñas de 1.5 kWh a las 02:00, 03:00, 04:00 y 05:00, agrupadas como «6 kWh a precio de noche», y una barra oscura de 0.4 kWh a las 08:00 marcada «a precio de mañana». Abajo, «Lo que registró el panel»: nada entre las 02:00 y las 05:00 (un contorno vacío discontinuo marcado «hueco, sin datos») y una barra oscura alta de 6.4 kWh a las 08:00, con una flecha desde el hueco hasta ella que dice «registrado cuando el registrador volvió». Debajo, en su totalidad: «6.4 kWh, todo al precio de la mañana»

La misma forma aparece de otras maneras. Una integración de sensor puede multiplicar por mil tras un reinicio; ese es un problema abierto en el núcleo de Home Assistant, #136428, reportado así:

"Tras un reinicio de Home Assistant, el valor de una integración de sensor se multiplica por 1000" — roumano, core #136428

Y un dispositivo que pierde la alimentación puede poner su propio contador a cero, y el lado receptor lo interpreta como consumo:

"Esto hace que nuestros Shelly 3EMs se reinicien y entonces HA registra un pico enorme de 1000's de kWh consumidos." — msa, hilo 479362

Nada de esto significa que Home Assistant esté mal construido. Las estadísticas horarias son un diseño razonable, y los remedios que comparte la gente —plantillas de disponibilidad, corregir filas en Developer Tools → Statistics, elegir el método left en una Riemann integration— funcionan. Son simplemente muchas tardes para una cifra que no debería necesitar defensa.

Qué cambia cuando el precio se aplica donde se mide la energía

La alternativa no es un panel mejor. Es adelantar la decisión un paso, al dispositivo que hace la medición.

Un hub RBgrid determina un precio para cada período de 15 minutos: a partir de la fuente de precios del mercado diario (day-ahead price) que elija para su zona, de una fuente de respaldo si la primera no tiene nada para ese período, y en otro caso a partir de su propio plan tarifario. Su contrato se aplica encima: un factor, un recargo (markup), y después los impuestos por kWh, el cargo de red (grid fee), el cargo renovable (renewable levy) y el IVA (VAT) de su plan; salvo que la fuente ya publique el precio de venta al consumidor, en cuyo caso no se añade nada y nada se cuenta dos veces.

Después hace la parte que importa para este artículo: guarda el precio que usó junto a la energía a la que lo aplicó, con la fuente de cada período, y lo conserva durante 40 días.

De ello se derivan tres consecuencias, que son todo el argumento:

  • Un hueco sigue siendo un hueco, en el hub. El hub sigue midiendo y calculando el coste mientras Home Assistant se reinicia, porque ninguna de las dos tareas vive en Home Assistant. Su propio registro no tiene ninguna hora equivocada, y no hay que reconstruir nada después. Lo que muestra entonces Home Assistant depende de cómo llegan los datos del hub hasta él, y eso es la siguiente sección.
  • Cada precio va unido a su propia energía. El coste de 02:15–02:30 se calculó con el precio de 02:15–02:30, en su momento, y esa pareja queda escrita. No depende de la hora en la que se lea la cifra más tarde.
  • Puede comprobarlo. No se trata de «fiarse de la cifra», sino de leer la fila.

Las estadísticas de Home Assistant siguen siendo horarias. Este artículo no dice lo contrario, y nada de lo aquí descrito cambia lo que almacena el panel de energía. El dinero de los períodos de 15 minutos vive en el hub y en su propio registro; lo que llega a Home Assistant es la vista horaria que siempre ha mantenido.

Qué llega realmente a Home Assistant, y por qué ruta

El registro del hub y el panel de energía son cosas distintas, y el segundo depende de cómo los conectó. Importa más de lo que parece, porque decide si la hora del reinicio sigue mostrando un salto en su pantalla.

  • Si el panel de energía toma su coste de la entidad de coste propia del hub, la hora que muestra es la suma de los períodos que el hub valoró uno a uno, no un promedio horario aplicado a un bloque de energía.
  • Si mantuvo su propio sensor de precio encima de la energía del hub, Home Assistant la valora como siempre, con la resolución que siempre tuvo. El registro del hub y el panel discreparán, y el registro es el que tiene los períodos.
  • Un reinicio sigue interrumpiendo lo que Home Assistant registra, haga lo que haga el hub entretanto. Su energía y su dinero están intactos en el hub. Que el hueco se repare dentro de Home Assistant depende de la ruta, y de un ajuste, que es la parte que conviene conocer.

La importación de estadísticas horarias, y el ajuste que nadie menciona

La integración de RBgrid pertenece a una de las dos formas de ejecutar el hub: el hub grabado como dispositivo ESPHome. Si su hub ejecuta el firmware independiente y llega a Home Assistant por MQTT, no hay nada que importar ni que activar. Pasar de una a otra es volver a grabar el firmware, no un ajuste, así que es una elección que se hace al principio y no un interruptor que se cambia después.

Por esa ruta, cada hora la integración pide al hub su propio libro horario y lo escribe en las estadísticas a largo plazo de Home Assistant como un segundo conjunto de filas, junto a las que Home Assistant ya guarda para sus sensores en vivo: cada hora con la energía y el coste que el hub calculó para esa hora. Funciona sola, una vez por hora, recuperando desde donde se quedó, de modo que una pausa de días se rellena hora a hora en lugar de volcarse de golpe; el botón Import into HA statistics en la History tab del panel ejecuta esa misma pasada de inmediato, en lugar de ser un mecanismo aparte. En los selectores propios de Home Assistant, las filas aparecen con nombres como RBgrid Hub Main energy in y … cost.

⚠️ Por defecto, su panel de energía no mira esas filas. El asistente de configuración de la integración conecta el panel a los contadores en vivo, y en ellos un reinicio sigue mostrando el conocido escalón en la hora en que Home Assistant volvió. Las filas importadas, que no tienen hueco, están disponibles en los ajustes de origen del panel de energía: hay que elegirlas.

Así que la forma honesta tiene tres capas: el registro propio del hub nunca tiene una hora equivocada; las estadísticas importadas dan a Home Assistant una copia de ese registro sin huecos; y el panel muestra la que usted le indique.

Cómo comprobar su factura, línea a línea

Esta es la parte que conviene hacer una sola vez, para que la próxima vez que una cifra parezca incorrecta sepa dónde mirar.

  1. Abra la página Prices del hub y vaya a Applied prices.
  2. Elija el día que quiera. La tabla tiene una fila por cada período de 15 minutos cerrado: Period · Buy · Sell · Source.
  3. Descargue el CSV. Las columnas son la hora de inicio en la hora propia del hub, el precio de compra todo incluido (all-in price), el precio de venta y la fuente.
  4. Compare un tramo que le interese con la factura de su suministrador.

La columna Source es la que más gente omite y luego necesita. Indica de dónde viene el precio de cada período: su fuente principal, su respaldo, un precio enviado desde Home Assistant, la media de la hora si su contrato se liquida por horas, o su plan tarifario cuando ninguna fuente cubría ese período. Una fila con plan no es un error: significa que no había ningún precio de mercado vigente para ese período, así que lo valoró la tarifa de la zona, lo que es otra cifra obtenida correctamente.

Un día puede tener menos de 96 filas. Eso no es un precio perdido: el registro guarda los períodos en los que el hub estaba funcionando, así que un reinicio, una actualización o un corte de corriente deja un hueco, y el hueco significa que el hub no estaba.

Lo que esto no hace

Conviene decirlo claramente, porque una página sobre precios es el lugar más fácil para dar a entender más de lo que es cierto.

  • No coincidirá exactamente con la factura de su suministrador. Nosotros medimos en sus pinzas; ellos miden en su contador. El registro le dice qué períodos costaron cuánto y por qué, no lo que dirá su factura.
  • No conmuta nada. El hub puede avisarle —y avisar a una automatización— de que un tramo es barato, mediante una notificación. Lo que pone en marcha el lavavajillas es Home Assistant, un desviador o usted.
  • No cambia la resolución de Home Assistant. Vea la nota anterior; conviene repetirlo porque es lo que la gente espera.
  • No es un veredicto sobre su contrato. Si un contrato de precio dinámico le conviene es algo que decidirá usted con su suministrador.

Dónde leer más

Las citas se reproducen de hilos públicos del foro de Home Assistant y de incidencias de GitHub, con sus autores y números de hilo, para que pueda leer cada hilo completo, incluidas las partes que no coinciden con este artículo.