Ravencore: rendere compatibile Apple HomeKit un componente ESP8266 (Sonoff, Shelly ecc.)

6 minuti di lettura
SCOPI DELLA GUIDA
  • Riprogrammare il firmware di un componente domotico basato su SOC ESP8266 con firmware Ravencore al fine di renderlo direttamente compatibile con Apple HomeKit
  • Livello di difficoltà: medio
CONCETTI AFFRONTATI:
  • Riprogrammazione firmware
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI
DISPOSITIVI FISICI UTILIZZATI:
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.
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.

esp8266 wifi
ESP8266.

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 Apple HomeKit tramite l’adozione del firmware esp-homekit-devices (noto anche come Ravencore).

Works With Apple HomeKit

Il firmware Ravencore, 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à, compatibilità con i componenti di un mercato sempre più ampio. Basti pensare all’enorme successo di Home Assistant.

Un componente reso compatibile con un solo standard (mediamente chiuso) come Apple HomeKit è un approccio mai consigliabile, motivo per cui Ravencore (che resta un’ottimo progetto) non è tra i nostri firmware alternativi preferiti: progetti come Sonoff-Tasmota o ESPurna, 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. È altresì vero che l’uso di Ravencore permette di controllare direttamente e in modo rapido tutti dispositivi che lo adottino (e comunque si fa sempre in tempo a cambiare firmware – sempre che i dispositivi non siano montati su impianti non facilmente raggiungibili) tramite Apple HomeKit.

Comunque di grande interesse per la qualità del progetto, Ravencore merita ampiamente questa e le guide che seguiranno.

Procedimento

Per macro-passaggi, il procedimento è il seguente:

Scaricare Ravencore

In primis è necessario scaricare sul computer di appoggio il pacchetto Ravencore, 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 guida 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 Ravencore sul dispositivo.
Tramite terminale del computer d’appoggio al quale è collegato il dispositivo tramite l’adattatore USB/TTL, raggiungere il percorso nel quale si è provveduto a salvare i tre file che compongono il firmware Ravencore 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 otaboot.bin

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“).

Eseguire dunque il comando per provvedere alla scrittura sul dispositivo. Al termine, scollegare l’adattatore USB/TTL dal computer e dal dispositivo.

Dopo l’avvenuta disconnessione, provvedere ad alimentare il dispositivo per accenderlo; attendere poi circa cinque minuti: al termine, il LED del dispositivo (se presente) lampeggerà per un paio i secondi.

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 guida, ovvero quando tramite “Eve” sarà stata scelta la tipologia di board. Diversamente, la board verrà danneggiata inesorabilmente.

Accedere al dispositivo

A questo punto – tramite uno smartphone/tablet iOS (nessuno vieta di farlo usandone altri, ma avrebbe poco senso, dato lo scopo dell’utilizzo di Ravencore) – collegarsi alla W-Fi esposta dal dispositivo appena “Ravencorizzato”: il SSID (il nome della rete) presenterà il prefisso “LCM-” seguito da una parte del MAC address Wi-Fi del dispositivo:

Una volta collegati, apparirà una maschera presso la quale inserire le informazioni vitali per il dispositivo:

  • coordinate d’accesso alla W-Fi domestica;
  • repository per l’aggiornamento automatico del firmware.

In primis, scegliere la propria Wi-Fi e inserire la password. Nel campo seguente “OTA repository” inserire “RavenSystem/ravencore“; infine nel campo “OTA binary file” inserire “main.bin“.

Infine, cliccare su “Join“.

Il dispositivo si riavvierà a provvederà ad accedere autonomamente alla Wi-Fi domestica.

Aggiungere il dispositivo 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 Ravencore, presso l’app “Casa” cliccare su “Aggiungi dispositivo” e inquadrare, con la telecamera del dispositivo iOS, il seguente codice:

 

Pairing Code - Ravencore HomeKit

 

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

 

 

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

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

Configurazione tramite “Eve”

Completata la prima configurazione di cui sopra il dispositivo sarà correttamente censito presso Apple HomeKit.

Ciò che manca è, in base alla tipologia fisica di dispositivo, una corretta configurazione del dispositivo rispetto alle sue caratteristiche (presenza di sensori, di diversi relè ecc.) e il comportamento atteso (eventuali inching, self-locking eccetera).

Rispetto ad altri firmware, Ravencore consente la configurazione di caratteristiche e funzionamento dei dispositivi che lo adottino attraverso l’uso di un’app iOS chiamata Elgato “Eve”, nota tra le altre cose per la capacità di amministrare le risorse HomeKit e di abilitare ad automazioni più dettagliate e complete di quanto non sia possibile fare, di base, tramite l’app “Casa” di Apple.

Una volta lanciata “Eve” apparirà a schermo l’elenco dei dispositivi fin qui censiti presso Apple HomeKit, tra i quali il dispositivo Ravencore di recente aggiunta, affiancato da un altro elemento, chiamato “Setup”, il quale consentirà di configurare le specificità del dispositivo:

Nella schermata che apparirà vengono presentati molte voci diverse, alcune delle quali abbastanza intuitive, altre meno:

 

Elgato Eve - Configurazione Ravencore

 

I campi più interessanti sono certamente “Actual Dev Type“, “Board Type” e “Device Type“: si tratta di voci di grado di consentirci di identificare quale sia, nello specifico, il dispositivo fisico in uso; non da meno voci come

A queste voci dedicheremo prossimamente una guida specifica che illustri, nello specifico, come configurare (in base al dispositivo in uso) queste voci.


Logo Apple HomeKitATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica ad Apple Homekit, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Please comment below