Da dove l'hub prende il prezzo: sei fonti pubbliche, cosa coprono e cosa chiedono in cambio

  • Testato sul firmware v1.2.1
  • Intermedio

Lei ha inserito un prezzo spot in Home Assistant, ha puntato l'Energy dashboard su di esso, e la cifra è uscita sbagliata. Non di poco — abbastanza sbagliata da farle cercare l'errore nei suoi template.

L'errore di solito non è nei template. È che il prezzo che ha recuperato e il prezzo che paga sono due numeri diversi, e nella catena nulla le dice quale dei due sta tenendo in mano.

"L'Energy dashboard di Home Assistant, pur potente, presenta una difficoltà" — arva, thread 682847 del forum di Home Assistant

È l'apertura smorzata di un thread il cui autore ha poi scritto una propria integrazione. Questo articolo riguarda il passo prima: quale fonte di prezzo copre la sua zona, cosa le dà davvero e cosa chiede in cambio.

All'ingrosso o tutto incluso: se questo è corretto, quasi tutto il resto segue

Ogni fonte è di uno dei due tipi, e l'hub deve saperlo:

  • Un prezzo all'ingrosso (spot) è l'inizio di un calcolo, non la fine. È il prezzo all'ingrosso per il periodo. Quello che paga è questo, moltiplicato per un fattore (1.0 salvo che il contratto scali il prezzo di borsa), più il suo sovrapprezzo del fornitore per kilowattora (markup), più la tariffa di rete (grid fee), più imposte e oneri, e poi l'IVA (VAT) sul totale — ogni componente inserita senza IVA, perché l'IVA si applica una sola volta, sulla somma. Ogni campo monetario è per kilowattora, nell'unità principale della sua valuta: un sovrapprezzo di 2.5 centesimi si inserisce come 0.025, non come 2.5. L'hub converte da sé ciò che le fonti pubbliche indicano per megawattora; ciò che digita viene preso così com'è. Se inserisce una cifra che include già l'IVA, questa viene tassata due volte, ed è il modo più comune in cui una configurazione all'ingrosso risulta troppo alta. Un prezzo tutto incluso non viene mai ritassato. Se inserisce un prezzo all'ingrosso direttamente in un calcolo del costo, il risultato sarà troppo basso — finché non aggiunge le parti mancanti, e a quel punto l'aritmetica diventa una sua responsabilità.
  • Un prezzo tutto incluso (all-in price) contiene già tutto questo. È quanto il suo fornitore le fattura per quel periodo, imposte comprese. Se ci aggiunge il proprio sovrapprezzo, la cifra risulta troppo alta.

Entrambi i errori appaiono uguali dall'esterno: un costo che non corrisponde alla bolletta. La metà che si dimentica più spesso sono le parti non legate ai kWh, e non sono piccole:

"+1 per questo. Nel Regno Unito è praticamente standard anche questo" — thefunkygibbon, thread 330609

Quel thread riguarda la quota fissa (standing charge) — un importo giornaliero che non dipende da quanto ha consumato. Viene richiesta dal 2021.

Sull'hub il tipo è una proprietà della fonte. Se sceglie una fonte all'ingrosso, il fattore, il sovrapprezzo, la tariffa di rete, le imposte e l'IVA del suo contratto sono campi che compila una volta sola; se sceglie una fonte tutto incluso, il prezzo viene preso così com'è. In entrambi i casi l'hub calcola ogni periodo di 15 minuti con il prezzo di quel periodo, e conserva il prezzo accanto all'energia, così la cifra può essere ricostruita in seguito invece di essere ricalcolata.

⚠️ Perché conviene farlo giusto la prima volta. L'hub memorizza quale prezzo ha applicato, periodo per periodo — ma un prezzo già applicato è storia, non una formula da rieseguire. Home Assistant ha la stessa proprietà, e la gente la scopre a proprie spese:

"Sono quasi sicuro che in HA non ci sia modo di retrodatare le modifiche." — tinkergnome, thread 585379

Le sei fonti pubbliche

Fonte Tipo Risoluzione Aree Valuta
Energy-Charts (Fraunhofer ISE) all'ingrosso 15 minuti AT, BE, CH, CZ, DE-LU, DK1, DK2, FR, HU, IT-North, NL, NO2, PL, SE4, SI EUR
Nord Pool (portale dati non ufficiale) all'ingrosso 15 minuti SE1–4, NO1–5, DK1–2, FI, EE, LV, LT quella dell'area: SEK, NOK, DKK o EUR
Elpriset just nu (SE) all'ingrosso 15 minuti SE1–4 SEK
Hva koster strømmen (NO) all'ingrosso 1 ora NO1–5 NOK
EnergyZero (NL) tutto incluso 15 minuti NL EUR
Octopus Agile (UK) tutto incluso 30 minuti le 14 regioni GSP, da A a P GBP

Nessuna richiede un token o un account.

Una fonte tutto incluso riporta il prezzo al dettaglio di quel fornitore. Se il suo fornitore è un altro, quel numero non è il suo — invii invece il proprio prezzo da Home Assistant, come spiegato più avanti.

La risoluzione non è la fase di fatturazione. Un prezzo a 30 minuti o orario si applica a ogni periodo di 15 minuti al suo interno — quattro periodi condividono semplicemente un unico prezzo — quindi i costi vengono sempre calcolati per periodo di 15 minuti. E una fonte a 15 minuti non impone la fatturazione a 15 minuti: se la fatturazione avviene per periodo o sulla media dell'ora dipende dal suo contratto, e si imposta a parte.

⚠️ La valuta non viene mai convertita. L'hub non trasformerà SEK in EUR. Una zona la cui valuta differisce da quella del suo piano viene rifiutata al momento del salvataggio, e una fonte in un'altra valuta viene saltata invece di essere approssimata. Imposti prima la valuta del piano, poi scelga una zona che corrisponda.

Cosa chiede in cambio ciascuna

Pubblico non significa incondizionato. Ogni fonte porta la dicitura richiesta dalla propria licenza — ad esempio Bundesnetzagentur | SMARD.de / Energy-Charts (CC BY 4.0) — e l'hub la mostra nella pagina Prezzi. Quella riga non è decorativa: è la condizione alla quale i dati possono essere usati affatto. Energy-Charts viene fornito solo per le zone pubblicate sotto CC BY 4.0.

A chi spetta mostrarla lo decide chi mostra il prezzo. L'hub porta la citazione della fonte e il link ai termini accanto a ogni prezzo, quindi qualunque cosa mostri quel prezzo ha ciò che serve. L'app stessa dell'hub cita la fonte nella pagina Prezzi. Anche il pannello RBgrid in Home Assistant la mostra. Se costruisce un pannello proprio con i dati dell'hub, mostrarla spetta a lei — testo e link sono nel payload del prezzo proprio per questo motivo.

⚠️ Nord Pool si raggiunge tramite un portale dati non ufficiale, e l'hub lo dichiara dove indica la fonte. Non c'è alcun accordo di servizio: può cambiare o fermarsi senza preavviso. Lo usi consapevolmente e, dove esiste, gli affianchi una riserva — vedi il terzo passo più sotto; per FI, EE, LV e LT è l'unica fonte nell'elenco, quindi lì l'unica riserva possibile è un invio da Home Assistant.

Questa è anche la risposta onesta a «lavorate con il mio fornitore?» — l'hub non lavora con i fornitori. Legge i dati pubblici dei prezzi per un'area di mercato e vi applica il contratto che lei descrive. Una fonte nell'elenco è un'impostazione che lei ha scelto, non una relazione che qualcuno ha.

Se la sua zona non è nell'elenco

Allora la settima fonte è lei. Home Assistant — o qualunque client — può inviare i prezzi all'hub invece che l'hub li recuperi: fino a 200 periodi alla volta, conservati nel suo archivio. Indica se ciò che invia è all'ingrosso o tutto incluso, e da quel momento viene trattato esattamente come un fornitore di quel tipo.

È la via per un fornitore per il quale l'hub non ha alcuna fonte, e per un prezzo che calcola lei stesso. Nella build ESPHome Home Assistant compare tra le fonti fin dall'inizio; sul firmware standalone compare quando è arrivato un invio. In ogni caso i prezzi dinamici (dynamic price) restano disattivati finché non li attiva, e la fonte la sceglie lei — Home Assistant è un'opzione nell'elenco, non quella già scelta.

Quattro cose sull'invio è più facile saperle in anticipo che scoprirle:

  • Il tipo — all'ingrosso o tutto incluso — si dichiara una volta sola, nelle impostazioni dei prezzi dinamici, non con ogni lotto. Lo imposti in base a ciò che invia, poi se ne dimentichi.
  • Invia un lotto di periodi, ciascuno con un inizio e una fine. Il passo della sua fonte può essere di 15 minuti, 30 o un'ora; l'hub prezza ciascuno dei propri periodi di 15 minuti in base alla voce che lo copre.
  • Reinviare un periodo lo sostituisce. Stesso inizio, nuovo prezzo, e quello memorizzato viene sovrascritto — quindi per correggere un giorno basta reinviarlo corretto.
  • Le ore che non ha inviato non restano senza prezzo. Passano alla catena abituale: la sua fonte di riserva, se ne ha impostata una, altrimenti la tariffa di zona del suo piano. Il registro indica quale fonte ha coperto ciascun periodo, così nulla scompare in silenzio — viene semplicemente prezzato da un'altra fonte.

Quando un prezzo non arriva

Un mercato del giorno prima (day-ahead price) pubblica il giorno successivo una volta al giorno. Quella pubblicazione può ritardare, il recupero può fallire, la sua zona può mancare in una risposta. L'hub non rinuncia a un giorno in ritardo: continua a chiedere — ogni quindici minuti nella finestra iniziale, poi ogni ora finché il giorno manca — così una pubblicazione che arriva tardi la sera viene ripresa entro circa un'ora, e i periodi vengono riprezzati dalla fonte invece di restare sul piano. Per ogni periodo di 15 minuti l'hub risolve esattamente un prezzo, in quest'ordine:

fonte che cosa significa
1 Primaria il fornitore che ha scelto, per la sua zona
2 Di riserva facoltativa, deve essere un fornitore diverso; usata solo per i periodi che la primaria non copre
3 Il suo piano la tariffa di zona in vigore per quel periodo

Nulla viene mescolato: un periodo, un prezzo, una fonte — e la fonte è memorizzata con il periodo, così una cifra che legge la settimana prossima può ancora essere ricondotta a dove è nato il suo prezzo.

Prima di tutto, conta se una riserva le è disponibile. Dodici delle aree di mercato sopra sono coperte da due o più di queste fonti; quindici sono coperte da una sola, e lì l'unica seconda fonte è un prezzo che invia da Home Assistant. Trovi la sua zona prima di leggere il resto di questo paragrafo come un consiglio.

Dove esiste una riserva, vale i cinque minuti. Senza, subentra il piano. È un comportamento corretto — la sua energia viene comunque contata e calcolata — ma è un prezzo diverso, e i suoi costi per quel tratto non corrisponderanno al mercato.

Una riserva di tipo diverso è ammessa, e cambia ciò che deve compilare. Ogni periodo viene prezzato secondo la classe della fonte che l'ha effettivamente coperto, non secondo quella della primaria — quindi una primaria tutto incluso con una riserva all'ingrosso richiede comunque che compili le componenti del suo contratto, altrimenti i periodi della riserva escono come semplice all'ingrosso, cioè troppo bassi. Compilarle non costa nulla a chi usa un prezzo tutto incluso: una fonte tutto incluso ignora quei campi. Le uniche regole sono che la riserva sia un fornitore diverso e che entrambe quotino nella valuta del suo piano.

⚠️ E una riserva mantiene un prezzo di mercato al posto di quello primario, del proprio tipo, che non sempre è lo stesso numero. Nei Paesi Bassi, per esempio, una riserva all'ingrosso dietro una primaria tutto incluso prezza quei periodi come all'ingrosso più le componenti del suo contratto, non come la cifra tutto incluso del fornitore. Il registro dell'hub indica quale fonte ha usato ogni periodo, così una sostituzione silenziosa si distingue da un guasto silenzioso — e da un giorno prezzato su una base diversa.

Scegliere, nell'ordine che fa risparmiare lavoro

  1. Imposti prima la valuta del piano. Essa limita le zone che può persino salvare, quindi farlo dopo significa rifare il resto.
  2. Trovi la sua zona nella tabella e legga la colonna Tipo. Quella parola decide se compilare le componenti del suo contratto o lasciarle stare.
  3. Scelga una riserva — se la sua zona ha una seconda fonte. Dodici aree sono coperte due volte: SE1–4 e NO1–5 (Nord Pool accanto alla fonte nazionale), DK1–2 e NL (Energy-Charts accanto a una seconda), e SE4 e NO2 tre volte. Le altre sono coperte una volta sola. Per DE-LU, FR, AT, BE, CH, CZ, HU, IT-North, PL, SI, FI, EE, LV, LT e le regioni del Regno Unito non c'è un secondo fornitore in questo elenco, quindi ciò che segue la primaria è la tariffa di zona del suo piano — a meno che non invii un prezzo da Home Assistant, che è una fonte a sé.
  4. Verifichi il primo giorno completo rispetto alle cifre del suo fornitore, non rispetto al grafico all'ingrosso. Due scarti diversi significano cose diverse: uno scarto pari circa alla quota di imposte e IVA significa che il tipo è impostato male, ed è il caso comune — mentre uno scarto pari circa alla sua quota fissa non significa che ci sia un errore. L'hub calcola l'energia, per kilowattora. Un importo fisso giornaliero o mensile — vastrecht, Grundpreis, netbeheer, una quota fissa — non è nella sua cifra, quindi il mese differirà dalla bolletta esattamente di quell'importo, e nessuna impostazione lo cambia.

Cosa non fa

  • Non è un rapporto con un fornitore. Le fonti sono dati pubblici di prezzo per aree di mercato; il contratto è ciò che lei descrive nel piano.
  • Non converte la valuta. Un'incongruenza viene rifiutata nel momento in cui salva, che è il posto migliore per scoprirla.
  • Non accende né spegne nulla quando il prezzo cambia. Le fasce convenienti sono un segnale; cosa farne è una decisione della sua automazione.
  • Non riprezza il passato. Un periodo mantiene il prezzo che gli è stato applicato, con la sua fonte. Correggere un'impostazione cambia ciò che accade dopo.

Dove leggere di più