In questa guida vedremo come monitorare lo stato del nostro contatore per l’energia elettrica in Home Assistant.
Se anche a voi capita spesso che il contatore scatti e che su di esso compaia la scritta “distacco imposto supero potenza”, questa guida potrebbe fare al caso vostro. Vedremo infatti come monitorare lo stato del contatore in Home Assistant per fare in modo di essere allertati tramite notifica quando il contatore sta per scattare evitandoci quindi di dover raggiungere il contatore per ripristinare il collegamento alla rete elettrica. Questa guida può anche essere riutilizzata per monitorare un singolo circuito per evitare sovraccarichi in una specifica parte dell’impianto elettrico.
Prerequisiti
Nel seguito di questa guida darò per scontato che abbiate già installato Home Assistant (potete trovare molte guide online, quella ufficiale si può trovare qui [io ad esempio ho installato il sistema operativo di Home Assistant in una virtual machine]).
Per modificare le icone ed i colori delle icone in base allo stato del del contatore ho utilizzato il componente custom-ui disponibile nell’ “Home Assistant Community Store” (anche se si chiama store è tutto gratuito, tranquilli).
Per ottenerlo sarà necessario installare l’Home Assistant Community Store tramite questa guida e successivamente sarà necessario installare il componente custom-ui seguendo la guida nella repository Github (nel mio caso è stato necessario anche installare questo altro componente per far funzionare tutto correttamente).
Sarà poi necessario aver configurato un’entità che monitori la potenza prelevata attraverso il contatore e salvi i dati direttamente in Home Assistant. Nel mio caso ho utilizzato i dati ricavati dalla mia wallbox per la ricarica dell’auto elettrica (ho scritto una guida a riguardo qui), ma è possibile utilizzare dei dispositivi appositi come ad esempio IoTaWatt o OpenEnergyMonitor (trovate le guide per l’integrazione di questi ed altri dispositivi di monitoraggio qui).
Creazione aiutanti per impostare le specifiche del contatore in Home Assistant
Per poter monitorare correttamente il contatore è necessario innanzitutto creare degli aiutanti nelle impostazioni di Home Assistant per impostare le specifiche del contatore e la potenza contrattuale della propria fornitura di energia (oppure la potenza massima del circuito da monitorare). Per prima cosa bisogna premere sul tasto Aggiungi Aiutante in Impostazioni>Aiutanti.
Dopodiché sarà necessario creare 4 entità di tipo “Numero” rispettivamente per: potenza massima (la potenza contrattuale), percentuale di tolleranza contatore (rispetto alla potenza massima), potenza di picco percentuale (rispetto alla potenza massima se il circuito permette di superare la potenza massima per un certo periodo di tempo), durata massima del picco in minuti. Nell’immagine seguente i parametri che ho utilizzato per la loro configurazione:
Dopo aver creato gli aiutanti sarà possibile trovarli nella sezione Configurazione>Dispositivi e Servizi>Entità. Tali entità andranno ora impostate con le specifiche del vostro contratto di energia o con le specifiche degli interruttori che proteggono il circuito. Nel caso di un contatore di energia Italiano di seconda generazione (OpenMeter) la tolleranza è del 10%, la potenza di picco è pari al 30% in più di quella contrattuale e la durata massima del picco è 3h (180 minuti, anche se consiglio di impostare qualche minuto in meno). Di seguito le impostazioni da me utilizzate:
Configurazione del sensore per monitorare il Contatore in Home Assistant
Dobbiamo ora configurare un sensore che monitori lo stato del contatore in Home Assistant osservando la potenza rilevata dal sensore configurato in precedenza (vedi la sezione prerequisiti). Per fare questo dobbiamo aggiungere nella sezione sensor del file “configuration.yaml” di Home Assistant (se non sapete di cosa sto parlando potete leggere questa guida) il codice seguente (sostituendo “sensor.prism_potenza_importata” con il sensore da voi utilizzato per monitorare la potenza importata):
#Sensore per il Controllo dello stato del contatore
#sensor.prism_potenza_importata è il sensore che rileva la potenza prelevata dalla rete
- platform: template
sensors:
meter_status:
friendly_name: "Stato Contatore"
value_template: >-
{% set pow = states('sensor.prism_potenza_importata') | float %}
{% set cp = states('input_number.potenza_contrattuale_energia') | float %}
{% set tol = states('input_number.tolleranza_contatore') | float %}
{% set peak = states('input_number.potenza_picco') | float %}
{% if pow and pow < (cp*((tol/100)+1)) %}
Normal
{% elif pow and pow >= (cp*((tol/100)+1)) and pow < (cp*((peak/100)+1)) %}
Warning
{% elif pow and pow >= (cp*((peak/100)+1)) %}
Alarm
{% else %}
null
{% endif %}
Dopo aver inserito il codice nel file di configurazione, sarà sufficiente riavviare Home Assistant tramite il comando in Configurazione>Impostazioni>Controlli del Server. Dopo il riavvio sarà possibile trovare il sensore ed osservarne lo stato in Configurazione>Impostazioni>Dispositivi e Servizi>Entità.
Personalizzazione dell’icona in base allo stato
Dobbiamo ora fare in modo che le icone ed i colori delle icone varino in base allo stato del sensore appena configurato. Per fare questo dovremo inserire all’interno del file “configuration.yaml” nella sezione “homeassistant” il nome del file per le personalizzazioni che andrà inserito nella stessa cartella del file di configurazione (uso un file esterno per mantenere il tutto in ordine, ma le personalizzazioni si potrebbero anche scrivere direttamente nel file di configurazione). Il risultato è il seguente (nel mio caso ho chiamato il file “customizations.yaml”):
homeassistant:
customize: !include customizations.yaml
Fatto questo sarà necessario inserire nella sezione “customize” del file di configurazione di Home Assistant (o nel file dedicato) il codice seguente:
sensor.meter_status:
templates:
icon_color: >
if (state === 'Normal') return 'rgb(0,255,0)';
if (state === 'Warning') return 'rgb(227, 157, 85)';
if (state === 'Alarm') return 'rgb(255,0,0)';
else return 'rgb(0,255,0)';
icon: >
if (state === 'Normal') return 'mdi:check-bold';
if (state === 'Warning') return 'mdi:alert';
if (state === 'Alarm') return 'mdi:alarm-bell';
Infine riavviare il server di Home Assistant per applicare le modifiche.
Creazione di un’automazione per inviare una notifica in caso di potenza eccessiva
Dobbiamo infine fare in modo che Home Assistant invii una notifica agli utenti nel caso in cui la potenza utilizzata dal circuito sia eccessiva. Per fare questo bisognerà aggiungere il seguente codice all’interno del file “automations.yaml“ (per notificare più dispositivi contemporaneamente ho creato un gruppo di notifica [chiamato all_devices] come mostrato in questa guida):
#Notifica in caso di distacco imminente
- alias: Notifica Supero Potenza
description: ''
trigger:
- platform: state
entity_id: sensor.meter_status
to: Alarm
for:
seconds: 10
- platform: state
entity_id: sensor.meter_status
to: Warning
for:
minutes: '{{ states("input_number.meter_warning_max_duration") }}'
condition: []
action:
- service: notify.all_devices
data:
title: ALLARME! DISTACCO CONTATORE IMMINENTE!
message: Per evitare il distacco dalla rete elettrica spegnere il prima possibile
i carichi più importanti.
mode: single
#Notifica in caso di picco di potenza
- alias: Allerta supero potenza (più tempo per intervenire)
description: ''
trigger:
- platform: state
entity_id: sensor.meter_status
to: Warning
for:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
condition: []
action:
- service: notify.all_devices
data:
message: Potenza Contrattuale Superata. Scollegare dei dispositivi per evitare
il distacco dalla rete in {{ states("input_number.meter_warning_max_duration")
}} minuti.
title: POTENZA CONTRATTUALE SUPERATA!
mode: single
Infine riavviare il server di Home Assistant per applicare le modifiche.
Conclusione
In questa guida abbiamo visto come monitorare il nostro contatore in Home Assistant, ricevendo una notifica in caso di rischio di distacco.
Se questa guida ti è piaciuta segui il mio blog sui canali social (clicca sulle icone in fondo alla pagina) per essere informato su tutti i nuovi articoli che scriverò.