Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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)
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.
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_
Cable de corriente para alimentar el dispositivo temporalmente, nos puede servir cualquiera
que tengamos por casa, va a ser solo para configurarlo cómodamente.
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
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_
Link aliexpress:
https://es.aliexpress.com/item/4000300168092.
html?spm=a2g0s.9042311.0.0.461a63c09EAU
Pu
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_
A=W:V
W=VxA
MEDICIÓN DE VOLTAJE
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.
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.
SONOFF S20
Entrar en flash mode: pulsar GPIO0 (botón naranja)
ESQUEMA DE INSTALACIÓN
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_
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
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
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
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
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.
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}]}}]}
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.
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.)
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.
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.
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
BAUD: 1152000
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.
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.
cd python\python38-32\scripts
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.
fullhaaboot.bin
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.
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
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
Running stub...
Stub running...
Erasing flash (this may take a while)... Chip erase completed successfully in 5.3s Hard
resetting via RTS pin...
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:
¡¡¡¡¡¡¡¡¡¡¡¡PRECAUCIÓN!!!!!!!!!!!!
Al conectarlo a la corriente nos
aparecerá una red wifi creada por el
mismo dispositivo
Ejemplo: HAA-B92E3A