Integrare componenti Shelly a Home Assistant via “ShellyForHASS”

5 minuti di lettura
Scopi della guida:
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Prerequisiti:
  • Home Assistant configurato e funzionante
  • Componente/i Shelly da integrare già configurato/i in Wi-Fi
Dispositivi fisici utilizzati:
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 1.0

Shelly - Home Assistant

Abstract

La linea di componenti Shelly “Home Automation Systems” è particolarmente apprezzata dagli amanti della domotica personale per la grande versatilità dei vari elementi che la compongono; va da sé che la possibilità di integrarli all’interno del proprio HUB personale rappresenti il passo immediatamente successivo dopo aver provveduto alla loro installazione e prima configurazione.

A differenza di molti altri componenti  similari, gli Shelly – basati per lo più sulla trasmissione Wi-Fi – consentono di essere amministrati tramite la proprio app Shelly Cloud (per Android e iOS) sia via rete locale che via Cloud (il che abilita nativamente al controllo remoto). In termini di integrazione offrono sostanzialmente tre strade:

  • Local Push, via MQTT;
  • Local Push, via CoAP & REST;
  • Cloud Polling, via Shelly Cloud.

La prima strada è quella sempre preferibile per tutta una serie di ragioni, ma è anche quella meno semplice da attuare. Per chi volesse percorrere tale strada (applausi), l’elenco delle guide d’integrazione in questa chiave è disponibile qui.

La seconda e la terza strada sono quelle più semplici. La presente guida descrive il processo d’integrazione generico per i componenti Shelly tramite il componente custom “ShellyForHASS“, un elemento aggiuntivo (esterno all’ecosistema Home Assistant) che consente di ottenere un’integrazione di tipo Local Push (quindi, a prescindere, di buon livello) sfruttando gli standard CoAP & REST. Inoltre, tale componente utilizza anche – opzionalmente – il cloud Shelly per alcune informazioni a corollario.

Questa guida è quindi dedicata a coloro che vogliano integrare i componenti Shelly a Home Assistant non utilizzando MQTT ma piuttosto un componente semplice da configurare e versatile da usare; il lato oscuro di questa opzione è l’esser legati a un componente esterno comunque passibile di difetti e variazioni nel tempo (mentre utilizzando MQTT una volta effettuata la configurazione ci si può dimenticare di essa).

Assunti

Si assume che Home Assistant ovviamente sia già operativo. Si assume inoltre che lo/gli Shelly in questione siano già stati configurati fornendogli accesso alla propria rete Wi-Fi, cosa che può essere fatta sia tramite l’app Shelly Cloud (per Android e iOS)  sia attraverso l’access point da essi fornito a fronte di un reset alle impostazioni di fabbrica. Il componente dev’essere collegato, sempre tramite l’app Shelly Cloud, al cloud del produttore. Opzionalmente ci serviranno l’username/password in uso presso tale app.

Si assume inoltre che su Home Assistant sia già installato e funzionante il componente HACS.

Si parte

Installare il componente

Installare il componente è un gioco da ragazzi, quando si utilizza il comodissimo HACS. Per farlo è sufficiente recarsi alla voce “HACS” del menu laterale dell’interfaccia Home Assistant, cliccare in alto su “Integrazioni” e cercare “ShellyForHASS“.

ShellyForHASS - Ricerca HACS

Una volta trovato, cliccarvi sopra per accedere alla maschera tramite la quale provvedere all’installazione del componente cliccando “Installa“:

ShellyForHASS - HACS

 

Terminata l’installazione non è necessario riavviare Home Assistant. Un nuovo box ci informerà del fatto che il componente non solo è stato installato, ma non necessita riavvio dell’HUB né configurazioni manuali: è infatti possibile utilizzare l’interfaccia “Integrazioni“.

Attenzione però: sperimentando la comoda integrazione via interfaccia grafica abbiamo avuto qualche problema. Pertanto, questa guida non solo illustra come utilizzare il file di configurazione manuale, ma spiega anche qualche trucco per ottenere delle entità aggiuntive particolarmente comode (sensore che indica eventuali aggiornamenti firmware, intensità segnale Wi-FI eccetera).
L’utente ha ovviamente la piena libertà nell’utilizzare l’interfaccia grafica, se crede.

Configurazione

Giunti a questo punto abbiamo provveduto sì a installare il componente ma non a configuralo presso l’HUB.
Per attivare il componente è sufficiente aggiungere in configurazione la seguente riga:

shelly:

e riavviare Home Assistant.

Completato il riavvio, recandosi alla voce “Impostazioni” > “Integrazioni” una nuova voce sarà apparsa:

ShellyForHASS - Menu Integrazioni

il che indica il corretto avvio del componete.
Cliccando sulla voce si entra nel dettaglio dei componenti Shelly automaticamente riconosciuti:

ShellyForHASS - Menu Integrazioni - Elenco

Ogni riga rappresenta un componente (tipologia e ID, eg. “6CDF1E” – ID che tornerà utile in seguito). Cliccando su ogni singola riga è possibile visualizzare i dettagli relativi alle entità collegate al dispositivo e gli shortcut per creare automazioni, script eccetera ad esse legati.

Shelly Cloud

Il componente “ShellyForHASS” prevede anche un’integrazione di tipo Cloud Polling la quale consente di recuperare alcune informazioni legate ai componenti censiti (come per esempio il nome assegnato dall’utente ai singoli componenti, e altro).

Per attivare questa funzionalità è necessario ottenere due campi:

  • token (authorization key);
  • server di riferimento.

Per farlo innanzitutto collegarsi via browser allo Shelly Cloud e autenticarsi:

Shelly Cloud - Log in login

successivamente recarsi sulla propria scheda utente alla voce “Get Key“:

Shelly Cloud - Get Key

Cliccare sul tasto e, successivamente, copiare da parte chiave

Shelly Cloud - Get Key - Chiavi

N.b. Della chiave “Server” va copiata solo la parte seguente a “https://” (eg. “shelly-4-eu.shelly.cloud“).

A questo punto riaprire il file di configurazione di Home Assistant e modificare la voce “shelly:” precedentemente inserita nel modo che segue:

shelly:
  cloud_auth_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  cloud_server: "shelly-XXXXX.shelly.cloud"

nei due campi andranno inseriti rispettivamente il proprio token e il proprio server ottenuti tramite Shelly Cloud, per esempio:

shelly:
  cloud_auth_key: "MWQwOWZ1aWQE2A178A0988F856361FC1C402B830A88CDB4AFEDB8C6"
  cloud_server: "shelly-4-eu.shelly.cloud"

riavviare dunque Home Assistant.

Terminato il riavvio, sempre presso la voce “Integrazioni” si potrà notare facilmente come i nomi dei dispositivi (non quelli delle entità) siano cambiati:

ShellyForHASS - Menu Integrazioni - Elenco - Con info Shelly Cloud

ereditando appunto dal cloud alcune informazioni.

Discovery

Fin qui abbiamo lasciato che fosse il componente a scoprire automaticamente quali componenti Shelly siano disponibili sulla nostra Wi-Fi: la funzione di auto-discovery, infatti, è abilitata di default. Essa può essere disabilitata, indicando al componente l’elenco puntuale dei dispositivi e delle funzionalità da censire.

Per esempio:

shelly:
  discovery: false
  version: true #aggiunge un sensore di versione
  sensors:
    - all
  devices:      #componenti di censire, elenco
    - id: "420FC7"
    - id: "13498B-1"   #Shelly 2.5, Id + Numero di canale
    - id: "7BD5F3"
      name: La mia spina   #Imposta un "friendly name"
      sensors: #indica quali sensori 
         - power
         - device_temp

Così facendo, utilizzando gli ID dei componenti, posso esplicitare cosa mi interessi integrare e cosa no.

Ma se volessi utilizzare l’auto-discovery ma precisando alcune configurazioni?
Ecco un esempio:

shelly:
  discovery: true  #auto-discovery attivo
  sensors: #sensori da mostrare (può essere scavalcato da una configurazione di dettaglio seguente)
    - rssi
    - uptime
    - has_firmware_update
  devices:  #personalizzazione dei dispositivi
    - id: "420FC7"
      light_switch: true  #lo integra a Home Assistant come "Light"
      sensors: [ switch ] #scavalca le impostazioni dei sensori
    - id: "7BD5F3"
      name: La mia spina #Imposta un "friendly name"

E se volessi integrare i componenti via IP? Ecco:

shelly:
  discover_by_ip:
    - '192.168.5.44'
    - '192.168.32.11'

I parametri possibili sono innumerevoli.


Ulteriori informazioni

Il componente è piuttosto versatile: si rimanda alla pagina ufficiale del componente per qualunque ulteriore implementazione e configurazione custom.

ShellyForHASS - Esempio entità


Home Assistant Official Logo 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.


Telegram News Channel