Produttore: Home Assistant Community Disponibilità: incluso nell’HUB personale Home Assistant Categoria: software Tipologia: componente Home Assistant Difficoltà di implementazione: bassa |
Il componente “Utility Meter” di Home Assistant permette di creare delle entità che permettano all’utente di monitorare i consumi a partire da letture di altri sensori, contabilizzandoli su base quotidiana, settimanale, mensile e annuale. Dei “contatori” di consumo, per così dire.
In sostanza, tale componente genera degli ulteriori sensori (virtuali) che forniscono i totali di consumo su un dato periodo di contabilizzazione, permettendoci di tenere traccia dell’andamento dei consumi nel tempo.
Al termine del ciclo di contabilizzazione (indipendentemente dalla durata impostata) il valore dell’entità “Utility Meter” viene azzerato e il valore totale del ciclo terminato viene salvato nell’attributo “last_period“, permettendoci di effettuare eventuali calcoli di comparazione, andamento e previsione, conto economico (ad esempio tramite l’implementazione della piattaforma “Trend“).
Dato che alcuni provider di servizio energetico prevedono anche tariffazioni per fascia oraria, (eg. la classica bioraria energetica), il componente permette di personalizzare la configurazione nel definire tali fasce, permettendoci così di contabilizzare i consumi in modo appropriato.
N.b. Come sorgente di un sensore “Utility Meter” può essere utilizzato qualunque sensore numerico, purché fornisca valori in costante crescita. Il contabilizzatore si limita però a sommare la differenza positiva tra la penultima lettura ricevuta e l’ultima. Per esempio, un sensore che fornisca un primo valore 0, poi 10, poi 11, a ricevimento di questo ultimo valore (11) avrà un totale di contabilizzazione di 21 , ovvero:
(20 – 0) + (11 – 10)= 21
Configurazione
Definire entità tramite il componente “Utility Meter” è molto semplice. Un esempio di configurazione in configuration.yaml è il seguente:
#Esempi di configurazione
utility_meter:
energia:
source: sensor.energia_in_kwh
Nell’esempio sopra, “energia” è il nome dell’entità, che di conseguenza si chiamerà “sensor.energia“. Si possono ovviamente creare più entità, quante se ne vogliono, sempre sotto il blocco “utility_meter:“.
Dettagli di configurazione:
source | (stringa, obbligatoria) l’entità sensore da monitorare (eg. “sensor.energia_in_kwh“) |
cycle | (stringa, obbligatoria) definisce la durata del ciclo di contabilizzazione. Può essere “daily“, “weekly“, “monthly“, “yearly“. |
offset | (intero, opzionale) di default i cicli iniziano al T0 previsto dal ciclo (00:00 per il daily, 00:00 di lunedì per il weekly eccetera). Questo parametro permette di regolare un offset. Default: 0 |
tariffs | (lista, opzionale) lista delle eventuali tariffe. Default: [] |
Servizi
I servizi collegati a questo componente sono tre:
- utility_meter.reset
- utility_meter.next_tariff
- utility_meter.select_tariff
utility_meter.reset
Permette di azzerare il contabilizzatore.
Attributo | Opzionale | Descrizione |
entity_id | no | L’entità da azzerare. |
utility_meter.next_tariff
Permette di passare alla tariffa seguente (in base all’elenco definito in configurazione). Se l’entità era impostata sull’ultima tariffa, si posiziona sulla prima.
Attributo | Opzionale | Descrizione |
entity_id | no | L’entità al quale imporre il cambio di tariffa di contabilizzazione. |
utility_meter.select_tariff
Permette di selezionare una specifica tariffa tra quelle definite in configurazione.
Attributo | Opzionale | Descrizione |
entity_id | no | L’entità al quale imporre il cambio di tariffa di contabilizzazione. |
tariff | no | La tariffa da impostare per la contabilizzazione. |
Configurazione avanzata
Nell’esempio che segue creiamo due sensori “Utility Meter” per contabilizzare il consumo energetico giornaliero e mensile, suddiviso su due fasce orarie: F1 e F2 (la tipica bioraria).
Il sensore monitorato è sempre lo stesso, “sensor.energia_in_kwh“.
utility_meter:
daily_energy:
source: sensor.energia_in_kwh
cycle: daily
tariffs:
- F1
- F2
monthly_energy:
source: sensor.energia_in_kwh
cycle: monthly
tariffs:
- F1
- F2
Questa configurazione non genera due sensori (come lascerebbe ipotizzare la configurazione), ma sei:
- sensor.daily_energy
- sensor.monthly_energy
- sensor.daily_energy_F1
- sensor.daily_energy_F2
- sensor.monthly_energy_F1
- sensor.monthly_energy_F2
I primi due, contabilizzeranno i totali per giorno e mese; i restanti contabilizzeranno ciascuno un ciclo specifico per fasce specifiche.
Immaginiamo ora che la fascia F1 corrisponda alla fasciaoraria 9:00 – 21:00 e l’F2 dalle 21:00 alle 9:00 del giorno seguente.
Per automatizzare il passaggio di fascia, utilizziamo la seguente automazione:
automation:
trigger:
- platform: time
at: '09:00:00'
- platform: time
at: '21:00:00'
action:
- service: utility_meter.next_tariff
entity_id: utility_meter.daily
- service: utility_meter.next_tariff
entity_id: utility_meter.monthly
Questo componente può tornare particolarmente utile in scenari come quello legato all’integrazione di letture energetiche su Home Assistant tramite Sonoff POW oppure tramite l’integrazione di una sonda PZEM.
![]() |
ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti. |
