community italiana di domotica personale
 
Integrare ITEAD Sonoff con firmware originale a Home Assistant

Integrare ITEAD Sonoff con firmware originale a Home Assistant

SCOPI DELLA GUIDA:
CONCETTI AFFRONTATI:
  • Configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
  • Il computer sul quale è in esecuzione Home Assistant
  • uno smartphone/tablet Android o Apple iOS
  • Il componente ITEAD da integrare
GUIDA INDICATA A UTENTI CON ISTALLAZIONE:
Ambienti Home Assistant HassOS-Supervised-Core
NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione guida: 1.4

ATTENZIONE: QUESTA GUIDA È CONSIDERATA OBSOLETA A PARTIRE DA APRILE 2020.
AL SUO POSTO È STATA RILASCIATA UNA GUIDA RIVISTA E MAGGIORMENTE DETTAGLIATA.

Abstract

Come noto, la pratica più consolidata è quella di dotare i componenti basati su SOC ESP8266 (come, per l’appunto, la maggior parte degli ITEAD) di firmware alternativi utili a fornire all’utente maggiore libertà di configurazione nonché un’integrazione certa (solitamente via MQTT) con qualsiasi HUB personale e similari. Qualora non si voglia affrontare la procedura di riprogrammazione del firmware, è possibile utilizzare questo componente, tenendo sempre in considerazione che:

  • l’integrazione è garantita in base alla matrice di compatibilità (binomio modello/versione del firmware originale);
  • l’integrazione, quando funzionante, non sempre garantisce l’utilizzo di tutte le funzionalità del dispositivo integrato (eg. il Sonoff POW R2 con firmware 3.3.x);
  • l’integrazione utilizza il cloud ITEAD come tramite, pertanto in assenza di connessione internet, l’integrazione smetti di funzionare.

L’integrazione, come detto, utilizza il cloud di ITEAD: in pratica il componente Sonoff si collega ad esso tramite la previa configurazione della solita app mobile eWeLink (usata per configurare e gestire i componenti della famiglia Sonoff) e Home Assistant, tramite “HASS-sonoff-ewelink”, fa lo stesso, autenticandosi al cloud con le medesime credenziali dell’app eWeLink: questa connessione “ponte” permetterà quindi all’HUB di “vedere” il Sonoff e quindi di integrarlo.

Si parte

Verifiche propedeutiche

Prima di avventurarsi nell’integrazione tramite firmware originale è necessario appurare:

  • di avere l’accessorio da integrare già configurato presso l’app eWeLink;
  • di verificare che il binomio accessorio/versione firmware originale (verificabile tramite app eWeLink) sia incluso tra quelli integrabili consultando la matrice di compatibilità.

Il mancato rispetto di questi punti renderà non possibile l’integrazione in queste modalità.

Installazione del componente

La procedura prevede di scaricare da GitHub il file .zip contenente il componente, decomprimerlo e copiarne la cartella “sonoff” in esso contenuta dentro la cartella “custom_components” a sua volta contenuta all’interno di quella che solitamente conserva i file di configurazione di Home Assistant (se non esiste, crearla).

Tale cartella solitamente corrisponde:

  • se installato come applicativo su Raspberry Pi OS (Raspbian), alla cartella “/home/homeassistant/.homeassistant“;
  • su Home Assistant OS, alla cartella “/config/

Per copiare la cartella “sonoff” si consiglia di utilizzare sFTP (magari utilizzando il client Filezilla), il quale è operativo in presenza del servizio SSH. Per installare SSH su Home Assistant OS, far riferimento a questa guida.

Dalla 0.101.x in poi

Dalla versione 0.101.x di Home Assistant in poi si è reso necessario:

  • rimuovere la riga “REQUIREMENTS” presente nel file __init__.py
  • aggiungere un file chiamato sonoff.json contenente il seguente codice:
{
  "domain": "sonoff",
  "name": "Sonoff / eWeLink",
  "documentation": "https://github.com/peterbuga/HASS-sonoff-ewelink",
  "dependencies": [],
  "codeowners": ["@peterbuga"],
  "requirements": ["uuid", "websocket-client==0.54.0"]
}

Infine: in caso di di Home Assistant installato come applicativo su Raspberry Pi OS (Raspbian), avere cura di eseguire il seguente comando per sistemare i permessi sul file system:

sudo chmod -R 0777 /home/homeassistant

Configurazione Home Assistant

In primis, assicuratevi di avere WebSocket installato sul server.
In caso utilizziate Home Assistant installato come applicativo su Raspberry Pi OS (Raspbian), i comandi sono i seguenti:

sudo systemctl stop home-assistant@homeassistant.service
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install websocket-client
exit
sudo systemctl start home-assistant@homeassistant.servic

A questo punto è possibile variare la configurazione di Home Assistant allo scopo di aggiungervi il seguente blocco:

sonoff:
  username: [email o numero telefonico]
  password: [password]
  scan_interval: 60
  grace_period: 600
  api_region: 'eu'
  entity_prefix: True
  debug: False

Spiegazione dei campi:

Campo Valore
sonoff: (Obbligatorio) Identifica il blocco di configurazione relativo al componente “HASS-sonoff-ewelink“.
username (Stringa, obbligatoria) Proprio nome utente presso il cloud ITEAD.
password (Stringa, obbligatoria) Propria password presso il cloud ITEAD.
scan_interval (Intero, facoltativo) Numero di secondi tra un aggiornamento e l’altro. Minimo 60.
grace_period (Intero, facoltativo) Dato che non è possibile collegarsi col proprio account da più di un client alla volta, in caso ci si colleghi via app Home Assistant viene automaticamente disconnesso: questo valore indica per quanti secondi Home Assistant non deve cercare di autenticarsi nuovamente.
api_region (Stringa, facoltativa) Indica il continente dal quale collegarsi. Il default è “eu“; altri possibili valori sono “us“, “as” e “cn“.
entity_prefix (Booleano, facoltativo) Se impostato a “true” elimina il prefisso “sonoff_” dal nome delle entità generate su Home Assistant tramite l’integrazione.
debug (Booleano, facoltativo) Se impostato a “true” attiva la modalità di debug. Maggiori info sulla modalità di debug sono disponibili qui.

Dopo l’avvenuta configurazione, riavviare Home Assistant.

Uso

A questo punto non è necessario altro che iniziare ad utilizzare le entità che saranno state generate dal componente, tipicamente di tipologia “Switch” e “Sensor“.

Home Assistant Switch
un esempio di switch.

Una eventuale , successiva aggiunta di attuatori e sensori all’app eWeLink (sempre compatibili con la matrice di compatibilità) genererà automaticamente, presso Home Assistant, le corrispondenti entità.

AGGIORNAMENTO FIRMWARE

Un’accortezza importante: in caso di necessità di aggiornamento del firmware originale di uno o più componenti ITEAD (ovviamente, ricordarsi di verificare la matrice di compatibilità per non rischiare di perdere la possibilità di integrarlo con Home Assistant), prima ricordarsi di stoppare Home Assistant, e solo dopo l’avvenuto aggiornamento firmware provvedere a farlo ripartire.

⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui.

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa.