Home Assistant je skvělá věc, ale bez nějakých „podřízených“ prvků toho moc nezmůže. Už jsme si ukázali chytré zásuvky, vypínače, žárovky a další zajímavé produkty, které jsou určitě fajn, ale pro někoho mohou být drahé anebo prostě nesplňují jeho požadavky. V tu chvíli ovšem nezoufejte, protože nastupuje na scénu add-on ESPHome a ten vám dovolí vytvořit si opravdu nespočet variant svých vlastních, tzv. DIY (Do-it-yourself -> udělej si sám) smart home Wi-Fi prvků a dokonce velice levně.
Mimo to můžete v ESPHome vytvořit alternativní firmware, který nahrajete do chytrých vypínáčů nebo zásuvek (např. od firmy Sonoff, Tuya,..) a tím získáte hezký design profesionálně zpracovaného zařízení s benefity čistě lokálního ovládání bez nutnosti spoléhat se na cloud.
V tomto článku se dozvíte jak ESPHome nainstalovat, jak připravit konfiguraci pro několik modulů (relé, LED pásek, teplotní a vlhostní čidlo, dešťový senzor a tlačítko)a zkompilovat ji do firmwaru, nahrát na desku NodeMcu v3 a přidat jako entity do Home Assistanta.
Co se bude hodit
Samozřejmě nemusíte vytvořit úplně stejný prvek jako já, ale můžete využít jen co potřebujete a ostatní odmazat z konfigurace.
- Home Assistanta
- NodeMcu v3 (například >odtud<) – 46 kč
- DHT22 (například >odtud<) – 55kč
- Dešťový senzor (například >odtud<) – 13 kč
- Pásek LED diod WS2812 (například >odtud<) – od 63kč
- Tlačítko (například >odtud<) – 16kč
- Modul se třemi relé (například >odtud<) – 57 kč
- Nepájivé kontaktní pole – breadboard (například >odtud<) – 45 kč
- Propojovací kablíky (například >odtud<) od 11kč / 20ks
(doporučuji mít po ruce všechny kombinace – samec-samec, samec-samice, samice-samice) - USB kablík a nabíječku (5V, USB, například ty k mobilům)
Instalace ESPHome
Začněte tím, že nainstalujete addon ESPHome do Home Assistanta. Jděte do Hass.io > Add-on store a vložte jako nový repozitář tento odkaz: https://github.com/esphome/hassio a klikněte na add (přidat).
Sjeďte na stránce níže a otevřete nově přidaný add-on ESPHome
Následně add-on klasicky spusťte pomocí START a až naběhne, otevřete jej pomocí OPEN WEB UI.
Vytvoření a nahrání prvního firmwaru
V rozhraní ESPHome klikněte na plus v růžovém kolečku v pravém horním rohu.
Následně se vám zobrazí průvodce přidání nového modulu. Tam bude potřeba v krocích zadat:
- jméno modulu, např. prvni_nodemcuv3
- typ desky/modulu – v našem případě NodeMcu
- WiFi SSID – název vaší Wi-Fi
- WiFi password – heslo k vaší Wi-Fi
- access password – zde zadejte nějaké heslo dle vlastního uvážení. Bude později sloužit k přidání do Home Assistanta
- Hotovo!
Tímto se nám vytvoří předpřipravený konfigurační soubor. Klikněte tedy u nově vytvořené dlaždice na EDIT.
Zkušenejší uživatelé mohou rovnou napsat celou cílovou konfiguraci a nahrát ji tam najednou. Já ale raději nahraju jen základní konfiguraci, kterou jsem oproti videu doplnil o nastavení statické adresy.
To je v příkladu níže „zakomentované“, což znamená, že tam sice je napsáno, ale nebude se do firmwaru aplikovat. Vy si to můžete odkomentovat smazáním „#“, ale zkontrolujte si jaké IP adresy přiděluje váš router. Pokud např. vaše adresy jsou 192.168.0.5 (mění se jen poslední číslo), nastavte tomuto modulu 192.168.0.60. Zároveň se ujistěte, že na síti nemáte žádné zařízení s touto adresou.
esphome: name: prvni_nodemcu platform: ESP8266 board: nodemcuv2 wifi: ssid: "MojeTajnaWifi" password: "MojeTajneHeslo" # manual_ip sekci si můžete odkomentovat, pokud víte co děláte # obecně je lepší mít toto nastaveno, ale není to povinné # manual_ip: # static_ip: 10.0.1.60 # gateway: 10.0.1.138 # subnet: 255.255.255.0 # Tato část zajistí, že pokud dojde ke ztrátě Wi-Fi # (například při přejmenování) # vytvoří modul vlastní Wi-Fi, na kterou se připojíte a nastavíte nové údaje ssid: "Nodemcu Deleteit" password: "GGawoKvJrirj" captive_portal: # Povoluje logování logger: # Zajišťuje komunikaci mezi tímto modulem a Home Assistantem api: password: "mojetajneaccessheslo" ota: password: "mojetajneaccessheslo"
Po zkontrolování konfigurace musíme propojit modul s Home Assistantem. (Pokud jste dělali úpravy, nezapomeňte uložit). Pokud jej máte klasicky na Raspberry Pi, bude vám k tomu stačit USB-microUSB kabel. Propojte tedy libovolný USB port na Raspberry Pi s microUSB portem NodeMcu.
Následně běžte do Hass.io > Dashboard > ESPHome a restartujte add-on. Tento krok je potřeba, aby se nově připojený modul zobrazil v ESPHome. Je to bohužel takový nešvar Home Assistanta. Následně znovu přejděte do add-onu ESPHome a nahoře by se vám měl zobrazit nový dostupný PORT. Ten zvolte. Je to nově připojený modul NodeMcu.
Následně nám nezbývá nic jiného, než nahrát firmware na modul. Klikněte u tedy na UPLOAD.
Pokud vše dopadne správně, měla by se po chvíli kompilování a nahrávání firmwaru na desku zobrazit informace, že je deska online.
Doplnění senzorů a dalších modulů
Nyní desku můžete odpojit od Raspberry Pi a připojit třeba k nabíječce. Na další uploady už nemusí být připojena, ale firmware se nahraje přes Wi-Fi. (Zkontrolujte, že při upload máte nastaven port „OTA (Over-The-Air)“)
Nyní doplňte pod váš stávající kód v konfiguraci následující řádky (nebo jen ty, které chcete podle svého zapojení). Následující sekci a co která věc znamená nebudu rozebírat. Mluvím o tom velmi podrobně ve videu, které naleznete na začátku článku.
binary_sensor: - platform: gpio pin: number: D6 mode: INPUT_PULLUP inverted: True name: "Testovací tlačítko" on_press: - switch.toggle: rele_1 - platform: gpio pin: number: D3 name: "Dešťový senzor digital" switch: - platform: gpio pin: D0 name: "Relé 1" id: rele_1 - platform: gpio pin: D1 name: "Relé 2" - platform: gpio pin: D2 name: "Relé 3" light: - platform: fastled_clockless chipset: WS2812 pin: "D7" num_leds: 27 rgb_order: GRB name: "LED ukázka" effects: - random: - strobe: - flicker: - addressable_rainbow: - addressable_color_wipe: - addressable_scan: - addressable_twinkle: - addressable_random_twinkle: - addressable_fireworks: - addressable_flicker: sensor: - platform: adc pin: A0 name: "Dešťový senzor analog" update_interval: 10s - platform: dht pin: D5 temperature: name: "Teplota test" humidity: name: "Vlhost test" update_interval: 20s
A následně zapojte podle obrázku, kódu nebo videa.
Pokud někdy v budoucnu narazíte na problém spojený s různými specifiky jednotlivých pinů, doporučuji kouknout na tuto stránku a zjistit v čem je problém.
https://esphome.io/devices/nodemcu_esp8266.html?highlight=nodemcuv2
Následně můžeme upravenou konfiguraci opět nahrát na desku pomocí UPLOAD.
Přidání do Home Assistanta
Poslední krok ke spokojenosti je připojit všechny senzory jako entity. To uděláme tak, že zaintegrujeme danou desku do Home Assistanta. Ještě se ujistěte, že je deska ONLINE v ESPhome.
V Home Assistantovi jděte do Nastavení > Integrace > Nová integrace (plus v pravém dolním rohu) > ESPHome. Do pole Host zadejte IP adresu této desky. Pokud jste nastavovali statickou, stačí ji tam jen zadat. Pokud ne, musíte ji zjistit. Buď v nastavení vašeho routeru nebo otevřete ESPHome a u daného modulu zvolte SHOW LOGS. Ve výpisu naleznete mimo jiné právě i IP adresu.
Port ponechte takový, jaký je. Potvrďte a v dalším poli vyplňte své access heslo, které jste zadali do konfigurace. V dalším kroku máte ještě možnost upřesnit v jaké oblasti domácnosti se zařízení nachází… hotovo!
Nyní můžete přejít do Nastavení > Zařízení a zde už naleznete nově přidanou desku. Po rozkliknutí uvidíte něco takového.
Tadá, hotovo. Nyní máte nové entity s jednotlivými senzory, které ESPHome dodalo do vašeho domova. Další kroky už jsou na vás. Začněte třeba s automatizacemi podle tohoto návodu.
Napište mi co vás dále zajímá a jak vám byl tento článek užitečný. Pokud máte nějaký dotaz, napište ho sem do komentářů, případně se přidejte do naší FB skupiny Smart Home Bastlíři CZ/SK, kde vám ostatní rádi poradí.
Zároveň můžete najít Hello-Future na těchto sítích:
Instagram: https://www.instagram.com/hellofuturecz
Youtube: https://www.youtube.com/channel/UCaq4XkexFgCCLTFNQKXcwyw
Zkoušel jsem podle tvého návodu, teplotní čidlo ale neukazuje mi hodnoty? Kde je problém? Bohužel ty máš 4 kolíkový teplotní čidlo já 3, vadí to?
Možná máš jiný typ. Těžko říct takto bez informací :/
ahoj ake to mas cislo? moej je napriklad AM2302 a potom staci pridat do esp home model: AM2302…bez tohoto mi tiez nenacitalo hodnoty…. teraz to ide super 🙂
U čidel typu Dht doporučuji zapojit tzv. pullup rezistor od hodnoty 4K7 – 10K mezi datový pin a napájecí pin +. Tím by se mělo vyřešit chybné vyčítáni dat ze senzoru
Zdravím, návod super, díky moc! Jen jedna věc nechodí, a to je LED pásek. Zapojil sem 1m s 30 ledkama, https://www.btf-lighting.com/collections/pixels-led-strip-1/products/ws2812b-led-pixel-strip-30-60-74-96-100-144-pixels-leds-m
Ale s bídou svítí první ledka, ostatní se ani nehnou. A i ta první svítí velmi slabě. Efekty se zřejmě přepínají, reaguje to, ale prostě to svítí chabě. Netušíte v čem by mohl být problém? Yaml jsem použil původní.
No nic…pán prohodil datový a napájecí pin….