Vítejte u prvního skutečného tvoření. Máte před sebou desku ESP32, která už úspěšně "žije". Je připojená k vaší Wi-Fi a v Home Assistantovi svítí zeleně jako Online.

Zatím je to ale jen chytré těžítko. Deska sice komunikuje se serverem, ale Home Assistantovi nenabízí žádné entity. Nemá žádné senzory, které by posílaly data, ani vypínače, které byste mohli ovládat.

V tomto díle to změníme a vrhneme se na absolutní základy každé automatizace. Naučíme desku ovládat světlo (výstup) a reagovat na stisk fyzického tlačítka (vstup).

Anatomie konfiguračního souboru

Otevřete si v Home Assistantovi záložku ESPHome a u svého zařízení klikněte na tlačítko EDIT. To, co vidíte, je konfigurační soubor ve formátu YAML.

Jeho horní část, kterou vygeneroval ESPHome, když jste zařízení přidali, vypadá asi takto:

esphome:
  name: test-esp
  friendly_name: test-esp

esp32:
  board: esp32dev
  framework:
    type: arduino

# ... následují sekce pro logger, api, ota, wifi ...

Co to znamená?

  • esphome: Základní nastavení, jméno zařízení.
  • esp32: Říká kompilátoru, pro jaký čip má kód připravit. V této sekci lze nastavit i konkrétní desku.
  • wifi a ap: Nastavení sítě (které se odkazuje do secrets.yaml).
  • logger: Umožňuje desce posílat textové výpisy (logy) zpět do počítače (klíčové pro hledání chyb).
  • api: To nejdůležitější – "Native API", přes které si deska povídá s Home Assistantem.

Do této horní sekce zatím nezasahujte, pokud nevíte, co děláte. Pokud totiž smažete nebo přepíšete některé důležité nastavení, může se totiž stát, že deska se již nepřipojí k síti nebo nepřijme nový kód přes OTA. Potom byste ji museli znova připojovat přes USB. Náš kód budeme přidávat až na konec souboru.

Ovládáme výstup: LED dioda

Většina vývojových desek ESP32 má integrovanou modrou LED diodu připojenou na pin GPIO 2. V ESPHome existuje komponenta switch (spínač), kterou použijeme, abychom řekli: "Vytvoř vypínač, který ovládá napětí na pinu 2."

Zkopírujte následující kód a vložte ho na úplný konec vašeho konfiguračního souboru:

switch:
  - platform: gpio
    pin: 2
    name: "LED dioda"
    id: blue_led

Co jsme právě napsali?

  • switch: Definujeme rodinu komponent (spínače).
  • platform: gpio: Říkáme, že tento spínač bude ovládat fyzický pin na čipu (General Purpose Input/Output).
  • pin: 2 Adresa pinu.
  • name: Pod tímto názvem se vypínač objeví v Home Assistantovi.
  • id: Interní název pouze pro potřeby ESPHome (využijeme později pro automatizace přímo v čipu).

Krok 2: Čteme vstup (Tlačítko BOOT)

Na desce jsou obvykle dvě tlačítka. Jedno je EN (Reset) – to restartuje čip. Druhé je BOOT. Toto tlačítko je programovatelné a je připojeno na pin GPIO 0.

Protože tlačítko má jen dva stavy (stisknuto/nestisknuto), použijeme komponentu binary_sensor.

Přidejte tento kód pod sekci switch:


binary_sensor:
  - platform: gpio
    pin: 0
    name: "Tlačítko BOOT"
    inverted: true

 

Vysvětlení:

  • binary_sensor: Senzor, který zná jen stavy ON a OFF.

  • inverted: true: Důležitý detail. Tlačítka na vývojových deskách jsou zapojena "proti zemi" (Pull-up). To znamená, že v klidu je na pinu logická 1 (ON) a při stisku se spojí se zemí a je tam 0 (OFF). Aby se nám to v Home Assistantovi ukazovalo logicky (Stisk = ON), musíme logiku obrátit (invertovat).


Krok 3: Nahrání a testování

Nyní máme v kódu definovanou LEDku i tlačítko. Jdeme to nahrát!

  1. Vpravo nahoře klikněte na SAVE.

  2. Klikněte na INSTALL.

  3. Vyberte Wirelessly (Bezdrátově).

    • Protože už máme desku z minulého dílu spárovanou a online, nemusíme připojovat USB kabel. Kód se pošle vzduchem.

Proběhne kompilace (teď už bude rychlejší) a nahrání. Po dokončení se automaticky otevře okno s logy.

Testujeme v logu: Zkuste na desce stisknout tlačítko BOOT. V běžícím textu logu byste měli vidět něco jako: [I][binary_sensor:036]: 'Tlačítko BOOT': Sending state ON [I][binary_sensor:036]: 'Tlačítko BOOT': Sending state OFF


To znamená, že deska žije, čip tlačítko vidí a posílá informaci do systému!


Krok 4: Integrace do Home Assistanta

Zavřete okno s logy a editor ESPHome. Jděte se podívat do "uživatelské části" Home Assistanta.

  1. Jděte do Nastavení -> Zařízení a služby.

  2. Najděte integraci ESPHome a své zařízení.

  3. Klikněte na Zařízení.

Měli byste vidět sekci Ovládání s přepínačem "Modrá LED na desce" a sekci Senzory s "Tlačítko BOOT".

  • Zkuste v Home Assistantovi přepnout přepínač LED. Modrá dioda na vašem stole by se měla rozsvítit.

  • Zkuste podržet tlačítko na desce. Ikona senzoru v Home Assistantovi by se měla změnit.

Gratuluji! Právě jste propojili fyzický svět s tím digitálním.

 

FB tw

Další podobné články