Por qué esta hora cuesta lo que cuesta

Cada cifra de coste en RBgrid sale de la misma cadena corta: la energía medida, el periodo de 15 minutos en el que cayó, la zona tarifaria vigente para ese periodo y tus cargos e IVA encima. Nada se promedia a lo largo del día y nada se prorratea.

Esta página es la cadena completa, de principio a fin. Es la página que hay que leer cuando una cifra sorprende: una hora barata que parece cara, una hora con energía que no usaste en ese momento o un total que no coincide con el de tu suministrador.

Dónde está cada pieza: el plan se construye en Tariffs, el resultado se lee en Economics y los registros se guardan en History.

La cadena, paso a paso

  1. El módulo mide. Un módulo rbAmp cuenta la energía en sus propios contadores, en su propia placa. El hub los lee; no integra la potencia para obtener energía por sí mismo, así que una lectura perdida no inventa ni pierde kWh.
  2. El hub cierra un periodo de 15 minutos. Los periodos terminan en cada límite de periodo según el reloj del hub. Cuando tu zona tarifaria cambia a mitad de un periodo, el hub también cierra el periodo en ese instante, de modo que ningún periodo abarca dos precios.
  3. El periodo recibe una zona: la zona vigente para la hora propia del periodo. Este es el paso del que salen la mayoría de las sorpresas y el que tiene más reglas; todas están en Cuando no había reloj ni enlace más abajo.
  4. El periodo recibe un precio. En un plan fijo es el precio de compra de la zona, más los cargos por kWh del plan, más IVA. Con precios dinámicos activados, el precio lo proporciona tu proveedor para ese mismo periodo, y si los cargos del plan se suman encima depende del tipo de fuente que uses. Los dos casos están en La fórmula.
  5. La exportación se valora por separado, al precio de venta de la zona, y nunca se compensa contra el coste. Véase La exportación no es un descuento.
  6. Los periodos se suman en la hora, la hora en el día, el día en el mes natural y el mes en el año. Cada nivel es la suma del inferior; ningún nivel se recalcula a partir de un promedio.
  7. Lo que queda es "unmetered": el punto de suministro menos los puntos que mides. Véase Sin medir, y puntos dentro de puntos.

La fórmula

Para cada punto de medición y cada periodo:

cost = kWh × the period's buy price

Todo lo interesante está en cómo se obtiene ese precio de compra, y hay dos casos.

En un plan fijo

buy price = ( zone buy price + energy tax + grid fee + renewable levy ) × (1 + VAT% / 100)

Los tres cargos por kWh son del plan: se aplican en todas las zonas. Los cargos fijos mensuales o anuales no se incluyen en ninguna cifra de RBgrid; aquí los costes son solo por energía, que es el motivo habitual por el que el total mensual queda por debajo de tu factura.

Con precios dinámicos activados

Aquí el tipo de fuente determina cuánta parte de la cadena ya está dentro del número que te han dado.

Una fuente spot publica un precio mayorista, así que a ese precio se le aplican tu contrato y tu plan:

buy price = ( spot × factor + markup
              [ + the zone rate, if "zones stack" is on ]
              + energy tax + grid fee + renewable levy ) × (1 + VAT% / 100)

Una fuente all-in publica el precio minorista que realmente pagas, así que no se añade nada:

buy price = the provider's price

⚠️ Cuál de las dos sea tu fuente determina todas las cifras de coste de la aplicación. Un precio all-in ya contiene los impuestos y el IVA. Si se trata como precio spot, cada uno de esos cargos se aplica una segunda vez y las cifras salen visiblemente altas. En un proveedor de red, el hub fija la clase y tú la lees: una fuente all-in aparece con · all-in en la lista de proveedores y en la línea de la fórmula. En Home Assistant la clase la eliges tú: What Home Assistant sends. Si tus costes parecen inflados aunque el precio en sí parezca correcto, esto es lo primero que hay que revisar.

El precio propio de cada periodo, y de qué fuente procede, se conserva 40 días y se puede descargar, de modo que una cifra que leas más tarde se puede rastrear hasta el precio que la produjo. Véase Where your price comes from.

Ejemplo: un precio dinámico, dos periodos de una hora

Una fuente spot, un contrato con factor 1.0 y un markup de 0.01, un grid fee de 0.05 por kWh y VAT del 20 %.

Energía Precio spot de ese periodo Coste
0.5 kWh, 14:00-14:15 0.22 0.5 × (0.22 + 0.01 + 0.05) × 1.20 = 0.168
0.5 kWh, 14:15-14:30 0.09 0.5 × (0.09 + 0.01 + 0.05) × 1.20 = 0.090

El mismo medio kilovatio-hora, con quince minutos de diferencia, cuesta casi la mitad, y el total de la hora es la suma de sus cuatro periodos, no el precio medio de la hora multiplicado por su energía. Esa diferencia es precisamente la razón por la que los costes se calculan por periodo.

Ejemplo: un plan de día y de noche

Dos zonas, Day de 07:00 a 23:00 a 0.30 y Night de 23:00 a 07:00 a 0.15 por kWh, un Grid fee de 0.05 por kWh y VAT del 20 %.

Energía Zona Coste
2 kWh a las 14:00 Day (2 × 0.30 + 2 × 0.05) × 1.20 = 0.84
2 kWh a las 02:00 Night (2 × 0.15 + 2 × 0.05) × 1.20 = 0.48

Los mismos 2 kWh cuestan menos de noche porque el precio de compra de la zona es más bajo; el cargo y el IVA se aplican en ambas zonas.

Un periodo se valora por su propia hora, no por la hora en que se procesó. Eso se cumple cuando un periodo llega tarde, cuando el hub estaba apagado y cuando procede de un nodo remoto. Lo que cambia es qué zona le corresponde a un periodo cuando su propia hora no se puede conocer.

  • Un periodo procesado tarde conserva su hora y su zona propias. Desde v1.1.7 esto es así incluso cuando el hub lo registra minutos u horas después: un periodo tardío no se valora con la zona que esté vigente en el momento de registrarlo.
  • Un plan tarifario nuevo se aplica de una sola vez. El cálculo nunca ve un plan a medio cargar, así que ningún periodo se valora con una mezcla de tarifas antiguas y nuevas. Un plan con más zonas de las que admite el hub se rechaza por completo en lugar de cargarse en parte.
  • El reloj aún no está puesto (un hub encendido sin internet): los periodos se valoran con la zona por defecto del plan, en lugar de con la zona en la que habría caído un reloj sin ajustar. Los registros hechos antes de poner el reloj se marcan como "before sync" en History y quedan fuera de los gráficos.

Sin reloj puesto tampoco se puede asociar un periodo con el de un proveedor, así que un precio dinámico no se usa en absoluto: la zona por defecto del plan lo valora. Esos periodos tampoco tienen ninguna fila en el registro de precios: el hueco en el registro es la forma de reconocerlos.

  • El hub estuvo apagado más de un día. La energía que los módulos contaron mientras tanto no se descarta: se acredita a la hora en que el hub volvió, porque su hora dentro del corte no se puede conocer. En el firmware v1.1.8 esa energía se valora a la zona por defecto del plan. El registro lleva una nota propia en History: "includes energy from a break in measurement, counted in this hour".

⚠️ Una hora así contiene energía que no se usó en ella. Los kWh son reales; el dinero es aproximado: el hub no puede saber qué tarifa se aplicó durante el corte. Si el corte atravesó una franja barata, el coste sale más alto de lo que habría sido.

Con precios dinámicos activados, ese periodo se valora en dos partes, y saber esto es lo que evita leer mal el registro. La energía medida después de que el hub volviera usa el precio propio del periodo, el de mercado, si hay un precio que lo cubra. La energía contada durante el corte usa la zona por defecto del plan, porque su precio real es desconocido (una tarifa por defecto negativa se trata como cero). El dinero del registro es la suma de ambas partes.

El registro de precios muestra el precio propio de ese periodo, y no la tarifa a la que se valoró la parte del corte. Por eso, un periodo cuyo dinero parece alto frente al precio del registro no es una contradicción: parte de su energía nunca se valoró a ese número.

  • Un nodo remoto cierra sus periodos de 15 minutos según su propio reloj y los conserva hasta que el hub los confirma; así, un periodo del nodo se valora según el periodo que cerró el nodo, no según la hora en que llegó al hub. Desde el firmware de nodo 1.5, el nodo conserva unos cinco días de periodos en su propia memoria flash. → Remote nodes
  • Un periodo de nodo de más de 15 minutos, es decir, energía que un nodo contó antes de tener el reloj del hub, se conserva en lugar de descartarse (v1.1.8). Va a la hora de ese periodo y lleva la marca de corte.
  • Una entrada de nodo sin módulo de tensión no registra energía en absoluto (v1.1.8). El hub no convierte corriente en energía usando una tensión nominal, porque eso no sería energía medida; la hora queda sin datos para ese punto. Su potencia en vivo sí se muestra, y esa cifra sí es una estimación a partir de la tensión nominal: sirve para observarla, no para facturar con ella.

La exportación no es un descuento

La energía exportada se valora a un precio de venta —el de la zona, o el ratio de venta del plan × el precio de compra— y no se aplican impuestos, cargos ni IVA. El valor de la exportación se guarda junto al coste, no se resta de él. Economics muestra ambos, además de Net cost (coste − valor de exportación) y Net energy (importada − exportada).

Si tu contrato no paga nada por la energía exportada, los precios de venta deben ser 0: el hub valora las exportaciones tanto si net metering está activado como si no. Cómo configurarlos, y el crédito en kWh encima, están en Tariffs y Economics.

Sin medir, y puntos dentro de puntos

Unmetered es lo que mide el suministro menos lo que cuentan tus puntos medidos: los circuitos que no has pinzado. Es una resta, así que cualquier cosa contada dos veces la distorsiona.

Para eso sirven los puntos dentro de puntos (v1.1.8): un cargador dentro de un subcuadro medido puede marcarse como medido dentro de ese subcuadro. Los totales propios del hub no cambian —se toman en el suministro—, pero la cifra sin medir deja de restar dos veces la carga anidada. Sin ello, un subcuadro y una carga dentro de él cuentan ambos contra el suministro, y la cifra sin medir sale más baja de lo real, a veces negativa.

⚠️ Un punto en el suministro, y ninguna carga contada dos veces. Un punto de subcuadro y un punto dentro de él son correctos solo cuando el interior está marcado como interior. → Points

Qué revisar cuando una cifra parece errónea

Se aplicó la zona equivocada

  • Revisa el reloj y la zona horaria del hub: mientras no esté puesto el reloj, los periodos van a la zona por defecto. → Time
  • Donde las zonas se solapan, gana el tipo de zona de mayor prioridad, y una zona Weekend gana solo los sábados y domingos. Abre The week by zones en Tariffs para ver la zona de cada hora y qué horas caen en la zona por defecto.
  • Comprueba que la zona está On y que sus Days incluyen el día en cuestión.

Una hora contiene energía que no se usó entonces

  • Mira la calidad del registro en History: una hora marcada es una que el hub te señala, no un error silencioso. Una hora de corte se valora a la zona por defecto por diseño.
  • Un nodo remoto que estuvo fuera de alcance transmite sus periodos con retraso; caen en las horas a las que pertenecen, así que una hora puede ganar energía después de que la hubieras consultado por primera vez. → Remote nodes

El coste es cero

  • Los precios de compra de las zonas son 0, o el punto no midió energía en ese periodo.

Todas las cifras de coste son muy altas, y el precio en sí parece correcto

  • Una fuente all-in se está tratando como spot, así que los impuestos y el IVA del plan se suman a un precio que ya los incluía. Lee la clase de tu fuente en la lista de proveedores (una all-in muestra · all-in); si Home Assistant envía el precio, revisa What Home Assistant sends, que es el único lugar donde la clase es tuya. → Where your price comes from

Todas las cifras de coste son demasiado bajas, o más bajas que en la aplicación de mi suministrador

  • Es lo contrario: un precio spot sin contrato detrás. Un número mayorista no es uno minorista. Revisa factor y markup, y que el plan que hay detrás lleve tu impuesto de energía, tu cargo de red, tu tasa renovable y el IVA.

El coste es correcto, pero el precio no es el que veo en mi suministrador

  • Lee el registro de precios de esos periodos: guarda el precio aplicado y de dónde procede. Una entrada plan significa que ningún precio de mercado cubría ese periodo, así que la tarifa de la zona lo valoró; es un comportamiento correcto, y un número distinto.

El dinero de un periodo no coincide con el precio que muestra el registro para él

  • Dos casos, y ambos son por diseño. El periodo lleva una marca de corte: parte de su energía se contó durante una interrupción y se valora a la zona por defecto del plan, que el registro no muestra (véase Cuando no había reloj ni enlace). O el periodo no tiene ninguna fila en el registro: se registró antes de poner el reloj y lo valoró la zona por defecto.

Un periodo costó menos que nada

  • El precio de mercado era negativo y tu contrato lo traslada, así que el hub registró un coste negativo. Si el tuyo no lo hace, configura un buy floor (suelo de compra).

Mis totales por hora difieren de los de mi suministrador en una cantidad pequeña y constante

  • Si tu contrato liquida por hora mientras el hub valora por periodo de 15 minutos, cada hora quedará ligeramente desviada en ambos sentidos. La opción hourly mean factura cada periodo al precio medio de la hora.

El mes no coincide con mi factura

  • Los cargos fijos mensuales no están incluidos en ninguna cifra de RBgrid (véase La fórmula).
  • Los meses son meses naturales en la zona horaria propia del hub.
  • El valor de la exportación no se resta del coste aquí; tu suministrador puede compensarlos.
  • Los circuitos sin medir no están en el coste de ningún punto. Compara tu factura con el punto de suministro, no con la suma de las líneas.

Las cifras cambiaron tras un reinicio

  • Un día reconstruido a partir de sus horas se marca como "recomputed" en History; el valor es la suma de los registros que sobrevivieron, y el hub lo dice en lugar de suavizarlo.

Siguientes pasos

  • Tariffs - construye el plan: zonas, cargos, IVA y precios de venta.
  • Where your price comes from - el proveedor, el respaldo, tu plan como alternativa y el registro de qué precio aplicó a cada periodo.
  • Economics - coste, valor de exportación, neto y el balance entre la entrada y las líneas.
  • History - los registros en sí, y la columna de calidad que explica un periodo marcado.