community italiana di domotica personale
 
Integrare componenti Sonoff con firmware originale a Home Assistant (v2)

Integrare componenti Sonoff con firmware originale a Home Assistant (v2)

SCOPI DELLA GUIDA:
  • Integrare uno o più elementi della famiglia ITEAD “Sonoff Smart Home” dotato di firmware originale (3.x o superiori) all’HUB personale Home Assistant
  • Livello di difficoltà: basso
  • Categoria d’integrazione: Local Push (con uso di Cloud Polling una tantum, ma non obbligatoriamente)
CONCETTI AFFRONTATI:
  • Configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
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.3

Home Assistan + Sonoff

Abstract

I componenti della linea ITEADSonoff Smart Home” sono tra i più apprezzati per l’uso in domotica personale ma al contempo hanno sofferto dell’impossibilità di essere integrati – così come usciti dalla fabbrica – a Home Assistant o altri HUB personali.

Per integrare Sonoff a Home Assistant esistono varie possibilità; una delle alternative (che noi continuiamo a considerare, a prescindere, la strada da intraprendere) è quella di adottare sui componenti da integrare dei firmware custom utili a fornire all’utente maggiore libertà di configurazione nonché un’integrazione certa (solitamente via MQTT) con qualsiasi HUB personale e similari.

Chi proprio non volesse intraprendere la luminosa strada della riprogrammazione firmware (sulla quale non ci dilungheremo – ma è davvero la strada che consigliamo caldamente a tutti), ora ha una soluzione: SonoffLAN. Si tratta di un “custom component” (quindi un componente non ufficiale di Home Assistant) che, a differenza di altri custom (come per esempio “HASS-sonoff-ewelink”) ha il vantaggio evidente di utilizzare solo la rete locale per censire e comandare i componenti così integrati: si tratta quindi di una valida integrazione di tipo Local Push, la quale funziona quindi a prescindere che Internet e/o il cloud ITEAD stiano funzionando o meno.

Lo svantaggio è che, trattandosi di un custom component, è vincolato al fatto che lo sviluppatore continui, nel tempo, ad aggiornarlo rispetto agli aggiornamenti del firmware ITEAD e a quelli Home Assistant: ciò che oggi funziona, tra tre mesi potrebbe non funzionare più (cosa che non accade adottando per esempio uno standard come MQTT tramite firmware alternativi).

Ciò detto, questa guida illustra come integrare a Home Assistant componenti ITEAD Sonoff con firmware 3.0 o superiori tramite il custom component SonoffLAN.

Si parte

Verifiche propedeutiche

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

  • di aver provveduto alla prima configurazione del componente tramite l’app eWeLink (per Android e iOS);
  • aver provveduto all’aggiornamento firmware (versioni dalla 3.x in su);
  • di aver verificato che il componente da integrare sia parte della lista dei componenti supportati.

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

Installazione

Installare “SonoffLAN” è semplice, quando si utilizza il comodissimo HACS ma ATTENZIONE: se si utilizzano altri componenti d’integrazione Sonoff (eg. “HASS-sonoff-ewelink“) provvedere a rimuoverle.

N.b. L’unico vantaggio di “HASS-sonoff-ewelink” rispetto a “SonofLAN” è la possibilità di integrare – via cloud – componenti Sonoff presenti su reti diverse (eg. una seconda casa). Tenerlo in considerazione, qualora questo sia un must: dato che i due componenti sono mutuamente esclusivi, scegliere con attenzione quale dei due implementare.

Per farlo è sufficiente recarsi alla voce “HACS” del menu laterale dell’interfaccia Home Assistant, cliccare su “Integrations“, poi sui tre puntini in alto a destra e aggiungere un “repository personalizzato” di categoria “integrazione” (copia-incolla della seguente stringa):

AlexxIT/SonoffLAN

Dopodiché recarsi alla voce HACS “Integrations” e cercare “SonoffLAN“. Si troverà il seguente plugin:

SonoffLAN - Ricerca HACS

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

SonoffLAN - HACS

Terminata l’installazione, riavviare Home Assistant.

Vetrina - Offerte del giorno

Integrazione Home Assistant

Per far sì che i propri componenti Sonoff vengano censiti correttamente da Home Assistant è possibile perseguire due strade, quella automatica e quella manuale:

  • automatica: consente al componente di scaricare dal cloud ITEAD (ad ogni riavvio di Home Assistant) l’elenco dei dispositivi, che successivamente vengono gestiti automaticamente (e solo via LAN);
  • manuale: consente al componente di integrare direttamente i componenti totalmente distaccandosi dal cloud ITEAD.
PROCEDURA AUTOMATICA

La procedura automatica prevede di aggiungere al file di configurazione l’accoppiata username/password (o numero di telefono/password) utilizzata solitamente sull’app eWeLink:

sonoff:
  username: proprio_username
  password: propria_password

per esempio:

sonoff:
  username: staff@indomus.it
  password: propria_password

Al termine della configurazione salvare e riavviare Home Assistant.
Dopo l’avvenuto riavvio, i componenti configurati presso eWeLink verranno automaticamente censiti dall’HUB e integrati sotto forma di entità (di diversa natura) controllabili dall’utente.

L’elenco viene salvato nel file .sonoff.json presso la cartella delle configurazioni YAML dell’HUB; il componente non effettua nuovamente richieste al Cloud: ne fa una e una sola, la prima volta e basta. In caso vengano aggiunti nuovi componenti su eWeLink, semplicemente cancellare tale file e riavviare Home Assistant, oppure variare la configurazione come segue:

sonoff:
  username: proprio_username
  password: propria_password
  reload: always

per far sì che il refresh via cloud avvenga sempre, ad ogni riavvio dell’HUB.

PROCEDURA MANUALE

Per evitare la configurazione automatica (quindi evitate totalmente l’accesso al cloud) è necessario, a monte, raccogliere le devicekey dei singoli componenti.

Per farlo, eseguire la seguente procedura:

  1. Impostare il componete in modalità setup;
  2. Collegarsi col computer o smartphone/tablet alla Wi-Fi AP così generata chiamata “ITEAD-10000” (password “12345678“);
  3. Aprire col browser l’indirizzo http://10.10.7.1/device;
  4. Copiarsi deviceid and apikey (quest’ultima è la devicekey);
  5. Ricollegarsi alla Wi-Fi domestica.

A questo punto è possibile provvedere alla configurazione, come segue:

sonoff:
  devices:
    valore_deviceid:
      devicekey: api_key_ottenuta_dalla_procedura_sopra

dove ovviamente la chiave valore_deviceid dovrà avere come nome quello del deviceid precedentemente ottenuto dalla procedura e il valore della chiave devicekey dovrà corrispondere alla apikey sempre ottenuta con la procedura.

Esempio:

sonoff:
  devices:
    1000abcdefg:
      devicekey: f9765c85-463a-4623-9cbe-8d59266cb2e4

Una volta elencati tutti i componenti, riavviare Home Assistant.
Dopo l’avvenuto riavvio, i componenti configurati presso eWeLink verranno automaticamente censiti dall’HUB e integrati sotto forma di entità (di diversa natura) controllabili dall’utente.

Personalizzazioni

Quale sia la strada intrapresa per integrare, è possibile aggiungere delle personalizzazioni.

Innanzitutto, è possibile far in modo che l’integrazione di interruttori generi su Home Assistant delle entità di tipo “Light” piuttosto che di tipo “Switch“:

sonoff:
  username: proprio_username
  password: propria_password
  reload: once
  devices:
    1000abcde0: # luce del corridoio
      device_class: light
    1000abcde1: # la luce della cameretta (due interruttori, un'entità luce)
      device_class:
      - light: [1, 2]

Altresì è possibile fare in modo che tutti gli switch vengano considerati luci:

sonoff:
  username: proprio_username
  password: propria_password
  default_class: light

Specificità dei modelli

Sonoff POW

In caso si integri un Sonoff POW (interruttore singolo con misurazione di assorbimento elettrico) è possibile definire tre entità “Template Sensor” che forniscano le letture:

sensor:
- platform: template
  sensors:
    voltaggio:
      value_template: "{{ state_attr('switch.sonoff_1000abcdefg', 'voltage') }}"
    amperaggio:
      value_template: "{{ state_attr('switch.sonoff_1000abcdefg', 'current') }}"
    potenza:
      value_template: "{{ state_attr('switch.sonoff_1000abcdefg', 'power') }}"

Ovviamente switch.sonoff_1000abcdefg dovrà essere il nome dell’entità integrata all’HUB relativa al Sonoff POW in questione.

Sonoff TH

In caso si integri un Sonoff POW (interruttore singolo con misurazione di assorbimento elettrico) è possibile definire due  entità “Template Sensor” che forniscano le letture di temperatura e umidità relativa:

sensor:
- platform: template
  sensors:
    temperatura:
      friendly_name: Temperature
      device_class: temperature
      value_template: "{{ state_attr('switch.sonoff_1000abcdefg', 'temperature') }}"
    umidità:
      friendly_name: Humidity
      device_class: humidity
      value_template: "{{ state_attr('switch.sonoff_1000abcdefg', 'humidity') }}"

Ovviamente switch.sonoff_1000abcdefg dovrà essere il nome dell’entità integrata all’HUB relativa al Sonoff TH in questione.

Ulteriori info

Ulteriori informazioni sono disponibili sul repository GitHub dello sviluppatore.

⚠️ 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.