Guida completa in italiano del firmware HAA

Traduzione in italiano della guida pubblicata da José A. Jiménez sul proprio firmware HAA

Introduzione

HAA, ovvero Home Accessory Architect, è un firmware avanzato per qualsiasi dispositivo con controller ESP8266, con aggiornamenti OTA e totalmente personalizzabile tramite l'utilizzo di stringhe JSON.

Installazione con OTA

1. Scarica otaboot.binrboot.bin e blank_config.bin.

2. Collega il tuo dispositivo al tuo adattatore FTDI in flash-mode (di solito tenendo premuto il pulsante del tuo dispositivo mentre lo colleghi).

3. Usa esptool.py per flashare il tuo dispositivo:

Primo, erase flash:

esptool.py -p /dev/your_ESPPort erase_flash

Di solito la tua ESPPorta è qualcosa tipo /dev/tty.USB0000

Poi, imposta il tuo dispositivo in flash-mode di nuovo, e flash il nuovo firmware:

esptool.py -p /dev/your_ESPPort --baud 115200 write_flash -fs 1MB -fm dout -ff 40m \ 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 otaboot.bin

Nota: Se usi una vecchia versione di esptool, devi cambiare -fs 1MB con -fs 8m.

4. Devi configurare la rete wifi e la repository OTA. Per configurare le impostazioni wifi, il disposizitov genera la sua rete Wifi in modalità AP. Devi collegarti a questa rete per impostare la rete wifi. Semplicemente prendi il tuo dispositivo iOS, vai in impostazioni - Wi-Fi, e cerca una rete con LCM- seguito dagli ultimi dati del tuo MAC address, collegati a questa e attendi qualche secondo fino a quando appare una finestra web che mostra tutte le reti wifi che il tuo dispositivo ho trovato. Seleziona la tua rete ed inserisci la password. Non toccare ancora il pulsante Join!!

Ora devi configurare anche la repository OTA. È molto importante che la configuri correttamente, perché in futuro non potrai cambiala (Se sbagli qualcosa, dovrai effettuare nuovamente un erase e ri-flashare il firmware).

•  OTA repository:

RavenSystem/haa

•  OTA binary file:

main.bin

5. Per finire la parte iniziale del setup, clicca sul pulsante Join ed attendi circa 7 minuti perché il processo finisca (Durante l’installazione il dispositivo non mostrerà nulla ed i pulsanti non funzioneranno). Al termine il LED si accende per pochi secondi e potrai aggiungere il tuo accessorio ad Homekit usando l’applicazione Casa.

Nota: Se la procedura fallisce, devi cominciare nuovamente il processo partendo dal punto 2.

Installazione senza OTA

Scarica main.bin dalla Binary Releasesrboot.bin e blank_config.bin.

Quindi, continua con il punto 2 di Installazione sostituendo otaboot.bin con main.bin e ignorando la parte di configurazione di OTA.

HomeKit setup

Nel tuo dispositivo iOS, apri l’app Casa e segui la normale procedura per aggiungere un nuovo accessorio.

Codice per il pairing:

021-82-017

Il pairing del dispositivo richiede circa 30 secondi. Non appena il pairing è terminato, il LED si accende per qualche secondo.

Nota: se il pairing fallisce puoi spegnere il tuo dispositivo, riaccenderlo e iniziare nuovamente l’operazione di nuovo (le impostazioni Wifi restano salvate).

Rientrare in modalità Setup

Entro 30 secondi dall'avvio del dispositivo, attendere circa 5 secondi per consentire al dispositivo di avviarsi completamente, quindi attivare rapidamente qualsiasi pulsante/interruttore 10 volte (tasto fisico o dall'app).

Riconnessione alla rete Wi-Fi

Se la rete Wi-Fi diventa irraggiungibile, il dispositivo continuerà a cercare automaticamente la rete fino a quando questa non sarà disponibile e sarà in grado di connettersi.

Se l'alimentazione viene a mancara e successivamente viene ripristinata il dispositivo proverà a connettersi alla rete Wi-Fi impostata. Se dopo 10 minuti la rete wifi non è raggiungibile, il dispositivo entrerà in modalità di configurazione in modo da potersi connettere e consentire di riconfigurare le impostazioni.

Modalità Setup

Questa modalità è usata per configurare il dispositivo. Puoi configurare le impostazioni WiFi, JSON e resettare l'ID Homekit dell'accessorio.

Quando il dispositivo è in modalità setup, è possibile accedere a una interfaccia web che si connette all'indirizzo IP del dispositivo (nel caso sia configurato il wifi) o che si colleghi direttamente a un Access Point WiFi generato dal dispositivo.

Configurazione JSON

Per configurare il tuo dispositivo, è necessario creare una stringa JSON che contenga tutte le informazioni su accessori, GPIO, pulsanti, relè, sensori, LED, display, etc...

Vedi qui alcuni esempi e modelli

Non tutte le chiavi sono obbligatorie e i valori predefiniti verranno applicati quando le chiavi opzionali non sono state indicate. Puoi usare un JSON validator per controllare la tua stringa.

La stringa JSON può essere scritta su più righe, ma si consiglia vivamente di scriverla su una sola riga perché utilizza meno spazio della memoria.

JSON ha 2 sezioni principali: "c" ed "h".

"c" Configurazione Generale

Questa sezione è facoltativa e, se non viene compilata, verranno utilizzati i parametri di base. Riavvio obbligatorio se modificato.

Contiene informazioni sulla configurazione generale del dispositivo. Le chiavi sono:

"o" log output (uscita log)

  • • 0: Di base. Log disabilitati
  • • 1: Abilita i log UART

"l" status led (stato led)

  • • Di base: nessuno
  • • Imposta la porta GPIO ove è collegato il led

"i" inverted status led (stato invertito led)

  • • 0: Di base. Normale
  • • 1: Invertito

"b" Array di pulsanti (o qualsiasi input binario) per entrare in modalità setup

"f" Button filter (filtro pulsanti)

  • • Di base: 10.
  • • Imposta i paramentri di filtro dei pulsanti da 10 (soft) a 210 (hard) per gestire le interferenze. Questo settaggio si applica a tutti i pulsanti.

"h" Enable Homekit Server (Abilita server homekit)

  • • 0: Disabilitato
  • • 1: Di base. Abilitato

"a" Accessori

Questa sezione è obbligatoria. Contiene una serie di accessori Homekit:

"t" Type (tipo)

Seleziona la tipologia di accessorio 

  • • 1: Di base. Interruttore
  • • 2: Presa
  • • 3: ...

"0", "1", "2", "3"... Actions (azioni)

Azioni eseguite su ciascuno stato dell'accessorio. Sono definiti da un numero intero.

A seconda del tipo di accessorio selezionato, ci saranno diverse opzioni da configurare.

"r": Array di relè collegati allo switch.

Per ogni relè ci sono le seguenti opzioni configurabili

"g": Relay GPIO (GPIO relè):

  • • Obbligatorio. Porta GPIO collegata al Relè.

"v" Value (valore):

Obbligatorio. Valore assegnato alla GPIO

  • • 0: Basso, di solito off
  • • 1: Alto, di solito on.

"i" Inching:

Opzionale. Valore in secondi per attivare automaticamente l'uscita digitale al suo stato precedente. Puoi usare 2 decimali se ne hai bisogno.

  • • Valore minimo: 0.02
  • • Valore massimo: sconosciuto, forse fino all'infinito.

Tipo 1: Interruttore

Un interruttore homekit standard.

Actions (Azioni):

  • • "0": OFF.
  • • "1": ON.

"s": Initial state (Stato iniziale):

  • • "0": OFF.
  • • "1": ON.
  • • "5": Ultimo stato.
  • • "6": Opposto dell'ultimo stato.

"b": Array di pulsanti collegati allo switch.

"i" Inching:

Valore in secondi per attivare automaticamente l'uscita digitale al suo stato precedente. Puoi usare 2 decimali se ne hai bisogno.

  • • Valore minimo: 0.02
  • • Valore massimo: sconosciuto, forse fino all'infinito.

Tipo 2: PRESA

Ua presa/spina standard Homekit. Le opzioni sono le stesse del Tipo 1.

Tipo 3: PULSANTE STATELESS

Un pulsante Homekit stateless

"b": Array di 3 pulsanti (o qualsiasi input binario) collegato al pulsante stateless.

  • • 1°: collegato all'evento "pressione singola" del pulsante stateless.
  • • 2°: collegato all'evento "doppia pressione" del pulsante stateless.
  • • 3°: collegato all'evento "pressione lunga" del pulsante stateless.

Tipo 4: LUCCHETTO (Meccanismo di chiusura)

Un sistema di chiusura Homekit

Azioni:

  • • "0": SBLOCCATO.
  • • "1": BLOCCATO.

"s": Stato iniziale:

  • • "0": Sbloccato.
  • • "1": Bloccato (impostazione di base).
  • • "5": Ultimo stato.
  • • "6": Opposto all'ultimo stato.

"b": Array di 3 pulsanti (o qualsiasi input binario) collegato al dispositivo di chiusura.

"i" Inching:

Valore in secondi per attivare automaticamente l'uscita digitale al suo stato precedente. Puoi usare 2 decimali se ne hai bisogno.

  • • Valore minimo: 0.02
  • • Valore massimo: sconosciuto, forse fino all'infinito.

Dichiarazioni dei pulsanti

"g": Button GPIO (GPIO pulsante):

  • • Obbligatorio. Porta GPIO collegata al pulsante.

"p" Internal pull-up resistor (resistenza interna):

  • • 0: Disabilitato
  • • 1: Di base. Abilitato

"i" Inverted button (pulsante invertito):

  • • 0: Di base. Normale
  • • 1: Invertito

"t" Press type (tipologia di pressione):

È possibile utilizzare lo stesso pulsante (stessa GPIO) di diverso tipo collegato a diversi accessori o funzioni.

  • • 0: Singola pressione, opposto a 1.
  • • 1: Di base. Singola pressione.
  • • 2: Doppia pressione.
  • • 3: Pressione lunga.
  • • 4: Pressione molto lunga.
  • • 5: Pressione continua.

Tipo 5: SENSORE DI CONTATTO

Un sensore di contatto Homekit

Azioni:

  • • "0": Sensore disattivato.
  • • "1": Sensore attivato.

"f0", "f1"...: Array di pulsanti collegati ad uno specifico status:

  • • "f0": Sensore disattivato.
  • • "f1":Sensore attivato.

"i" Inching:

Valore in secondi per disattivare automaticamente. Puoi usare 2 decimali se ne hai bisogno.

  • • Valore minimo: 0.02
  • • Valore massimo: sconosciuto, forse fino all'infinito.

Tipo 6: SENSORE DI OCCUPAZIONE

Un sensore di occupazione Homekit. Le opzioni sono le stesse del tipo 5

Tipo 7: SENSORE DI PERDITA (liquidi)

Un sensore di perdita liquidi Homekit. Le opzioni sono le stesse del tipo 5

Tipo 8: SENSORE FUMO

Un sensore di rilevamento fumo Homekit. Le opzioni sono le stesse del tipo 5

Tipo 9: SENSORE MONOSSIDO DI CARBONIO

Un sensore di rilevamento monossido di carbonio Homekit. Le opzioni sono le stesse del tipo 5

Tipo 10: SENSORE DIOSSIDO DI CARBONIO

Un sensore dirilevamento diossido di carbonio Homekit. Le opzioni sono le stesse del tipo 5

Tipo 11: SENSORE CAMBIO FILTRO

Un sensore di cambio filtro Homekit. Le opzioni sono le stesse del tipo 5

Tipo 12: SENSORE DI MOVIMENTO

Un sensore di movimento Homekit. Le opzioni sono le stesse del tipo 5

 

 

tradotto in italiano dalla guida originale pubblicata da José A. Jiménez su GitHub.

Filippo Lizza

42 Blog post

Commenti
Stefano Unga 4 anni

guida perfetta! Però ho un problemino: come è possibile su uno Shelly 2.5 rientrare nella modalità setup?

 
 
Blackwalker 5 anni

Ottima guida!! Grazie ???? ????