Está en la página 1de 35

GUIA SOBRE HAA

Esta guía es una recopilación personal de información que he ido seleccionando para
posteriores consultas sobre la manipulación y flasheo de diferentes dispositivos que voy
acumulando para integrarlos en homekit según mis necesidades. Pretende dar a conocer los
conceptos básicos a tener en cuenta para empezar a manipular accesorios con seguridad e
introducirles el firmware HAA realizado por José A. Jiménez Campos. Espero que sirva de
ayuda y poco a poco se pueda ir mejorando con más material.

Aprovecho para agradecer toda la ayuda de los amigos del grupo ESP-Homekit-Devices de
Discord y en especial a Jose (@RavenSystem) por su constante asistencia.

Jose Vicente Ortiz


Autor de la guía

HERRAMIENTAS Y ELECTRICIDAD
• Componentes necesarios para cargar el firmware por cable (página 3)
• Componentes recomendables (página 4)
• Conceptos básicos sobre electricidad (página 6)

DISPOSITIVOS: ANÁLISIS Y ESQUEMAS DE MONTAJE


• Conexión del dispositivo al USB TTL para realizar la carga del firmware y análisis de
diferentes dispositivos junto a sus puertos y esquemas de montaje (página 8)
• Dispositivos sonoff basic v1, mini, TH16, S20, dual, SV (página 8)
• Dispositivos electrodragon (página 13)
• Dispositivo emisor IR (página 15)
• Dispositivo NodeMCU Lua Lolin V3 con ESP8366 (página 16)
• Enchufes Gosund (página 17)
• Dispositivos Shelly1: dispositivos y esquemas de montaje (página 18)
• Dispositivos Shelly2.5: dispositivos y esquemas de montaje (página 20)

HAA: PRESENTACIÓN Y PROCESO DE CARGA DEL FIRMWARE


• HAA (página 22)
• JSONs más comunes (página 24)
• Carga del firmware HAA con MAC (página 25)
• Principales comandos para el terminal (página 26)
• Carga del firmware HAA con WINDOWS utilizando la herramienta “flash download tools”
de espressif (página 27)
• Descargas a instalaciones para windows utilizando Python y esptool.py (página 29)
• Carga del firmware HAA con WINDOWS utilizando Python y esptool.py (página 31)
• Proceso paso a paso para windows, utilizando python y esptool.py (página 32)

© jvog85 – GUIA HAA v1.3 - Página 1 de 35


Antes de HAA, hubo otros firmwares, algunos muy conocidos, pero otros, no tanto. Todo
esto comienza hace varios años cuando se empiezan a comercializar por parte de EVE,
accesorios compatibles con HomeKit. Pero al principio apenas había un grupo de accesorios,
y no existía ninguno que pudiera ser instalado para manejar un punto de luz de la casa. Fibaro
anunció este tipo de accesorio, pero el hecho de que funcionara con Bluetooth y que su precio
rondara los 60€, hizo que buscara otras alternativas. Así desarrolle mi primer firmware para
HomeKit: un Sonoff Basic con posibilidad de conectarle el interruptor de la pared. Poco a poco
fui desarrollando otros firmwares, soportando el Sonoff Dual, El Sonoff S20, etc.

Pasado un tiempo, la actualización y mantenimiento de tanto firmware diferente se tornó


en un arduo trabajo, así que desarrollé un firmware unificado para todos esos dispositivos,
llamado RavenCore. Al tiempo, desarrollé otro llamado KellyTron, que admitía dispositivos
Shelly. Poco a poco fueron creciendo, añadí a RavenCore las características de KellyTron
para mantener un único firmware, y seguí añadiéndole nuevas funciones.

Pero llegó un punto en el que la gestión de la RAM se convirtió en algo imposible, con tan
solo 64KB de RAM, RavenCore no podía seguir creciendo dada su arquitectura basada en
declaraciones estáticas (Todo se carga en la RAM, se use o no) y utilizando la aplicación EVE
para la configuración, que también tenía un alto consumo de memoria RAM. Así que decidí
dar un salto cualitativo en el código, y empezar a desarrollar un firmware totalmente diferente,
que funcionara de forma dinámica, y que permitiera hacer de todo, esto es, Home Accessory
Architect.

José A. Jiménez Campos


Creador de HAA

© jvog85 – GUIA HAA v1.3 - Página 2 de 35


COMPONENTES NECESARIOS

USB TTL, links amazon y aliexpress:


https://www.amazon.es/Yizhet-CP2102-Adaptador-Convertidor-
Módulo/dp/B07TFSZ3ZP/ref=sr_1_7?__mk_es_ES=ÅMÅŽÕÑ&dchild=1&keywords=usb+ttl&qid=1588460075&
sr=8-7

https://www.amazon.es/AZDelivery-Adaptador-FT232RL-Serial-
incluido/dp/B01N9RZK6I/ref=redir_mobile_desktop?ie=UTF8&aaxitk=YDaekZd5ybQ6g8FH8JBhcA&hsa_cr_id=
1670129630202&ref_=sb_s_sparkle

https://es.aliexpress.com/item/4000120687489.html?spm=a2g0o.productlist.0.0.48932672AwyCES&algo_pvid=
ca467aa4-45e1-4156-b4a0-6126f18b3d9d&algo_expid=ca467aa4-45e1-4156-b4a0-6126f18b3d9d-
0&btsid=0ab6d70515884601415498036e6b01&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201
603_

Cables macho-hembra, link aliexpress:


https://es.aliexpress.com/item/32987024879.html?spm=a2g0s.9042311.0.0.229d63c0kbEQia

Cable de corriente para alimentar el dispositivo temporalmente, nos puede servir cualquiera
que tengamos por casa, va a ser solo para configurarlo cómodamente.

© jvog85 – GUIA HAA v1.3 - Página 3 de 35


COMPONENTES RECOMENDABLES

A parte de los básicos como destornilladores, alicates, fichas de empalme, cinta aislante…

También encontramos un cable realizado expresamente para flashear los shelly 2.5 para
aquellos que no busquen complicarse, con los de arriba sobra, y más si vas a realizar el flash
en otros dispositivos, pero cada uno es libre de elegir el que quiera. Link amazon:
https://www.amazon.es/dp/B07TS2KPW7/?coliid=IBC90DPQEYN9V&colid=31OZY5U2AJALN&psc=1&ref_=lv_
ov_lig_dp_it

Pines para soldar en otros dispositivos como sonoff basic, TH16…etc, no es necesario pero
viene muy bien y es cómodo. Link aliexpress:
https://es.aliexpress.com/item/32933682566.html?spm=a2g0s.9042311.0.0.274263c073Ke4g

Soldador. Útil si queremos soldar los


pines en los dispositivos que
podamos para hacernos mas cómodo
el proceso de carga del firmware y
para posteriormente añadir sensores
o demás.

Link aliexpress:
https://es.aliexpress.com/item/32810674953.
html?spm=a2g0o.productlist.0.0.5cec2fe9s6
GtB4&algo_pvid=cd3b5658-a191-4c40-
b03d-7e32ad492054&algo_expid=cd3b5658-
a191-4c40-b03d-7e32ad492054-
3&btsid=0ab6f82215886951764624151e243
0&ws_ab_test=searchweb0_0,searchweb20
1602_,searchweb201603_

© jvog85 – GUIA HAA v1.3 - Página 4 de 35


Multímetro (también llamado polímetro
o tester). Muy útil para realizar
comprobaciones en nuestros
dispositivos (comprobar conectividad si
modificamos una placa para aislar el
relé) o en nuestra instalación de casa,
siguiendo siempre todas las medidas de
precaución.

Link aliexpress:
https://es.aliexpress.com/item/4000300168092.
html?spm=a2g0s.9042311.0.0.461a63c09EAU
Pu

Multiherramienta o dremel (llamada así


por su marca comercial).

Se trata de una herramienta útil para


taladrar, lijar, limar, cortar… etc con
algo más de precisión que si
utilizáramos un taladro, una amoladora
o una sierra.

Para trabajar sobre las placas y


realizar el proceso de aislar relés va de
mavarilla.

Este modelo en concreto es de la


marca PARKSIDE, vendido en LIDL,
actualmente no aparece en su web por
lo que os dejo uno similar.

Link aliexpress:
https://es.aliexpress.com/item/33042032541.h
tml?spm=a2g0o.productlist.0.0.4eeb2eeek3Y
wU6&algo_pvid=8526b6b3-da82-4c08-b9f1-
1a74449746ae&algo_expid=8526b6b3-da82-
4c08-b9f1-1a74449746ae-
5&btsid=0be3764515888481333422001e7c5
e&ws_ab_test=searchweb0_0,searchweb201
602_,searchweb201603_

© jvog85 – GUIA HAA v1.3 - Página 5 de 35


CONCEPTOS BÁSICOS SOBRE ELECTRICIDAD

CALCULAR AMPERIOS (A)

A=W:V

Ejemplo, producto etiquetado que marca 2000W

2000W : 220V = 9,09A

CALCULAR WATIOS (W)

W=VxA

220V x 9,09A = 1999,8W

CABLEADO: COLORES, TIPOS Y USOS

© jvog85 – GUIA HAA v1.3 - Página 6 de 35


USO DEL MULTÍMETRO - POLÍMETRO - TESTER

MEDICIÓN DE VOLTAJE

AC – corriente alterna (la de casa) CC – corriente continua

MEDICIÓN DE CORRIENTE (AMPERIOS - FUERZA)

Polímetro con el cable rojo en la posición 10A y la ruleta


en 10A. Digamos que tenemos que meter el polímetro
dentro de la instalación, ejemplo:

Queríamos comprobar el consumo de este puerto, pues bien, hemos colocado la punta roja
en el pin y el cable que debía ir en ese pin lo hemos colocado junto a la punta negra, así al
darle luz veremos cual es la corriente, en este caso son 0,04A, o lo que es lo mismo, 40mA.

© jvog85 – GUIA HAA v1.3 - Página 7 de 35


CONEXIÓN DISPOSITIVO – USB TTL

IMPORTANTE: fijarse que los puertos TX y RX van invertidos. Para entrar en modo flash
tener en cuenta cual es la combinación en cada dispositivo, la cual tendremos que ejecutar al
mismo tiempo que conectamos el USB TTL, después soltarlo.

Análisis de cantidad de dispositivos, la “biblia” de los GPIO.


https://templates.blakadder.com/eu.html

SONOFF BASIC (v1)


Entrar en flash mode: pulsar GPIO0

SONOFF BASIC CON RELÉ AISLADO

© jvog85 – GUIA HAA v1.3 - Página 8 de 35


SONOFF MINI
Entrar en flash mode: pulsar GPIO0

SONOFF MINI CON RELÉ AISLADO

© jvog85 – GUIA HAA v1.3 - Página 9 de 35


SONOFF TH16
Entrar en flash mode: pulsar GPIO0

SONOFF S20
Entrar en flash mode: pulsar GPIO0 (botón naranja)

© jvog85 – GUIA HAA v1.3 - Página 10 de 35


SONOFF DUAL R2
Entrar en flash mode: puentear GND y BUTTON 0

ESQUEMA DE INSTALACIÓN

© jvog85 – GUIA HAA v1.3 - Página 11 de 35


SONOFF SV
Entrar en flash mode: puentear GND y GPIO0

© jvog85 – GUIA HAA v1.3 - Página 12 de 35


ELECTRODRAGON
Entrar en flash mode: pulsar BTN2 – GPIO0
Link: https://www.electrodragon.com/product/wifi-iot-relay-board-spdt-based-esp8266/

BTN2 = FLASH MODE


BTN1 = GPIO2 = SETUP MODE

ESQUEMA DE INSTALACIÓN: electrodragon para persiana con mecanismo 3 pos.

© jvog85 – GUIA HAA v1.3 - Página 13 de 35


ESQUEMA DE INSTALACIÓN: añadir sensor de temperatura-humedad DHT21 / AM2301

OBSERVACIONES: entre los dos puntos amarillos marcados en el esquema existen


conectividad, tener en cuenta si se van a colocar dos accesorios.

Link sensor:
https://es.aliexpress.com/item/32807396187.html?spm=a2g0o.productlist.0.0.39892a6biNnzeJ&algo_pvid=74aa
55e2-1447-4f47-9cd6-b95473e8fe47&algo_expid=74aa55e2-1447-4f47-9cd6-b95473e8fe47-
0&btsid=0ab6f81615884365587033364e7257&ws_ab_test=searchweb0_0,searchweb201602_,searchweb2016
03_

© jvog85 – GUIA HAA v1.3 - Página 14 de 35


PLACA NodeMCU Lua Lolin V3 con ESP8366

Link:
https://www.amazon.es/AZDelivery-NodeMCU-ESP8266-ESP-12E-
Desarrollo/dp/B06Y1ZPNMS/ref=sr_1_5?__mk_es_ES=ÅMÅŽÕÑ&dchild=1&keywords=nodemcu+lolin+v3&qid
=1589133579&sr=8-5

© jvog85 – GUIA HAA v1.3 - Página 15 de 35


DISPOSITIVO IR
Entrar en flash mode: puentear GPIO0 y GND

Se trata de un dispositivo al que se puede cargar el firmware HAA y controlar aparatos que
funcionan con mandos ir.

Link de compra:
https://es.aliexpress.com/item/33004692351.html?spm=a2g0s.9042311.0.0.671863c0RVxRVl

Descripción en GitHub sobre HAA Infra Red


https://github.com/RavenSystem/esp-homekit-devices/wiki/HAA-Infra-Red

© jvog85 – GUIA HAA v1.3 - Página 16 de 35


ENCHUFES GOSUND
Entrar en flash mode: puentear GPIO0 y GND

Link amazon:
https://www.amazon.es/Gosund-Alexa-inteligente-temporizador-
compatible/dp/B085Q5ZR33/ref=sr_1_3?__mk_es_ES=ÅMÅŽÕÑ&dchild=1&keywords=gosund&qid=15885027
31&sr=8-3

© jvog85 – GUIA HAA v1.3 - Página 17 de 35


SHELLY 1
Entrar en flash mode: puentear GPIO0 y GND

ESQUEMA DE INSTALACIÓN: shelly1 para un punto de luz/enchufe sin interruptor

© jvog85 – GUIA HAA v1.3 - Página 18 de 35


ESQUEMA DE INSTALACIÓN: shelly1 para un punto con UN SOLO interruptor

ESQUEMA DE INSTALACIÓN: shelly1 para un punto con interruptores conmutados

© jvog85 – GUIA HAA v1.3 - Página 19 de 35


SHELLY 2.5
Entrar en flash mode: puentear GPIO0 y GND

© jvog85 – GUIA HAA v1.3 - Página 20 de 35


ESQUEMA DE INSTALACIÓN: shelly2.5 para varios puntos de luz conmutados

ESQUEMA DE INSTALACIÓN: shelly2.5 para persiana con mecanismo

© jvog85 – GUIA HAA v1.3 - Página 21 de 35


HAA__________
© José A. Jiménez Campos
https://github.com/RavenSystem

HAA es un firmware que se puede cargar en cualquier dispositivo que tenga un


microcontrolador esp8266 o esp8285 de Espressif y que disponga de al menos 1MB de
almacenamiento flash, quedándose fuera los módulos ESP-01 que tienen 512KB (Los ESP-
01s sí tienen 1MB).

Su principal característica es que se trata un firmware extremadamente flexible que


permite la creación de multitud de accesorios compatibles con Apple HomeKit de forma nativa
(Interruptores, termostatos, sensores, TV, etc.), teniendo el mismo comportamiento que un
accesorio certificado. Gracias a su cuidada gestión de la memoria RAM, es capaz de manejar
diversos accesorios HomeKit al mismo tiempo que, entre otras cosas, envía señales IrDA,
hace peticiones web, recibe información de diferentes sensores, controla hardware diverso a
través de la UART o los GPIO, permitiendo, además, crear automatizaciones internas sin
necesidad de depender de una central de accesorios o de conexión WiFi para su ejecución.

La seguridad es otro de los puntos fuertes que tiene, usando únicamente HomeKit, sin
tener ningún otro servicio adicional en segundo plano. Para configurarlo, hay que activar el
modo setup, y en ese momento, se desactivan las funciones normales del accesorio para así,
poder acceder a una web de configuración donde se establecen todos los parámetros del
accesorio, configuración WiFi, actualización, etc.

ENLACES DE INTERÉS

Wiki: https://github.com/RavenSystem/esp-homekit-devices/wiki
Instalación: https://github.com/RavenSystem/esp-homekit-devices/wiki/Installation
Setup Mode: https://github.com/RavenSystem/esp-homekit-devices/wiki/Setup-Mode
Historial de actualizaciones: https://github.com/RavenSystem/esp-homekit-devices/releases
Binarios, actualización mediante servidor: https://github.com/RavenSystem/haa/releases

JSONs: https://github.com/RavenSystem/esp-homekit-devices/wiki/HAA-Templates
Historial de dispositivos utilizados con HAA y su JSON según su uso:
https://github.com/RavenSystem/esp-homekit-devices/wiki/Devices-Database
Dispositivos y JSON que los usuarios han ido testeando con HAA:
https://github.com/RavenSystem/esp-homekit-devices/issues/689

PIN 021-82-017

© jvog85 – GUIA HAA v1.3 - Página 22 de 35


ACCEDER AL SETUP MODE: se accede de varias formas:
• Darle 8 veces seguidas al interruptor del dispositivo, bien al mecanismo físico o al de la app,
y se pondrá en setup mode durante 90 segundos, de no tocar nada, pasados esos segundos
volverá a estar activo.
• Pulsar 8/9 segundos el botón del dispositivo (si lo tiene) y entrará en setup mode, el tiempo
también serán 90 segundos.
• Desconectar de la corriente y conectar, esperar 1,5 segundos, desconectar y volver a
conectar, debería entrar en setup mode durante 90 segundos.
• Utilizar el switch/botón creado con el comendo mencionado más abajo.

ACTUALIZAR DISPOSITIVOS DE FORMA AUTOMÁTICA: si tenemos marcada la opción de


“Auto OTA Updates”, cuando salga una actualización tan solo tendremos que acceder al setup
mode, esperar un par de minutos y ya tendremos nuestro dispositivo actualizado. Pulsar el
switch lo que hace es poner el dispositivo en setup mode y al tener marcada esa opción le
estaremos mandando que actualice.

MODIFICAR JSON: si vamos a modificar el JSON tendremos que acceder al setup mode y
cambiarlo, mientras no hagamos cambios en el tipo o cantidad de accesorios no tendremos
que hacer “Reset Homekit ID” pero si por ejemplo, tenemos un JSON de persiana y le
queremos añadir el switch para acceder al setup mode tendremos que hacer reset, porque
homekit nos va a añadir otro accesorio para el switch.

AÑADIR SWITCH / BOTÓN SETUP

JSON SIN SWITCH / BOTÓN:


{"c":{"l":0,"b":[{"g":2,"t":5}]},"a":[{"t":45,"o":27,"c":27,"f":70,"0":{"r":[{"g":15},{"g":4,"v":1}]},"1":{"
r":[{"g":15,"v":1},{"g":4}]},"2":{"r":[{"g":15},{"g":4}]},"3":{"r":[{"g":15},{"g":4,"i":1}]},"4":{"r":[{"g":1
5,"i":1},{"g":4}]},"f0":[{"g":5,"p":0}],"f1":[{"g":13,"p":0}],"f2":[{"g":5,"t":0},{"g":13,"t":0}]}]}

Se separan los dos últimos paréntesis y se coloca dentro esto:


,{"i":0.5,"1":{"s":[{"a":1}]}}

Quedando así…
{"c":{"l":0,"b":[{"g":2,"t":5}]},"a":[{"t":45,"o":27,"c":27,"f":70,"0":{"r":[{"g":15},{"g":4,"v":1}]},"1":{"
r":[{"g":15,"v":1},{"g":4}]},"2":{"r":[{"g":15},{"g":4}]},"3":{"r":[{"g":15},{"g":4,"i":1}]},"4":{"r":[{"g":1
5,"i":1},{"g":4}]},"f0":[{"g":5,"p":0}],"f1":[{"g":13,"p":0}],"f2":[{"g":5,"t":0},{"g":13,"t":0}]},{"i":0.5,"
1":{"s":[{"a":1}]}}]}

© jvog85 – GUIA HAA v1.3 - Página 23 de 35


JSONs MAS COMUNES
JSON para PERSIANA con mecanismo físico de 3 posiciones (subir/parar/cerrar), con
un tiempo de subida 20 segundos y bajada 19 segundos, además de un botón que se
añade como otro accesorio para forzar el setup mode (utilizado en electrodragon)
{"c":{"l":16,"b":[{"g":2,"t":5}]},"a":[{"t":45,"o":20,"c":19,"f":70,"0":{"r":[{"g":13},{"g":12,"v":1}]},"1
":{"r":[{"g":13,"v":1},{"g":12}]},"2":{"r":[{"g":13},{"g":12}]},"3":{"r":[{"g":13},{"g":12,"i":1}]},"4":{"r"
:[{"g":13,"i":1},{"g":12}]},"f0":[{"g":5,"t":0}],"f1":[{"g":4,"t":0}],"f2":[{"g":5,"t":1},{"g":4,"t":1}]},{"i":
0.5,"1":{"s":[{"a":1}]}}]}
JSON para PERSIANA con mecanismo físico de 3 posiciones (subir/parar/cerrar), con
un tiempo de subida 20 segundos y bajada 19 segundos + sensor de temperatura y
humedad + botón que se añade como otro accesorio para forzar el setup mode
(utilizado en electrodragon)
{"c":{"l":16,"b":[{"g":2,"t":5}]},"a":[{"t":45,"o":27,"c":27,"f":70,"0":{"r":[{"g":13},{"g":12,"v":1}]},"1
":{"r":[{"g":13,"v":1},{"g":12}]},"2":{"r":[{"g":13},{"g":12}]},"3":{"r":[{"g":13},{"g":12,"i":1}]},"4":{"r"
:[{"g":13,"i":1},{"g":12}]},"f0":[{"g":5,"t":0}],"f1":[{"g":4,"t":0}],"f2":[{"g":5,"t":1},{"g":4,"t":1}]},{"t":
24,"g":14,"n":4},{"i":0.5,"1":{"s":[{"a":1}]}}]}
JSON para puerta de GARAJE con motor, SIN sensores de contacto, con un tiempo
de apertura y cierre de 15 segundos (utilizado en sonoff basic y sonoff mini, ambos
con relés aislados)
{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"t":40,"d":15,"c":15,"0":{"r":[{"g":12,"v":1,"i":0.5}]},"1":{"a":0}
,"2":{"r":[{"g":12,"i":1.5},{"g":12,"v":1,"i":0.5},{"g":12,"v":1,"i":2}]},"3":{"a":2},"10":{"a":0}},{"i":1,
"1":{"m":[{"g":1,"v":2}]}}]}
JSON para puerta de GARAJE con motor, CON sensores de contacto, apertura GPIO
16 y cierre GPIO 4, con un tiempo de apertura y cierre de 16 segundos + botón setup
(utilizado en sonoff mini con relé aislados)
{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"t":40,"d":16,"c":16,"f3":[{"g":4,"t":0}],"f4":[{"g":4}],"f2":[{"g":
16,"t":0}],"f5":[{"g":16}],"0":{"r":[{"g":12,"v":1,"i":0.5}]},"1":{"a":0},"2":{"r":[{"g":12,"i":1.5},{"g":1
2,"v":1,"i":0.5},{"g":12,"v":1,"i":2}]},"3":{"a":2},"10":{"a":0}},{"i":1,"1":{"m":[{"g":1,"v":2}]}},{"i":0.
5,"1":{"s":[{"a":1}]}}]}
JSON TERMOSTATO + sensor de temperatura/humedad – botón setup (utilizado en
un sonoff TH16)
{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"t":25,"s":5,"g":14,"n":4,"0":{"r":[{"g":12}]},"1":{"a":0},"3":{"r":
[{"g":12,"v":1}]},"5":{"a":0}},{"i":0.5,"1":{"s":[{"a":1}]}}]}
JSON con sensor de MOVIMIENTO que acciona el enchufe y se desconecta a los 10
segundos (utilizado en un sonoff S20)
{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"t":2,"b":[{"g":0}],"s
":0},{"1":{"m":[{"g":1,"v":1}]},"t":12,"i":10,"f1":[{"g":3,"t":0,"i":1,"m":[{"g":1,"v":1}]}],"s":0}]}
JSON de PULSADOR (pulsador de apertura en videoportero fermax, utilizando para
ello un sonoff mini con relé aislado)
{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"t":4,"i":10,"0":{"r":[{"g":12,"v":1,"i":0.5}]},"b":[{"g":0}]}]}
JSON utilizado como interruptor simple, sin mecanismos intermedios (utilizado en
sonoff mini)
{"c":{"l":13,"i":1,"b":[{"g":0,"t":5}]},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":
0},{"g":4},{"g":4,"t":0}]}]}
JSON de un punto de luz con interruptor físico (utilizado en shelly 1)
{"a":[{"0":{"r":[{"g":4}]},"1":{"r":[{"g":4,"v":1}]},"b":[{"g":5,"p":0},{"g":5,"t":0}]}]}
JSON de dos puntos de luz con interruptores conmutados (utilizado en shelly 2.5)
{"c":{"l":0,"b":[{"g":2,"t":5}]},"a":[{"0":{"r":[{"g":15}]},"1":{"r":[{"g":15,"v":1}]},"b":[{"g":5,"p":0},{"g
":5,"t":0}]},{"0":{"r":[{"g":4}]},"1":{"r":[{"g":4,"v":1}]},"b":[{"g":13,"p":0},{"g":13,"t":0}]}]}

En la página 22 tenéis el link al historial de dispositivos utilizados con HAA y su JSON.


© jvog85 – GUIA HAA v1.3 - Página 24 de 35
CARGA DEL FIRMWARE HAA CON MAC
Video-tutorial de @RavenSystem en twitter sobre como instalar lo descrito más abajo:
https://twitter.com/RavenSystem/status/1256246217987821571

1. Poner en terminal: sudo easy_install pip (nos pedirá la contraseña de nuestro usuario)
2. Seguidamente: pip install esptool
3. Poner: cd
4. Paso PATH:
echo 'export PATH=$PATH:/Users/'`whoami`'/Library/Python/2.7/bin' >> .bash_profile
5. Una vez realizados todos estos procesos tendremos esptool.py instalado, por lo que
tendremos q descargar el archivo binario HAA de github y colocarlo en alguna carpeta
de nuestro equipo, yo lo he colocado en una carpeta llamada HAA de mi usuario,
JoseVicenteAir.
Link github: https://github.com/RavenSystem/esp-homekit-devices/wiki/Installation
6. Una vez realizado todo esto, ya podremos pasar al proceso de flasheo.

PROCESO RÁPIDO MAC

1. Conocer el puerto de conexión:


ls /dev/tty.usb (+ tabulador)
2. Determinar tamaño:
esptool.py --port /dev/tty.usbserial-0001 flash_id
3. Backup firmware 1mb:
esptool.py --port /dev/tty.usbserial-0001 read_flash 0x00000 0x100000 backupXXX.bin
4. Backup firmware 4mb:
esptool.py --port /dev/tty.usbserial-0001 read_flash 0x00000 0x400000 backupXXX.bin
5. Borrar firmware:
esptool.py --port /dev/tty.usbserial-0001 erase_flash
6. Meter firmware HAA:
esptool.py -p /dev/tty.usbserial-0001 --baud 115200 write_flash -fs 1MB -fm dout -ff
40m 0x0 fullhaaboot.bin

ACTUALIZAR HAABOOT PARA VERSIONES ANTERIORES A 1.8.3

1. Copiar y guardar el JSON actual.


2. Entrar en flash mode y poner:
esptool.py -p /dev/tty.usbserial-0001 --baud 115200 write_flash -fs 1MB -fm dout -ff
40m 0x0 fullhaaboot.bin
3. Conectarse a la red wifi que crea el propio dispositivo para configurar nuestra red wifi y
colocarle el JSON que ya veníamos utilizando, se puede marcar AUTO OTA UPDATE
si se desea, le damos a SAVE y esperamos a que se instale, seguidamente podremos
volver a utilizar nuestro accesorio sin necesidad de volver a añadirlo ni nada. Si se
modifica el accesorio será necesario marcar Reset Homekit ID y volver a añadirlo.

OBSERVACIONES: ir a la página 35 para ver una muestra del proceso.


© jvog85 – GUIA HAA v1.3 - Página 25 de 35
COMANDOS BÁSICOS EN TERMINAL DE MAC

ls /dev/tty.usb + tabulador
Conocer el puerto del usb

cd nombre_carpeta
Para entrar en la carpeta en cuestión

cd ..
Salir de una carpeta (hay un espacio entre cd y los dos puntos)

pwd
saber en que carpeta estoy

ls
Saber que tiene la carpeta en la que estoy (lo que dir en ms-dos)

more nombre_archivo
Para ver el contenido del archivo en cuestión (también se pueden usar otros comandos
como cat, less, etc.)

chmod 775 nombre_archivo + tabulador


Sirve para dar permiso de ejecución a un archivo

ping -s 1492 dirección_IP


Pones la ip y haces ping para ver el envío de paquetes, por si no responde, si hay pérdidas
de paquetes saldrá “timeout”.

dns-sd -B _hap._tcp .
Con eso ves todo lo que se anuncia por HomeKit en tu red. HomeKit usa mDNS. Hap es
Homekit Accessory Protocol.

dns-sd -L HAA-8033A4 _hap._tcp local


Comando interesante para comprobar el funcionamiento de HomeKit de un dispositivo.
Control + C para salir.

Cuando algo en HomeKit no responde, es por dos posibles causas. Conexión WiFI o mDNS.
La primera se comprueba con el ping y la segunda con los comandos de dns-sd.

© jvog85 – GUIA HAA v1.3 - Página 26 de 35


CARGA DEL FIRMWARE HAA CON WINDOWS
Herramienta “flash download tools” de espressif
1. Descargamos la herramienta “Flash download tools” para el ESP8266 del siguiente
link: https://www.espressif.com/en/support/download/other-tools
2. Descargar el archivo binario HAA de GitHub
https://github.com/RavenSystem/esp-homekit-devices/wiki/Installation
3. Conectamos el dispositivo en modo flash y miramos que puerto COM le ha asignado
4. Abrimos la herramienta que hemos descargado y nos aparecerá esta ventana:

Elegimos “developer mode” y en la siguiente “ESP8266


DownloadTool”

Esto nos llevará a la pantalla general para borrado y carga


del firmware que tendremos que configurar de la siguiente
manera:

Seleccionamos el archivo
previamente descargado de
gihub, añadiendo los valores
que se ven a la derecha y
marcando las casillas de la
izquierda.

CristalFreq: 40M
SPI SPEED: 40MHz
SPI MODE: DOUT
FLASH SIZE: 8Mbit

Elegimos el puerto COM


previamente consultado.

BAUD: 1152000

Estando seguros que hemos


puesto bien el modo flash le
damos a ERASE, una vez
terminado veremos FINISH, ya
lo podemos sacar.

Volvemos a meter en
dispositivo en modo flash y esta
vez le damos a START, ya
tendremos el firmware HAA
cargado en el dispositivo
cuando volvamos a ver FINISH.

© jvog85 – GUIA HAA v1.3 - Página 27 de 35


5. Desconectar el dispositivo del USB TTL y conectar a la corriente, buscar la red wifi que
crea el propio dispositivo (será su nombre, por ejemplo, HAA-23453F) y nos aparecerá
un panel para introducirle la contraseña de nuestra red wifi, poner la contraseña y dale
a guardar (SAVE).
6. Accedemos a nuestro router y búscame el dispositivo que ya se habrá conectado a
nuestra red, comprobamos la ip que tiene asignada y la introducimos en el navegador,
accediendo así a su SETUP MODE, donde podremos introducir el JSON que vayamos
a utilizar y volveremos a guardar (SAVE).
7. Añadir dispositivo a HOMEKIT buscando el dispositivo y marcando “no tengo un código
o no puedo escanearlo”, donde en la siguiente pantalla nos saldrán los accesorios
cercanos, que coincidirá con el nombre del dispositivo (HAA-23453F), la daremos a
añadir e introduciremos el código 02182017, ya solo quedará cambiarle el nombre y
ubicarlo en la estancia que queramos.

© jvog85 – GUIA HAA v1.3 - Página 28 de 35


DESCARGAS E INSTALACIONES PARA WINDOWS
utilizando python y esptool.py
1. Descargamos el installer de la versión de Python apta para nuestro equipo de
(https://www.python.org) y lo instalamos.

Escogemos la opción “costumize


installation” para especificar la
ruta de instalación y

nos aseguramos de marcar


add Python 3.8 to PATH,

así no será necesario realizar el


paso 2.

Aquí comprobamos que esté


todo igual y damos a NEXT.

Cambiamos la dirección de
instalación y la dejamos como se
muestra en la foto de la derecha,
podéis poner la que queráis,
pero así podréis seguir las
indicaciones al pie de la letra.

© jvog85 – GUIA HAA v1.3 - Página 29 de 35


2. Configuración de Python: https://www.youtube.com/watch?v=BArhFr06nPM

PASO NO NECESARIO SI HEMOS MARCADO LA OPCIÓN …ADD…

3. Instalar esptool: https://www.youtube.com/watch?v=p4UGKRKYFCs

Nos ponemos en el terminal de Windows y en la raíz de python

cd python\python38-32\scripts

Una vez en esa dirección escribimos lo siguiente:

pip install esptool

Y si todo ha salido bien los deberá aparecer los que vemos aquí abajo. Ya tendremos todo
instalado y solo nos faltará el paso 4, descargar los tres archivos binarios de HAA.

4. Descargar el archivo binario HAA de GitHub https://github.com/RavenSystem/esp-


homekit-devices/wiki/Installation y pegarlo en la carpeta donde tengamos instalado
python, en mi caso es en: c:/python/python38-32/scripts

fullhaaboot.bin

© jvog85 – GUIA HAA v1.3 - Página 30 de 35


CARGA DEL FIRMWARE HAA CON WINDOWS
utilizando python y esptool.py

PROCESO RÁPIDO WINDOWS

Abrimos terminal y nos ponemos en la raíz de python: cd python/python38-32/scripts

1. Determinar tamaño:
esptool.py --port COM4 flash_id
2. Backup firmware 1mb:
esptool.py --port COM4 read_flash 0x00000 0x100000 backupXXX.bin
3. Backup firmware 4mb:
esptool.py --port COM4 read_flash 0x00000 0x400000 backupXXX.bin
4. Borrar firmware:
esptool.py --port COM4 erase_flash
5. Meter firmware HAA:
esptool.py -p COM4 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0
fullhaaboot.bin

6. Desconectar el dispositivo del USB TTL y conectar a la corriente, buscar la red wifi que
crea el propio dispositivo (será su nombre, por ejemplo, HAA-23453F) y nos aparecerá
un panel para introducirle la contraseña de nuestra red wifi, poner la contraseña y dale
a guardar (SAVE).
7. Accedemos a nuetro router y búscame el dispositivo que ya se habrá conectado a
nuestra red, comprobamos la ip que tiene asignada y la introducimos en el navegador,
accediendo así a su SETUP MODE, donde podremos introducir el JSON que vayamos
a utilizar y volveremos a guardar (SAVE).
8. Añadir dispositivo a HOMEKIT buscando el dispositivo y marcando “no tengo un código
o no puedo escanearlo”, donde en la siguiente pantalla nos saldrán los accesorios
cercanos, que coincidirá con el nombre del dispositivo (HAA-23453F), la daremos a
añadir e introduciremos el código 02182017, ya solo quedará cambiarle el nombre y
ubicarlo en la estancia que queramos.

ACTUALIZAR HAABOOT PARA VERSIONES ANTERIORES A 1.8.3

1. Entrar en flash mode y poner:


esptool.py -p COM4 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0
fullhaaboot.bin
2. Conectarse a la red wifi que crea el propio dispositivo para configurar nuestra red wifi y
colocarle el JSON que ya veníamos utilizando, se puede marcar AUTO OTA UPDATE
si se desea, le damos a SAVE y esperamos a que se instale, seguidamente podremos
volver a utilizar nuestro accesorio sin necesidad de volver a añadirlo ni nada. Si se
modifica el accesorio será necesario marcar Reset Homekit ID y volver a añadirlo.

© jvog85 – GUIA HAA v1.3 - Página 31 de 35


PROCESO PASO A PASO PARA WINDOWS,
utilizando python y esptool.py

1. Conectar el dispositivo al pc mediante el USB TTL y comprobar que puerto COM le


ha sido asignado, pulsando botón derecho sobre mi pc / propiedades /
administrador de dispositivos.

Si tenemos problemas con los drivers del USB TTL podemos descargarlos de aquí:
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-
drivers

2. Abrir terminal (cmd) en Windows y dejarlo en c:/ aplicando el comando cd.. y nos
ponemos en la raíz donte tengamos instalado python: cd python/python38-32/scripts

3. Determinar el tamaño del firmware de origen introduciendo el siguiente comando


para conocer su tamaño y hacer posteriormente un backup (no es necesario,
podemos pasar al paso 5).

esptool.py --port COM4 flash_id

Yo he tenido que entrar en c:/python/python38-32/scripts/ ya que hice así la instalación


y los archivos están en esa carpeta.

4. Ahora tendremos la opción de cargar un firmware o hacer backup del que trae.
Ponemos el dispositivo en modo flash (según dispositivo), seleccionamos el COM
que corresponda y aplicamos el siguiente comando:

Realizar backup:
Si al realizar el paso 3 nos aparece que el tamaña es 1MB:
esptool.py --port COM4 read_flash 0x00000 0x100000 imagebackup.bin

Si al realizar el paso 3 nos aparece que el tamaña es 4MB:


esptool.py --port COM4 read_flash 0x00000 0x400000 imagebackup.bin

El fichero de firmware se guardará en la carpeta en la que nos encontremos, a mi me lo


guardó en c:/python/python38-21/scripts

Cargar firmware o restaurar firmware:


Meter archivo .BIN en la carpeta de siempre, la mia es c:/python38-21/scripts

Si al realizar el paso 3 nos aparece que el tamaña es 1MB:


esptool.py --port COM4 write_flash -fs 1MB -fm dout 0x0 "XXXXXXXXXX.bin"

© jvog85 – GUIA HAA v1.3 - Página 32 de 35


Si al realizar el paso 3 nos aparece que el tamaña es 4MB:
esptool.py --port COM4 write_flash -fs 4MB -fm dout 0x0 "XXXXXXXXXX.bin"

5. Vamos a borrar el firmware que trae de origen. Ponemos el dispositivo en modo


flash, seleccionamos el COM que corresponda y aplicamos el siguiente comando:

esptool.py --port COM4 erase_flash

Pulsamos Enter y nos tiene que dar este resultado:

C:\>esptool.py -p COM4 erase_flash esptool.py v2.7-dev


Serial port COM4
Connecting....

Detecting chip type... ESP8266 Chip is ESP8285


Features: WiFi, Embedded Flash MAC: XX:XX:XX:XX:XX:XX Uploading stub...

Running stub...
Stub running...
Erasing flash (this may take a while)... Chip erase completed successfully in 5.3s Hard
resetting via RTS pin...

6. Introducir el firmware de HAA. Previamente tendremos que haber descargado el


archivo binario de:
https://github.com/RavenSystem/esp-homekit-devices/wiki/Installation.
Ponemos el dispositivo en modo flash, seleccionamos el COM que corresponda y
aplicamos el siguiente comando:

esptool.py -p COM4 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0 fullhaaboot.bin

Si todo salió bien nos tiene que dar este resultado final:

Hash of data verified.


Leaving...
Hard resetting via RTS pin...

Desconectamos el dispositivo, desconectamos el USB TTL y YA TENEMOS EL


DISPOSITIVO FUNCIONANDO CON HAA, PASAMOS A LA SEGUNDA PARTE.

© jvog85 – GUIA HAA v1.3 - Página 33 de 35


7. Conectamos el dispositivo CON CORRIENTE (normalmente uso un cable simple de
enchufe para hacer pruebas antes de meterlo en la instalación o donde toque).

¡¡¡¡¡¡¡¡¡¡¡¡PRECAUCIÓN!!!!!!!!!!!!
Al conectarlo a la corriente nos
aparecerá una red wifi creada por el
mismo dispositivo

Ejemplo: HAA-B92E3A

a la que nos conectaremos para que se


nos abra un panel y marcarle cual es
nuestra red wifi y la contraseña,
aceptando pulsando SAVE (si es
posible, hacerlo cerca del emisor wifi
para no tener problemas de cobertura).

Ahora necesitaremos conocer la IP que le


ha asignado nuestra red. Para ello
accederemos al panel configuración de
nuestro router y buscaremos nuestro nuevo
dispositivo por el nombre visto anteriormente
(ejemplo: HAA-B92E3A), comprobaremos
que ip le ha asignado el router

y la escribiremos en el navegador para


meternos en su página de configuración,
donde escribirle el JSON correspondiente.
La página que nos aparecerá será la que
vemos a la derecha.

Es el momento de añadir el accesorio a la


app home de Apple. Le damos añadir nuevo
dispositivo y en la nueva pantalla le presionas
en “No tengo un código o no puedo
escanearlo”. Nos aparecerá́ el accesorio a
añadir, pulsamos sobre el e introducimos el
siguiente código: 021-82-017, y listo, ya solo
quedará configurar el nombre que queremos
ponerle y la ubicación (estancia).

© jvog85 – GUIA HAA v1.3 - Página 34 de 35


EJEMPLO DEL PROCESO EN WINDOWS:

EJEMPLO DEL PROCESO EN MAC:

© jvog85 – GUIA HAA v1.3 - Página 35 de 35

También podría gustarte