blog.vyoralek.cz

IoT produkty s ESP8266 napojené na HomeKit

Dnes se podíváme na jeden s alternativních firmwarů, který slibuje možnost přímé integrace ESP8266 IoT produktů na HomeKit.

Projekt s názvem Home Accessory Architect (dále HAA) – dříve známý pod názvem RavenCore – přináší nativní podporu Apple HomeKit pro jakékoliv zařízení běžící na ESP8266 čipu.

Můžete tak díky přehrání firmware začít používat vaše IoT produkty s ESP8266 se systémem HomeKit bez nutnosti mít nějakého dalšího prostředníka – například HomeAssistant, což může být pro někoho výhoda.

Jaký HW budeme potřebovat?

Nejprve si vybereme nějaký IoT produkt používající ESP8266 . Kromě poměrně obsáhlé nabídky od firmy Sonoff (přehled 1. část, 2.část), tak i například WiFi zásuvku od BlitzWolf (popis v článku) nebo LED pásek (popis v článku).

Postup nahrání alternativního firmware se může lišit – od použití HW UART sériového rozhraní pro Sonoff až po možnost bez nutnosti rozebrání.

Pro účely HAA si úplně nejsem jistý, zda je možné nějakým způsobem využít možnost bez rozbrání, jelikož budeme potřebovat podstrčit více než jeden binární soubor – což nám nepříjemně komplikuje i situaci pokud už na zařízení máme např. Tasmotu, která by se pro nahrání dala použít.

Dále si tak ukážeme první způsob přes UART sériového rozhraní.

Instalace firmware

Pro instalaci budeme potřebovat hned tři soubory:

  1. bootovací obraz – rboot.bin
  2. hlavní soubor s firmware HAA – main.bin
  3. prázdnou konfiguraci – blank_config.bin

💡V oficiálním návodu najdete ještě alternativní možnost instalace přes OTA přímo z Internetu, ale tento způsob zatím není příliš doporučovaný a já jsem nebyl ani schopen přes něj firmware nainstalovat.

1. Promazání stávajícího firmware

V závislosti na použitém HW tak připojíme UART sériového rozhraní a aplikaci pro manipulaci s firmware – já doporučuji už několik článků ESPTool, který je napsán v Pythonu.

➜ esptool.py -p /dev/cu.SLAB_USBtoUART erase_flash

Doporučuji ještě před spuštěním esptool provést kontrolu zda neexistuje novější verze pomocí příkazu:

➜ pip install esptool --upgrade

🥁Nezapomeňte, že po úspěšném použití esptool je hardware restartováno a často tak vypnut mód umožňující nahrávání firmware.

2. Nahrání nového firmware

Přepneme se do adresáře kam jsme si uložili všechny tři výše uvedené binární soubory a spustíme příkaz:

➜ esptool.py -p /dev/cu.SLAB_USBtoUART --baud 115200 write_flash -fs 1MB -fm dout -ff 40m \
0x0 rboot.bin 0x1000 blank_config.bin 0x2000 main.bin
esptool.py v2.8
Serial port /dev/cu.SLAB_USBtoUART
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:58:2f:21
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash params set to 0x0320
Compressed 3104 bytes to 2169...
Wrote 3104 bytes (2169 compressed) at 0x00000000 in 0.6 seconds (effective 42.2 kbit/s)...
Hash of data verified.
Compressed 2048 bytes to 23...
Wrote 2048 bytes (23 compressed) at 0x00001000 in 0.4 seconds (effective 44.3 kbit/s)...
Hash of data verified.
Compressed 473792 bytes to 338728...
Wrote 473792 bytes (338728 compressed) at 0x00002000 in 39.3 seconds (effective 96.4 kbit/s)...
Hash of data verified.

Nastavení WiFi a konfigurace

Po úspěšném nahrání všech tří binárních souborů bychom už v sériové konzoli měli vidět něco jako následující řádky o aktivaci Hotspotu:

>>> wifi_config: http_task: Got 64 incomming data
!!! wifi_config: Unknown endpoint: GET /hotspot-detect.html
>>> wifi_config: http_task: Got 64 incomming data
>>> wifi_config: http_task: Got 3 incomming data
>>> wifi_config: wifi_config_server_on_message_complete: Unknown endpoint
>>> wifi_config: client_send_redirect: Redirecting to http://192.168.4.1/settings
>>> wifi_config: Client disconnected
>>> wifi_config: http_task: Got 64 incomming data
>>> wifi_config: http_task: Got 50 incomming data

a můžeme se tak podívat na mobilní telefon a nebo i počítač a snažit se najít vytvořený Hotspot s názvem HAA-XXX, kde XXX je adresa vašeho IoT zařízení a měla by nám vyskočit nastavovací obrazovka:

HAA konfigurační okno

Je potřeba jednak zadat JSON konfiguraci (nazývané též HAA template) , což je specifické nastavení pro váš IoT produkt a pak vybrat vaší WiFi a zadat heslo.

Uvedu zde rovnou pár příkladů a více si můžete přečíst na GitHubu:

Sonoff Basic/SV/Mini/TH/POW Standard Switch

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

Sonoff S20/S26 bez UART výstupu, se status LEDkou a tlačítkem

{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"t":2,"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0}]}]}

Po restartu bychom měli zařízení už vidět v síti a např. u Sonoff Basic přes sériovou linku je možno vidět přepínání pomocí tlačítka:

HAA > Digital output GPIO 12 -> 1
HAA > Setter ON
HAA > Digital output GPIO 12 -> 0
HAA > Setter ON
HAA > Digital output GPIO 12 -> 1
HAA > Setter ON

Přidání zařízení do Homekitu

V mobilu si otevřeme aplikaci domácnost a klikneme na přidání nového příslušenství z naskenujeme následující kód:

Pairing code image

.. popř. ho přidáme ručně.

Budeme ještě upozornění, že se jedná o necertifikované zařízení:

Přidání zařízení do HomeKitu

… a čeká nás pak cca půl minuty až minuta čekání, ale na konci bychom měli být úspěšně přidání zařízení do Apple HomeKitu.

Zatím si neodvážím udělat nějaký větší závěr, ale pokud tento firmware nějakou dobu používáte budu rád za sdílení zkušeností.

1 komentář

Napsat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • Používám 2x sonoff basic s ravencore a spokojenost. Občas je potřeba znovu připojit při výpadku napájení či restartujte wi-fi, ale jinak se jednal spolehlivé řešení.
    Nyní hledám způsob jak spínat pulzem garážových vrata pomoci vhodneho zarizeni s HAA. Za případný článek bych b\l vdecen.

%d blogerům se to líbí: