Od posledního článku, který jsem věnoval ESPHome uběhly téměř 2 roky a za tu dobu se v oblasti tohoto software pro zařízení s čipy ESP8266/ESP32
událo poměrně hodně.
Největší novinkou je připojení vývoje ESPHome pod tým Nabu Casa starající se o Home Assistant, což ve svém důsledku přineslo lepší integraci s Home Assistantem (na což se zaměříme v nějakém dalším článku) a mnohem častější vydávání nových verzí.
Jednou z oblastí, která prošla od té doby velkou změnou, je instalace ESPHome na nové zařízení, která je nyní příjemnější a jednodušší.
Pokud chcete ESPHome skutečně použít ve větším měřítku, pak může být velmi vhodné nainstalovat si ESPHome jako doplněk Home Assistanta (o čemž jsem psal kdysi článek).
Tato konfigurace má ale jednu nevýhodu a to, že pokud chcete přidávat nové zařízení tak ho musíte fyzicky (přes USB) připojit k PC na kterém běží HomeAssistant a my si nyní ukážeme dva způsoby jak se bez tohoto přímo připojení obejít.
1. způsob – příprava přes web a osvojení v ESPHome
Prvním způsobem je kombinace obecného buildu pomocí webu, díky čemuž pak budeme schopni zařízení přidat – osvojit – přímo v Addonu HomeAssistanta.
Příprava zařízení na osvojení
Pokud nechceme zařízení přidávat přímo přes to kde nám běží ESPHome jako addon, pak je potřeba nejprve dostat zařízení do stavu, kdy bude schopné osvojení do ESPHome.
K tomuto kroku slouží ”lite” verze ESPHome, která běží přímo na Internetu na adrese web.esphome.io a díky níž bychom měli být schopni se z prohlížečů Chrome a MS Edge komunikovat se zařízeními připojených přes USB – teoreticky tak z jakéhokoliv počítače (bohužel mobilní/tabletové verze prohlížečů toto neumí).
Při prvním zobrazení stránky uvidíme informaci, že žádné ESP zařízení není připojeno a to vyřešíme nejprve fyzickým připojením zařízení přes USB k počítači, následným kliknutím na Connect a nakonec vybrání portu kde máme ESP zařízení.
Po kliknutí na Connect se nám zobrazí seznam všech dostupných portů a dle typu zařízení se mohou názvy lišit, ale obvykle to bude položka s názvem USB to UART
a tu vybereme.
Pokud jsme vybrali správný port stav ESP zařízení se změní na Connected a změní se nám i akce, které můžeme provést.
Nás bude zajímat volba Prepare for Adoption na kterou klikneme a dostaneme informaci o tom co proces přípravy pro osvojení znamená – defakto instalaci určité základní verze ESPHome, která nám umožní připojit ESP zařízení do ESPHome sítě.
Klikneme na Make Adoptable a zanedlouho bychom měli vidět informaci o dokončení – Provisioned! a tím proces přípravy na webu hotový.
Osvojení zařízení
ESP zařízení bychom nyní měli mít připraveno k osvojení a tak se z webových stránek esphome.io můžeme přesunout do ESPHome Addonu, kde bychom už na hlavním dashboardu měli nově vidět jedno zařízení navíc ve stavu Discovered a s možnosti akce Adopt.
Na tlačítko klikneme a od této chvíle můžeme editovat konfiguraci, instalovat novou verzi a vůbec vše ostatní jako kdybychom zařízení přidali přímo přes Addon ESPHome.
2. způsob – build v addonu HomeAssistanta a nahrání pomocí ESPHome flasheru
Druhá možnost je svým způsobem opačná k předchozímu, tj. nejprve v Addonu HomeAssistanta vyrobíme konfiguraci z které vytvoříme binární flash soubor, který pak na počítači nahrajeme se zařízením připojeným k USB pomocí aplikace ESPHome flasher.
Vytvoření binárního flash souboru
V Addonu ESPHome klikneme na New Device, pojmenujeme jej a vybereme příslušný typ zařízení.
Díky tomu bychom měli mít připravenu základní konfiguraci, kterou následně můžeme rovnou zeditovat do finální podoby.
Jakmile je konfgurace připravená vrhneme se na build flash souboru což uděláme pomocí menu třech teček – Install – Manual Download a vybereme Legacy format.
Konfigurace se zbuilduje a automaticky by se nám měl stáhnout binární soubor na náš disk, který bude pojmenovaný stejně jako jsme nazvali konfiguraci, jen přípona souboru bude bin.
Nahrání binárního flash souboru
Z webu ESPHome flasheru si stáhneme aplikaci dle operačního systému, který používáme a tu spustíme.
Připojíme zařízení přes USB k počítači a v položce Serial port bychom měli vidět USB port na kterém je připojené nové zařízení.
Na disku najdeme flash binární soubor, který jsme před chvíli vyrobili a nastavíme ho jako Firmware a posledním krokem je pouze stisknout Flash ESP a je můžeme sledovat log.
Using '/dev/cu.usbserial-01B05D66' as serial port.
Connecting.........
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting....
Detecting chip type... ESP32
Connecting......
Chip Info:
- Chip Family: ESP32
- Chip Model: ESP32-D0WDQ6 (revision 1)
- Number of Cores: 2
- Max CPU Frequency: 240MHz
- Has Bluetooth: YES
- Has Embedded Flash: NO
- Has Factory-Calibrated ADC: YES
- MAC Address: 24:6F:28:24:F9:90
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
- Flash Size: 4MB
- Flash Mode: dio
- Flash Frequency: 40MHz
Erasing flash (this may take a while)...
Chip erase completed successfully in 5.6s
Flash will be erased from 0x00001000 to 0x00004fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x000e9fff...
Compressed 15872 bytes to 10319...
Writing at 0x00001000... (100 %)Wrote 15872 bytes (10319 compressed) at 0x00001000 in 0.4 seconds (effective 282.4 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 144...
Writing at 0x00008000... (100 %)Wrote 3072 bytes (144 compressed) at 0x00008000 in 0.1 seconds (effective 394.9 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 624.0 kbit/s)...
Hash of data verified.
Compressed 889056 bytes to 510804...
Writing at 0x000e7bad... (100 %)Wrote 889056 bytes (510804 compressed) at 0x00010000 in 13.0 seconds (effective 545.2 kbit/s)...
Hash of data verified.
Pokud nedojde při nahrávání k chybě zařízení bude samo restartováno a rovnou uvidíme log.
Skvělé že? Mě to velmi usnadnilo proces přidávání nových zařízení, jelikož samotné PC s Home Assistentem je zavřené v technické místnosti a takhle je možné přidávat nová zařízení jak se říká hezky od stolu 🙂
Tak takhle, no velice podobně, ale prostě „hezky od stolu“, to šlo už i před integrací do týmu Nabu Casa a nějakou tou stránkou web.esphome.io .
Stačilo v add-on-u ESPHome nakonfigurovat nové zařízení, zkompilovat do *.bin a ten nahrát pomocí nástroje ESPHome-Flasher nahrát do zařízení a pak už po připojení do sítě ladit a updatovat via OTA.
Díky za komentář. Koukal jsem, že o ESPHome-Flasher jsem ještě nepsal, takže to přidám jako další možnost. Oba způsoby jsou poměrně odlišné a každý má jak plusy tak mínusy čili ideálně ať si každý vybere co mu vyhovuje lépe.