Menu Zavřeno

Hass.io – ESPHome a výroba vlastních prvků chytré domácnosti

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.

Projekt Hello-Future CZ můžete podpořit drobným měsíčním příspěvkem na Patreonu!

Děkujeme za podporu, díky které na tomto webu nemusí být reklamy a máme prostředky na recenzování produktů a tvorbu návodů 🙂

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.

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).

../_images/hassio_repo.png

Sjeďte na stránce níže a otevřete nově přidaný add-on ESPHome

../_images/hassio_addons_section.png

Následně add-on klasicky spusťte pomocí START a až naběhne, otevřete jej pomocí OPEN WEB UI.

../_images/hassio_addon.png

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.

Ilustrační obrázek s jiným modulem

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.

Všimněte si, že všechny připojené prvky mají 5V napájení (červený vodič +, černý vodič -) a následně datové vodiče připojené na různé piny označené jako D1,D2,D3..
Tlačítko je připojeno jen na datový pin D6 a GND (-).

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

6 Comments

  1. Dotaz

    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?

  2. Zdeněk

    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

  3. PAVEL

    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í.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Leave the field below empty!