Shelly ti avvisa prima che salti il contatore: guida pratica con ntfy e alternative gratuite

Shelly può trasformarsi in un sistema di allerta contro sovraccarichi e possibili distacchi del contatore. La guida spiega come configurare soglie, notifiche ntfy, preallarme e riarmo sui vari modelli.

Un misuratore Shelly può diventare un sistema di allerta molto più utile del semplice grafico dei consumi. L’idea è semplice: quando la potenza assorbita supera una soglia scelta dall’utente, Shelly genera un evento e fa arrivare sullo smartphone un avviso ben distinguibile dalle normali notifiche. Con una configurazione più evoluta è possibile aggiungere un preallarme, verificare che il sovraccarico persista per alcuni secondi e perfino disattivare automaticamente un carico non prioritario.

La soluzione che prenderemo come riferimento usa ntfy, servizio open source particolarmente adatto ai dispositivi IoT perché permette di generare una notifica mediante una comune richiesta HTTP. Non è però l’unica strada: Shelly Smart Control, Telegram, Home Assistant, Node-RED e Alexa possono svolgere lo stesso compito con caratteristiche differenti.

I vecchi Shelly EM e 3EM Gen1 utilizzano le tradizionali Action URL; Shelly Pro EM-50 e Pro 3EM, così come i dispositivi delle generazioni successive dotati delle necessarie funzioni di misura, permettono di usare webhook per inviare automaticamente richieste HTTP, RPC per comandare funzioni del dispositivo e script per creare logiche più avanzate direttamente sullo Shelly. La procedura di base resta la stessa, ma aumentano le possibilità di filtrare picchi e falsi allarmi.

Shelly EM Gen4

Prima di configurare Shelly bisogna capire qual è la soglia corretta

Non bisogna confondere la potenza impegnata, indicata nel contratto di fornitura dell’energia elettrica, con il punto esatto in cui il contatore interrompe l’erogazione.

Per le forniture fino a 30 kW dotate di limitatore, il distributore indica una potenza disponibile superiore almeno del 10% rispetto alla potenza impegnata. Una fornitura da 3 kW dispone quindi normalmente di 3,3 kW continuativi; 4,5 kW corrispondono a 4,95 kW disponibili, 6 kW a 6,6 kW e così via.

Il margine non significa però che il contatore scatti appena si supera quel +10%: il comportamento dipende dall’entità e dalla durata del sovraccarico.

È bene verificare le condizioni applicate dal distributore. Di solito per le forniture “base” da 3 kW, fino a 3,3 kW il prelievo è consentito senza limiti di tempo; superata tale soglia si può arrivare fino a 4 kW per almeno 3 ore; oltre 4 kW il dispositivo di controllo può intervenire entro 2 minuti. Il display del contatore segnala “RIDURRE CARICO” quasi immediatamente quando si superano i 4 kW e “RISCHIO DISTACCO” dopo circa un minuto.

Il principio vale anche con potenze superiori, ma non bisogna dedurre automaticamente la soglia di distacco moltiplicando tutto per lo stesso coefficiente. Per una fornitura trifase da 15 kW, ad esempio, un distributore italiano documenta 16,5 kW disponibili senza limiti di tempo e la possibilità di arrivare fino a 20,9 kW per almeno tre ore.

Come costruire l’allarme da inviare sullo smartphone

Livello Significato
Potenza ordinaria Assorbimento entro la potenza disponibile
Preallarme Superamento significativo da tenere sotto controllo
Allarme urgente Livello vicino alla zona in cui il limitatore potrebbe intervenire rapidamente

Con una fornitura da 3 kW si potrebbero usare, a titolo di esempio, 3.700 W come preallarme e 4.000-4.050 W come allarme urgente. Con 4,5, 6 o più kW bisogna invece adattare i valori alla propria fornitura e alle caratteristiche del contatore.

ntfy: perché funziona bene con Shelly

ntfy è un sistema di notifiche basato su HTTP: un dispositivo pubblica un messaggio all’interno di un topic; gli smartphone iscritti a quel topic ricevono la notifica push. Abbiamo spiegato il meccanismo nell’articolo citato in apertura in cui dettagliamo il funzionamento di ntfy.

Il servizio, che nella versione base ha limitazioni assolutamente accettabili per il numero di notifiche da gestire con un servizio di allerta come quello che stiamo allestendo (250 messaggi al giorno per utente sul servizio pubblico; vedere Limitations), supporta cinque livelli di priorità. max o urgent corrispondono al livello 5 e, su Android, producono vibrazioni più lunghe, suono e notifica in primo piano. Android consente di associare suoni e comportamenti diversi ai vari livelli.

Un esempio molto semplice di URL gestibile con ntfy può essere il seguente:

https://ntfy.sh/NOME-TOPIC/publish?message=Consumo+elevato&priority=max

https://ntfy.sh/NOME-TOPIC/publish?title=Allarme+potenza&message=Ridurre+il+carico&priority=max&tags=warning

Prima di configurare Shelly conviene aprire l’URL dal browser: se l’app ntfy è installata sullo smartphone e il topic è sottoscritto, la notifica deve arrivare immediatamente.

ntfy: attivazione topic per notifiche push

Il nome del topic scelto aprendo l’app ntfy su Android quindi toccando “+” non dovrebbe essere banale. Un identificatore come
casa è una pessima scelta. Molto meglio qualcosa di sufficientemente lungo e difficile da indovinare: casa-xfa88y2g4-allarme-potenza. Sul servizio pubblico, infatti, il nome di un topic non protetto da autenticazione va considerato quasi come un piccolo segreto. Diversamente, utenti non autorizzati potrebbero partecipare al topic iniziando a inviare e ricevere messaggi.

La notifica di superamento soglia contro il distacco del contatore deve farsi sentire!

Una normale push rischia di perdersi fra email, messaggi e notifiche delle applicazioni.

Su Android conviene quindi accedere alle impostazioni, portarsi nella sezione App, cercare ntfy quindi selezionare Notifiche. Come si vede, vi è la possibilità di personalizzare le notifiche sulla base della loro tipologia: Priorità predefinita, alta, bassa, massima, minima.

Personalizzazione notifiche ntfy

Dopo aver scelto Priorità massima, si può ad esempio selezionare un suono evidente, attivare la vibrazione e, quando il dispositivo lo permette, configurare il comportamento rispetto a Non disturbare.

Shelly EM Gen1: la procedura con Over Power

Il vecchio Shelly EM dispone già delle azioni over_power_url e under_power_url: il primo è richiamato quando la soglia over_power_url_threshold viene attraversata; la Gen1 permette inoltre fino a cinque URL per azione, con una lunghezza massima di 256 caratteri.

Per configurare l’indirizzo di ntfy, che deve innescare la partenza della notifica push sul telefono, basta accedere all’indirizzo IP locale dello Shelly da browser web, fare clic su Actions, Channel 1 Over Power oppure il Channel 2 Over Power, se è la seconda pinza amperometrica a misurare il carico interessato. Avevamo già spiegato a suo tempo come collegare Shelly EM e misurare i consumi in tempo reale.

Per il primo test è meglio evitare la soglia definitiva: se di norma la casa o l’ufficio assorbono poche centinaia di watt, si può impostare temporaneamente 1000 W per poi impostare come Action URL il seguente:

http://ntfy.sh/NOME-TOPIC/publish?title=Allarme+potenza&message=Test+notifica&priority=max&tags=warning

Nel nostro test con un vecchio Shelly EM Gen1 abbiamo utilizzato inizialmente HTTP per ridurre al minimo le variabili. Il dispositivo ha poi inviato correttamente la notifica ntfy al superamento della soglia. Per una configurazione definitiva, quando il firmware e il modello utilizzati gestiscono correttamente HTTPS, è comunque preferibile la versione cifrata dell’URL.

Sovraccarico contatore, come evitare distacco
Controllare la configurazione del vecchio EM via API

Uno dei vantaggi del Gen1 è che tutto può essere verificato anche dal browser.

Collegandosi tramite la rete locale all’indirizzo http://IP-SHELLY/settings/actions, si ottiene un JSON che restituisce la lista delle azioni impostate. Inoltre, la pagina http://IP-SHELLY/status permette di vedere la potenza misurata in tempo reale.

Durante le prove con uno Shelly EM Gen1 abbiamo incontrato un comportamento degno di nota. Con il firmware stabile 1.14.0, le Action URL verso destinazioni remote non si comportavano in modo affidabile, pur risultando correttamente memorizzate. Dopo aver installato la release candidate 1.14.1-rc1, disabilitato Eco Mode e riavviato il dispositivo, la chiamata HTTP verso ntfy ha iniziato a funzionare ed è risultata poi ripetibile.

Non abbiamo trovato una documentazione ufficiale che attribuisca esplicitamente il problema alla 1.14.0, alla Eco Mode o a una specifica correzione della RC. L’indicazione pratica è però utile: con un vecchio Gen1 che salva correttamente l’azione ma non la esegue verso host remoti, conviene verificare il firmware, provare temporaneamente senza Eco Mode e riavviare il dispositivo dopo le modifiche.

Shelly 3EM Gen1: attenzione alla somma dei tre canali

Il vecchio Shelly 3EM utilizza la stessa filosofia delle Action URL, ma introduce una possibilità interessante.

Gli indici 0, 1 e 2 corrispondono ai tre canali, mentre l’indice 3 viene applicato alla somma dei tre. Shelly documenta esplicitamente over_power_url e under_power_url anche per questa misura aggregata.

Su una fornitura trifase si può quindi decidere se controllare una singola fase oppure il totale delle tre. La scelta dipende da come è strutturata la fornitura e da quale tipo di sovraccarico si vuole intercettare.

Shelly Pro EM-50, Pro 3EM e dispositivi moderni

Le generazioni seguenti hanno introdotto tante novità. I dispositivi Shelly più aggiornati dispongono – come anticipato in apertura – di RPC, webhook e scripting.

Il metodo HTTP.Request, per esempio, supporta direttamente HTTP e HTTPS, con GET, POST, PUT, HEAD e DELETE, timeout e header personalizzati. La lunghezza complessiva della richiesta può arrivare a 8.192 byte, molto più dei 256 caratteri delle vecchie Action URL Gen1.

Uno script Shelly può quindi controllare se la misura della potenza sia superiore alla soglia, verificare la condizione quindi usare HTTP.Request per interagire, ad esempio, con ntfy.

Nel caso dei modelli Shelly Pro EM-50, Pro 3EM e Gen2/Gen3 compatibili con scripting, si possono direttamente adoperare URL HTTPS https://ntfy.sh/....

Perché sui modelli recenti conviene filtrare i picchi

Con una semplice Action URL il comportamento corrisponde all’avvio di un avviso dopo il superamento della soglia impostata.

Un buon approccio, però, dovrebbe distinguere un vero sovraccarico da un picco di uno o due secondi. Pompe, compressori, climatizzatori e altri carichi possono produrre correnti di spunto: far suonare il telefono ogni volta sarebbe fastidioso.

Sugli Shelly con scripting possiamo invece costruire questa logica:

Valore soglia contatore allarme Shelly

Ovviamente i valori rappresentati in figura sono soltanto un esempio per una fornitura da 3 kW. In questo modo un consumo che oscilla continuamente nei pressi del limite non produce una raffica di notifiche.

Una configurazione più completa: preallarme e allarme urgente

Un sistema ben progettato può avere due livelli: il primo informa che il carico sta diventando elevato (notifica ntfy con priorità default o high), il secondo indica che bisogna intervenire rapidamente (notifica ntfy con priorità max).

Con una fornitura da 3 kW, per esempio 3700 W si possono considerare e impostare come preallarme, 4050 W come allarme urgente, 3500 W come “riarmo”. Con 4,5 kW, 6 kW o potenze superiori bisogna ricalcolare tutti i valori partendo dalla propria potenza disponibile e dal comportamento del limitatore.

Il vantaggio però è evidente: non parte subito una “sirena” sullo smartphone per qualunque superamento marginale.

ntfy non è l’unica possibilità: Shelly Smart Control

Ovviamente, ntfy non è l’unico strumento per gestire una necessità come quella descritta nell’articolo.

La prima alternativa è l’app Shelly Smart Control: le Scene possono utilizzare condizioni basate sui valori misurati dai dispositivi e inviare una notifica push. Shelly distingue inoltre diversi tipi di condizione: “Once“, “Repeatedly” e “On any change“.

Nella modalità “Once” è possibile richiedere che la condizione rimanga valida per un certo tempo prima di eseguire l’azione; “Repeatedly” controlla invece periodicamente lo stato e può rieseguire l’azione.

Le Scene e le notifiche push dipendono però dal cloud Shelly e dalla connessione Internet; il controllo locale dell’app, invece, può funzionare direttamente sulla LAN per operazioni e letture supportate. ntfy offre soprattutto un vantaggio: separare molto bene la notifica urgente dalle altre notifiche dell’app.

Telegram Bot: semplice, gratuito e molto diffuso

La seconda alternativa è Telegram. La Bot API, della quale abbiamo parlato in altri nostri articoli, mette a disposizione il metodo sendMessage, che richiede essenzialmente chat_id e testo del messaggio.

Si può quindi costruire una chiamata che invii ATTENZIONE: potenza oltre la soglia direttamente a una chat o a un gruppo.

Telegram è interessante perché molti utenti lo hanno già installato e non è necessario alcun server domestico. Il limite è che una notifica Telegram rimane una notifica di messaggistica: possiamo assegnare un suono specifico alla conversazione e modificare le impostazioni Android, ma non abbiamo la stessa distinzione strutturale delle priorità di ntfy. Per un avviso informativo è ottimo; per una “sirena” anti-distacco ntfy offre maggiore controllo.

Home Assistant: quando si vuole fare sul serio

Per chi possiede già un’installazione Home Assistant, la gestione si fa molto più semplice. Home Assistant può infatti leggere direttamente il sensore di potenza Shelly, applicare condizioni temporali e decidere quando avvisare.

Home Assistant Shelly

Il vantaggio è che Shelly diventa semplicemente il sensore: tutta l’intelligenza risiede nell’automazione. Home Assistant è gratuito e open source, ma richiede ovviamente una macchina sempre operativa, per esempio un mini PC, Raspberry Pi, NAS o server domestico.

Node-RED: logica visuale e massima libertà

Node-RED svolge un ruolo analogo, ma rappresenta la logica attraverso nodi e collegamenti. Può ricevere o interrogare i dati Shelly nonché controllare potenza, durata, ultimo allarme, soglia di riarmo, fascia oraria e poi chiamare ntfy, Telegram o altri servizi.

È particolarmente utile quando l’automazione cresce e comprende più condizioni. Per un semplice allarme sarebbe probabilmente eccessivo; per un sistema completo di gestione dei carichi diventa invece molto interessante.

Alexa: l’allarme che si sente in tutta la casa

Esiste poi un’alternativa complementare allo smartphone. Shelly Smart Control dispone della funzione Alexa Notify: una scena Shelly può creare un dispositivo virtuale utilizzabile come trigger di una routine Alexa. Gli utenti standard possono creare fino a tre scene Alexa Notify, mentre il limite sale per gli utenti Premium.

È quindi possibile ottenere che di fronte a una potenza elevata attivi una scena Shelly, che a sua volta fa partire una routine Alexa, che infine porta Echo a riprodurre il messaggio di allerta: “Attenzione, ridurre il consumo elettrico“.

Se siamo in casa, un annuncio proveniente da uno o più Amazon Echo può essere persino più efficace dello smartphone anche se non sostituisce la notifica remota quando siamo fuori.

Quale sistema conviene usare

Soluzione Server proprio Costo del servizio Adatta a un allarme evidente Logica avanzata
ntfy No con ntfy.sh Gratuito Molto buona Dipende dallo Shelly
Shelly Smart Control No Funzioni standard disponibili senza servizio esterno aggiuntivo Buona Scene
Telegram Bot No Gratuito Discreta Limitata
Home Assistant Sì Gratuito/open source Eccellente Eccellente
Node-RED Sì Gratuito/open source Dipende dal canale scelto Eccellente
Alexa Notify No server proprio Nessun servizio separato necessario Ottima in casa Buona

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico. Le offerte potrebbero subire variazioni di prezzo dopo la pubblicazione.

Ti consigliamo anche

Link copiato negli appunti