Chiedi a Home Assistant quali ore saranno più economiche domani e ti ritrovi in un posto dove non avevi intenzione di andare: un'integrazione di pianificazione, un template sensor con una macro dentro, una lista ordinata di ore e un'automazione che confronta l'ora corrente con il risultato. Funziona, e c'è chi mantiene esattamente questa configurazione da anni. Ma sono tante parti mobili per una domanda che avrebbe una risposta di una parola: è un buon momento?
L'hub risponde da solo a questa domanda. Conosce i prezzi di ogni periodo di 15 minuti, quindi può calcolare quali periodi sono economici e pubblica il risultato come finestra: aperta o chiusa, fino a quando, e quando inizia la successiva.
Quello che non fa è agire di conseguenza. Quella parte spetta a te.
Cos'è una finestra
Descrivi la regola; l'hub la valuta sui prezzi che ha.
| Regola | Cosa significa | Usala quando |
|---|---|---|
| Prezzo sotto una soglia | aperta finché il prezzo d'acquisto tutto incluso — il prezzo di mercato con commissioni, tasse e IVA (VAT) del tuo contratto già applicate (di cosa è fatto) — è pari o inferiore alla tua soglia, e si richiude sopra una seconda soglia, più alta | la tua soglia è assoluta: "quando l'elettricità costa meno di 10 cents, ogni volta che succede" |
| Periodi più economici in un intervallo di tempo | aperta per gli n periodi più economici all'interno di un intervallo che indichi | ti servono n periodi e non ti interessa quando, all'interno di una parte della giornata |
| Periodi più economici prima di un orario | aperta per gli n periodi più economici tra adesso e una scadenza | qualcosa deve essere fatto entro le 07:00 e vuoi il modo più economico per arrivarci |
Due soglie invece di una sola nella prima regola non è pignoleria: un prezzo che oscilla attorno a un unico numero farebbe lampeggiare la finestra ogni periodo. Lascia un margine.
Accanto alle regole ci sono due semplici segnali — buy is cheap below e sell is low below — che dicono qualcosa del prezzo in questo momento, senza pianificazione e senza isteresi. Il segnale di vendita è quello utile su un impianto con produzione: indica che la tua energia vale più se la usi che se la esporti.
Otto regole è il limite. La nona viene rifiutata, non eliminata in silenzio.
Leggi lo stato, non il messaggio
Questo è il consiglio che decide se la tua automazione funziona.
Lo stato della finestra è ripubblicato a ogni inizio di periodo di 15 minuti, e subito ogni volta che cambia qualcosa — una finestra che si apre o si chiude, nuovi prezzi in arrivo, una regola modificata. È uno stato, non un annuncio.
Quindi costruisci sul valore corrente. Un'automazione che tratta ogni pubblicazione come un evento scatta più volte durante una finestra lunga, e perde la transizione avvenuta mentre si stava riavviando. Un'automazione che chiede "questa finestra è attiva?" è corretta in ogni momento, anche nel momento in cui torna in funzione.
Leggerla da Home Assistant: i due percorsi, come è oggi
Qui la risposta onesta dipende da come gestisci l'hub.
Sul percorso dell'hub, via MQTT, lo stato arriva come messaggio retained su rbgrid/<mac>/price — sotto il kilobyte, con una voce per regola: il nome, se è attiva, fino a quando e quando inizia la prossima. Retained è la parola importante: chiunque si connetta più tardi riceve subito lo stato corrente, quindi un riavvio non ti costa nulla. Il messaggio è JSON, quindi la forma abituale è un sensore MQTT con un template che estrae la regola che ti interessa — il riferimento dell'hub contiene un esempio svolto proprio di questo, con i nomi dei campi.
Sul percorso ESPHome, le finestre sono anch'esse entità: un binary sensor per regola, sul dispositivo dell'hub, on mentre la finestra è aperta, con l'indicazione di quando si chiude e di quando inizia la successiva. Accanto ci sono un segnale prezzo conveniente, un segnale prezzo di vendita basso e un sensore rank per il periodo corrente. Si aggiornano ogni minuto e subito dopo ogni evento di prezzo dell'hub.
Quindi un'automazione è una sola condizione di stato su una sola entità, su entrambi i percorsi. Il rank, dato che compare in entrambi i casi: indica dove si trova il periodo corrente tra i periodi di oggi di cui si conoscono i prezzi — 1 è il più economico, e il denominatore è il numero di periodi per cui l'hub ha finora dei prezzi.
⚠️ Se la tua integrazione è più vecchia di così, le finestre non sono entità e lo stato va richiesto — tramite un'azione che restituisce la stessa struttura contenuta nel messaggio MQTT. La ricetta per farlo è un template sensor basato su trigger, e funziona ancora; semplicemente non è più necessaria. Aggiorna l'integrazione e il passaggio scompare.
Un confine da tenere presente: i sensori per regola sono stati verificati in test, non osservati mentre si aprono su un hub reale, perché il banco era spento prima che arrivasse una finestra. Il collegamento è controllato; il vederlo in azione non è ancora riportato.
Di cosa si compone un'automazione
La parte di collegamento differisce, come sopra. La logica no, e una volta che lo stato è dove la tua automazione può vederlo, bastano tre righe:
- La finestra chiamata
Boilerè attiva? — chiedi lo stato. - Sì → la tua automazione accende l'interruttore della caldaia.
- No → la tua automazione lo spegne.
Ogni decisione dopo il passo 1 è di Home Assistant. L'hub ha contribuito con un solo booleano e il motivo per cui è vero.
Anche le aperture e le chiusure vengono scritte nel log dell'hub, così puoi leggere dopo cosa è successo mentre non stavi guardando:
price: window 'Boiler' on until <time>
price: window 'Boiler' off, next <time>
L'unico blueprint incluso, e a cosa serve
L'integrazione porta due blueprint. Il primo, RBgrid — notify on hub events, fa quello che dice il nome: notifica. La sua lista predefinita di tipi di evento copre eventi di hardware e di connessione — flusso inverso, un modulo sparito o tornato, un nodo offline o online, un bus bloccato, firmware, guasti.
Gli eventi di prezzo non sono in quella lista predefinita. Puoi aggiungere tu il tipo price, e allora riceverai notifiche sulle finestre — insieme a ogni altro evento di prezzo, compreso ogni recupero riuscito, perché condividono lo stesso tipo e non possono essere separati.
Il secondo, RBgrid — cheap window turns a switch on and off, prende un sensore di finestra e un interruttore, una luce, una ventola o un input boolean, con un'opzione per invertire. Vale la pena essere precisi su cosa significa, perché è lo stesso limite di tutto l'articolo: l'automazione accende e spegne; l'hub riporta. Il blueprint è un'automazione già pronta, non una capacità del misuratore.
Cosa l'hub non farà mai
- Non comanda nulla. Non ha un relè e non esiste un'impostazione che gli faccia accendere qualcosa.
- Non pianifica per te oltre la regola. Una regola descrive quali periodi si qualificano; l'hub la applica e dice qual è il risultato.
- Non ci sono finestre sul lato vendita. Le finestre usano il prezzo d'acquisto tutto incluso. Per l'esportazione, il segnale sell is low è l'indicatore.
- Nulla succede senza un orologio impostato. Le regole descrivono ore e giorni; un hub che non ha sincronizzato l'orologio non può collocarle.
Quando non si è aperta e te lo aspettavi
- Controlla che i prezzi siano arrivati — e leggi il paragrafo successivo, perché è quello più comune. Una regola sui periodi più economici di un intervallo richiede i prezzi di quell'intervallo. Il log dell'hub dice cosa è stato salvato e quando.
- Controlla le due soglie. Soglie uguali fanno lampeggiare la finestra; un margine troppo ampio la tiene chiusa.
- Controlla l'orologio. Vedi sopra — è quello silenzioso.
- Controlla quale prezzo ha usato il periodo. Se la fonte è fallita e il tuo piano ha coperto il periodo, la finestra è stata valutata con la tariffa del piano, che è un numero diverso. Il log indica la fonte per ogni periodo.
Quando i prezzi di domani della notte sono arrivati in ritardo
Questo merita un paragrafo a sé, perché produce una finestra che sembra sbagliata e non lo è.
L'hub non aspetta i prezzi e non salta le ore per cui non ha un prezzo di mercato. Classifica ogni periodo della finestra al prezzo che applicherebbe a quel periodo — prima la fonte di mercato, poi la tua fonte di riserva, infine la tariffa della fascia del tuo piano con le sue commissioni e l'IVA. Poi ricalcola in continuo, quindi quando i prezzi arrivano, la finestra si sposta sulle ore che sono davvero le più economiche tra quelle ancora da venire.
Due conseguenze, entrambe comportamento corretto e non difetti:
- la finestra può aprirsi in un momento inatteso — la sera, se i prezzi di mercato di oggi lì superano la tariffa del tuo piano, oppure di notte alla tariffa del piano quando non si sa altro;
- la finestra può durare meno di quanto hai chiesto. Una scelta già trascorsa non viene annullata; se il nuovo insieme più economico include periodi già passati, contano come scelti e non possono più essere eseguiti, e l'hub non aggiunge periodi extra per completare la notte. Il giorno successivo è normale.
Se i prezzi non arrivano affatto, tutto viene classificato alla tariffa del tuo piano e la finestra cade nei periodi più economici del piano — tipicamente la fascia notturna, se il tuo piano ne ha una.
In tutti questi casi la finestra si è aperta correttamente per i dati che l'hub aveva al momento. Il log degli eventi mostra ogni spostamento, e la colonna della fonte nel log dei prezzi indica quali periodi sono stati prezzati dal piano anziché dal mercato.
Dove leggere di più
- Price notifications and cheap windows — il riferimento completo: ogni parametro, i campi pubblicati e l'esempio svolto.
- Where your price comes from — come a un periodo viene assegnato il prezzo in primo luogo.
- Events — il log proprio dell'hub, comprese le righe sulle finestre qui sopra.
- Due modi per usare RBgrid — la scelta del percorso da cui dipende l'ultimo terzo di questo articolo.