community italiana di domotica personale
 
Home Accessory Architect (HAA): rendere compatibile Apple HomeKit un componente ESP8266 (Sonoff, Shelly, ecc.)

Home Accessory Architect (HAA): rendere compatibile Apple HomeKit un componente ESP8266 (Sonoff, Shelly, ecc.)

SCOPI DELLA GUIDA:
  • Riprogrammare il firmware di un componente domotico basato su SOC ESP8266 con firmware Home Accessory Architect (HAA) al fine di renderlo direttamente compatibile con Apple HomeKit
  • Livello di difficoltà: basso
CONCETTI AFFRONTATI:
  • Riprogrammazione firmware
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
  • Il componente target da riprogrammare
  • Un adattatore USB/TTL (FTDI) e relativo cavo di connessione USB (solitamente necessario ma non obbligatorio)
  • Dei cavetti di connessione Dupont ed eventualmente contatti pin (opzionali)
  • Un saldatore (opzionale)
  • Un computer di appoggio (Apple, Windows o Linux)
GUIDA maggiormente indicatA per:

Tutti gli ambienti

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.0

Abstract

Ogni dispositivo elettronico contiene a grandi linee una piccola porzione software, chiamata firmware, che ne determina funzioni e comportamento. La nostra automobile è dotata di diversi firmware; ne possiede uno la lavatrice, il nostro telecomando, persino una radiosveglia è dotata di un proprio firmware.

I dispositivi basati su SOC ESP8266 (un processore dotato di Wi-Fi piuttosto in voga per il basso costo, le limitate dimensioni e la grande versatilità) non sono da meno: tutti montano un proprio firmware, solitamente scritto e compilato dal produttore. Un classico esempio viene dai dispositivi della linea ITEAD Sonoff “Smart Home” o Shelly “Home Automation Systems” i quali, prevalentemente, montano tale SOC (System-On-a-Chip).

Usando una similitudine, riprogrammare (o flashare) il firmware di un dispositivo è come sovrascrivere per intero una videocassetta VHS. Bene: i dispositivi che montano l’ESP8266 si prestano facilmente a tale riprogrammazione, la quale, per lo più, viene effettuata allo scopo di dotare i componenti di funzionalità aggiuntive (o comunque diverse) da quelle di fabbrica.

È il caso di firmware alternativi gratuiti scritti per dispositivi basati su SOC ESP8266: vengono implementati per “liberare” i dispositivi dal firmware di fabbrica e implementare, appunto, molte funzionalità aggiuntive. La presente guida illustra come riprogrammare un dispositivo ESP8266 al fine di renderlo direttamente compatibile con lo standard Apple HomeKit tramite l’adozione del firmware Home Accessory Architect (noto anche con l’acronimo di HAA o Ravencore v2, progetto di cui è l’evoluzione).

Works With Apple HomeKit

Il firmware HAA, sviluppato in licenza Open Source dallo sviluppatore indipendente José A. Jiménez, è concepito espressamente per dotare i dispositivi basati su SOC ESP8266 della possibilità di essere gestiti tramite Apple HomeKit – il che rappresenta un vantaggio e uno svantaggio allo stesso tempo.

Una digressione sul tema è importante.

Apple HomeKit è un progetto di valore concepito da Apple al fine a rendere “facile” la domotica personale. L’idea, inizialmente ben delineata da Apple, ha stentato molto in questi ultimi anni ad evolvere (e il WWDC 2019 non ci ha fatto cambiare idea), al punto che altri progetti di domotica personale non solo l’hanno raggiunta, ma l’hanno abbondantemente superata in termini di esperienza utente, flessibilità, integrabilità dei componenti più disparati. Basti pensare all’enorme successo – giustificato – dell’HUB personale software Home Assistant.

Un componente reso compatibile con un solo standard (mediamente chiuso) come Apple HomeKit è un approccio mai consigliabile, motivo per cui Home Accessory Architect (che resta un’ottimo progetto) non è tra i nostri firmware alternativi preferiti: progetti eccezionali come il solido Tasmota o l’emergente ESPHome, infatti, sono ampiamente preferibili per l’ampio margine di manovra (odierno e futuro) da essi garantito (grazie all’adozione di protocolli standard aperti come MQTT e molto altro).

È altresì vero che l’adozione di HAA permette di controllare direttamente e in modo rapido tutti dispositivi che lo adottino tramite Apple HomeKit. Certo è che un domani, quando Apple HomeKit non dovesse più bastare alle proprie esigenze (e credeteci, non è assolutamente uno scenario improbabile) e si volessero adottare altri ecosistemi, la precedente adozione di questo firmware sarebbe un grosso limite che andrebbe risolto cambiando la propria configurazione.

La soluzione che salva capra è cavoli è adottare da subito un HUB come Home Assistant e integrarvi da subito i propri componenti ESP8266 (per lo più senza neanche cambiargli firmware!) – e non solo quelli – per poi esporre tutto, in un battibaleno, verso l’app Apple “Casa”, e controllare tramite essa la domotica. A questa soluzione – quella che vi consigliamo caldamente – abbiamo dedicato un FOCUS ad hoc.


Ciò detto, dedichiamo volentieri a Home Accessory Architect questa guida dedicandola a coloro che, per motivi propri, decidano tutto sommato di adottare questo comunque valido firmware. Il nostro punto di vista ve l’abbiamo dato. 😉

Si parte

Scaricare HAA

In primis è necessario scaricare sul computer di appoggio il pacchetto composto da tre file distinti:

N.b. Segnarsi da parte la cartella dove si è provveduto a scaricare i tre file.

Collegamento

A questo punto è necessario collegare il dispositivo tramite adattatore USB/TTL avendo cura di impostarlo contestualmente in modalità “flash”. La procedura di collegamento è  la solita descritta nella nostra MASTERGUIDE; per quanto riguarda invece come provvedere ad impostare la modalità flash, tale procedura varia da dispositivo a dispositivo.
Per quanto riguarda i Sonoff, su inDomus abbiamo una scheda ad hoc.

Una volta effettuato il collegamento e impostata la modalità “flash”, verificare la porta di comunicazione e segnarsela.

Upload del firmware

Ora è possibile effettuare, tramite le solite procedure via esptool, la scrittura del firmware HAA sul dispositivo.
Tramite terminale del computer d’appoggio al quale è collegato il dispositivo tramite l’adattatore USB/TTL, eseguire il seguente comando di cancellazione del firmware presente sul dispostivo target:

esptool.py -p /dev/<porta_USB_TTL> erase_flash

avendo cura di sostituire “/dev/<porta_USB_TTL>” con la porta sul quale è attestato l’adattatore (eg. “COMx” o “/dev/tty-usbserial-xxxx“, spesso “/dev/tty.USB0000“).

Eseguita la cancellazione, raggiungere ad terminale il percorso nel quale si è provveduto a salvare i tre file che compongono il firmware e poi eseguire il seguente comando:

esptool.py -p /dev/<porta_USB_TTL> --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 haaboot.bin

anche qui avendo cura di sostituire “/dev/<porta_USB_TTL>” con la porta sul quale è attestato l’adattatore.
Al termine, scollegare l’adattatore USB/TTL dal computer e dal dispositivo.

N.b. In caso si utilizzi una versione vecchia di esptool, modificare -fs 1MB in -fs 8m.

Configurare la Wi-Fi

Dopo l’avvenuta disconnessione dell’adattatore, provvedere ad alimentare il dispositivo tramite rete elettrica per accenderlo. Non conoscendo la Wi-Fi domestica, il dispositivo dotato di HAA provvederà ad avviare un proprio access-point.

ATTENZIONE: In caso di dispositivo della linea Shelly provvedere ad alimentare la board continuando ad utilizzare l’adattatore USB/TTL e non la rete elettrica 220v. Questo potrà esser fatto solo alla fine della procedura di configurazione.

A questo punto – tramite uno smartphone/tablet iOS (nessuno vieta di farlo usandone altri, ma avrebbe poco senso, dato lo scopo dell’utilizzo di HAA) – collegarsi alla Wi-Fi AP avviato dal dispositivo appena dotato di firmware HAA: il SSID (il nome della rete) presenterà il prefisso “HAA-” seguito da una parte del MAC address Wi-Fi del dispositivo. Selezionarlo ed entrare in tale rete.

Dopo pochi secondi si aprirà l’interfaccia captive portal che consente di configurare, in prima battuta, la rete Wi-Fi domestica.

HAA OTA Config

Selezionare dunque la propria Wi-Fi dall’elenco inserendo poi la relativa password d’accesso. Infine, cliccare su “Join“. Il dispositivo si riavvierà a provvederà ad accedere autonomamente alla Wi-Fi domestica.

Attendere ora fino a 7 minuti, nei quali il dispositivo non andrà assolutamente spento e durante i quali non darà alcun segno di vita. Al termine della procedura il dispositivo si riavvierà e un doppio lampeggio del led del dispositivo confermerà il completamento dell’attività di configurazione.

Configurazione specifica

A questo punto, dopo il riavvio, il dispositivo si collegherà alla Wi-Fi. Avremo dunque bisogno dell’indirizzo IP a cui collegarci tramite browser: lo si potrà trovare facilmente tramite l’interfaccia web del proprio modem/router oppure con un qualsiasi tool di scansione reti (eg. Fing). Se l’IP assegnato sarà (per esempio) il 192.168.1.100, l’interfaccia web alla quale collegarsi sarà disponibile all’indirizzo http://192.168.1.100.

A questo punto interviene una fase fondamentale dell’adozione di HAA: la configurazione del dispositivo. Sì, perché al momento il device non può far nulla, un po’ quello che succede adottando il firmware ESPHome subito dopo la prima configurazione di base.

Per comunicare al firmware come controllare il device – e quindi “cosa” esporre verso l’app Apple “Casa” è necessario definire una stringa in notazione JSON la quale contenga la configurazione specifica del dispositivo. Tali stringhe sono già disponibili in un database sempre aggiornato, ma è possibile imparare a modellarle da sé in base alle proprie esigenze.

Ipotizziamo che il dispositivo in questione sia un Sonoff Basic; la stringa JSON di configurazione (come semplice switch) è la seguente:

{“c”:{“l”:13,”b”:[{“g”:0,”t”:5}]},”a”:[{“0”:{“r”:[{“g”:12}]},”1″:{“r”:[{“g”:12,”v”:1}]},”b”:[{“g”:0}]}]}

tale stringa va copiata e incollata nel box “JSON Config” dell’interfaccia web:

HAA OTA JSON Config

Una volta cliccato “SAVE“, il componente si riavvierà e sarà pronto per essere integrato all’app “Casa”.

Integrazione a “Casa”

Ora il dispositivo sarà pronto per essere associato alla nostra app “Casa” tramite iPhone/iPad.
Avendo cura che il dispositivo iOS sia collegato alla medesima Wi-Fi del dispositivo dotato di firmware HAA, presso l’app “Casa” cliccare su “Aggiungi dispositivo” e inquadrare, con la telecamera del dispositivo iOS, il seguente codice:

QRCode Code - HAA HomeKit

oppure

Pairing Code - HAA HomeKit

 

A questo punto l’app visualizzerà l’elenco dei dispositivi rilevati, tra i quali sarà presente il nostro dispositivo dotato di firmware Home Accessory Architect, facilmente riconoscibile dall’etichetta con prefisso “HAA-” e suffisso relativo al proprio MAC address:

 

 

N.b. Il dispositivo verrà riconosciuto come non certificato: è normale, cliccare su “Aggiungi comunque” per procedere oltre.

Al termine della procedura (della durata di circa 30 secondi) l’app “Casa” consentirà di perfezionare la configurazione dell’accessorio (il suo nome, se includerlo nei preferiti ecc.) e, al termine, lo visualizzerà come di consueto presso la sua interfaccia.

N.b. Se l’associazione fallisce, spegnere e riaccendere il dispositivo, poi riavviare nuovamente la procedura.

Gli utenti Apple HomeKit/Siri e la domotica Home Assistant


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.