Naciśnij ESC, aby zamknąć

Home Assistant: ESPHome i sterowanie szlabanem osiedlowym

Spis treści

Cześć!

Czy męczy Cię konieczność pamiętania o zabraniu ze sobą pilota z mieszkania przy każdorazowym wyjeżdżaniu i wjeżdżaniu na osiedle? A może chciałbyś udostępnić zdalny dostęp do bramy lub szlabanu innym domownikom bez ponoszenia dodatkowych opłat? 

W dzisiejszym wpisie przedstawię Ci krok po kroku, jak za pomocą niedrogiej płytki ESP8266 NodeMCU i otwartego oprogramowania ESPHome zintegrować i zautomatyzować sterowanie szlabanem za pośrednictwem Home Assistanta

Rozwiązanie to nie tylko zwiększy komfort i wygodę, ale również umożliwi przydzielanie dostępu rodzinie bez konieczności dorabiania dodatkowych pilotów. Wszystko to zrealizujemy przy użyciu przystępnych narzędzi i rzeczywistego case study przeprowadzonego na moim osiedlu.

Gotowy? To zaczynamy! 🚀

Czym jest ESP8266 NodeMCU?

ESP8266, płytkaESP8266 NodeMCU to niewielka, ale niezwykle wszechstronna płytka rozwojowa oparta na popularnym układzie ESP8266 firmy Espressif. Wyposażona w zintegrowany moduł Wi-Fi działający w standardzie 802.11 b/g/n, umożliwia łatwe podłączenie do istniejących sieci bezprzewodowych i komunikację z innymi urządzeniami przez Internet.

Sercem płytki jest 32-bitowy procesor Tensilica L106 o częstotliwości 80-160 MHz oraz 64 KiB pamięci instrukcji i 96 KiB pamięci danych. NodeMCU posiada wbudowany konwerter USB-UART (CP2102), dzięki czemu można ją w prosty sposób podłączyć do komputera i zaprogramować przy użyciu Arduino IDE lub innego środowiska.

Kluczową zaletą jest obecność aż 17 wyprowadzeń GPIO (General-Purpose Input/Output), które można swobodnie wykorzystać jako cyfrowe wejścia/wyjścia lub przypisać im inne funkcje, takie jak I2C, SPI, UART itp. To pozwala na komunikację i sterowanie wszelkiego rodzaju czujnikami, wyświetlaczami i urządzeniami wykonawczymi.

Pomimo kompaktowych wymiarów i niskiej ceny, ESP8266 NodeMCU ma ogromny potencjał w projektach DIY oraz Internetu Rzeczy dzięki dużym możliwościom, niskim kosztom i doskonałemu wsparciu społeczności.

Czym jest ESPHome?

ESPHome, ikona

ESPHome to potężne, open source’owe środowisko programistyczne stworzone specjalnie z myślą o urządzeniach opartych na popularnych mikro-kontrolerach ESP8266 i ESP32. Jego głównym celem jest ułatwienie tworzenia inteligentnych urządzeń z zakresu Internetu Rzeczy (IoT), które można następnie w pełni zintegrować i kontrolować za pośrednictwem platformy Home Assistant.

Konfiguracja urządzeń w ESPHome odbywa się poprzez przyjazne pliki w formacie YAML, które pozwalają na definiowanie działania różnych komponentów, czujników, wyświetlaczy czy elementów wykonawczych. Dzięki temu programowanie staje się intuicyjne i przystępne nawet dla osób bez dogłębnej znajomości kodowania.

Oprócz natywnej integracji z Home Assistant, ESPHome wspiera również szeroką gamę gotowych modułów i bibliotek, pozwalając na obsługę wielu popularnych innych podzespołów. 

Przygotowanie

Zanim zanurzymy się w adaptację pilota do naszego systemu przy użyciu ESP8266 i ESPHome, warto odpowiednio się przygotować. Poniżej znajdziesz kluczowe kroki, aby rozpocząć projekt:

Wymagane urządzenia i komponenty

Upewnij się, że masz wszystkie niezbędne materiały:

  • Płytka ESP8266 NodeMCU (lub ESP32, jeśli zdecydujesz się na nowszy model),
    • Warto zweryfikować przed zakupem płytki ESP, czy zasięg sieci Wi-Fi dociera w miejsce naszej instalacji. Może się okazać, że będziemy potrzebować zakupić płytkę z możliwością podłączenia zewnętrznej anteny.
  • Moduł przekaźnika 1 kanał – styki 10A/250VAC – cewka 5V,
  • Pilot do naszego szlabanu / bramy garażowej,
  • Źródło zasilania dla płytki ESP8266 (5V DC),
  • Kostki elektryczne,
  • Puszka, w której schowamy płytkę wraz z modułem przekaźnika (odporna na warunki atmosferyczne),
  • Puszka, w której schowamy pilot będący w zasięgu naszego szlabanu / bramy garażowej (odporna na warunki atmosferyczne), 
  • Przewody połączeniowe do wszystkich elementów.

Instalacja ESPHome w Home Assistant

Zainstaluj ESPHome w swoim środowisku Home Assistant, aby móc łatwo konfigurować i zarządzać urządzeniem ESP8266. Skorzystaj z dokumentacji ESPHome i postępuj zgodnie z instrukcjami.

Przygotowanie przestrzeni pracy

Zorganizuj miejsce pracy, gdzie będziesz montować układ. Upewnij się, że masz dostęp do narzędzi i jesteś w stanie swobodnie pracować nad projektem.

Krok 1 – VLAN IoT

Jako praktykę bezpieczeństwa zalecam utworzenie osobnej sieci dla urządzeń IoT, odseparowanej od głównej sieci domowej. W tym celu warto skorzystać z funkcji VLAN (Virtual Local Area Network), która pozwala na fizyczną separację urządzeń, takich jak te oparte na ESPHome, od innych urządzeń w domowej infrastrukturze.

Korzyści

Tworzenie dedykowanej sieci dla urządzeń IoT oferuje kilka korzyści:

  • Bezpieczeństwo: Odseparowanie urządzeń IoT od głównej sieci pomaga zminimalizować potencjalne ryzyko ataków. W przypadku ewentualnej kompromitacji urządzenia IoT, dostęp do głównej sieci domowej jest utrudniony.
  • Kontrola Komunikacji: Utworzenie osobnej sieci pozwala na bardziej precyzyjną kontrolę, kto i jak komunikuje się z urządzeniami IoT. Można zdefiniować reguły komunikacyjne, które pozwalają jedynie konkretnym urządzeniom (na przykład serwer czy wirtualna maszyna z Home Assistant) na interakcję z urządzeniami IoT.
  • Optymalizacja Ruchu Sieciowego: Oddzielenie ruchu urządzeń IoT od ruchu głównej sieci może przyczynić się do optymalizacji wydajności sieci.

Wdrożenie

W celu implementacji takiej separacji, warto skonsultować się z dokumentacją i ustawieniami routera. W przypadku Home Assistant, korzystając z odpowiednich reguł firewalla na routerze, można dostosować dostęp do urządzeń IoT. To podejście wprowadza warstwę dodatkowego bezpieczeństwa do naszej infrastruktury smart home.

Krok 2 – Instalacja i konfiguracja firmware do pracy z Home Assistantem

Kiedy już uruchomiony zostanie dodatek ESPHome na serwerze Home Assistant, czas przejść do dodania pierwszego urządzenia opartego na ESPHome.

Podłączenie do komputera

  • Podłącz płytkę przy użyciu przewodu USB do swojego komputera. Ważne jest, aby korzystać z przewodu USB z transmisją danych, ponieważ wiele tanich przewodów dostarcza jedynie zasilanie.
    • Dla pewności co do poprawnego działania, zalecam używanie przeglądarki Chrome lub Edge (następuje przekazywanie transmisji danych za pośrednictwem portu COM do przeglądarki przy użyciu WebSerial).

Home Assistant

  • Po zakończeniu tych kroków, zaloguj się do Home Assistant,

Home Assistant, ekran logowania

  • Z panelu bocznego przechodzimy do zakładki ESPHome,
  • Następnie klikamy New Device,

ESPHome, Button New device

  • Po wybraniu opcji dodania nowego urządzenia, możemy napotkać komunikat o niekompatybilności przeglądarki, szczególnie w przypadku przeglądarek, które nie obsługują WebSerial. Alternatywnie, możemy również natrafić na komunikat informujący o braku bezpiecznego połączenia (HTTPS) do dashboardu. W takiej sytuacji możemy kliknąć Continue, aby kontynuować proces dodawania urządzenia.

ESPHome, New device

  • W kolejnym oknie wprowadzamy nazwę dla naszego urządzenia (może to być utworzona przez nas nazwa lub alias) oraz dane naszej sieci Wi-Fi.
    • Wprowadzanie danych do sieci Wi-Fi jest konieczne jedynie przy pierwszym dodawaniu urządzenia. Kolejne dodawane urządzenia oparte o ESPHome nie będą wymagały tego kroku.
  • Następnie, aby ESPHome zainstalował firmware na płytce ESP8266 kliknij przycisk Connect.

ESPHome, Installation

  • Po chwili w przeglądarce pojawi się okno wyboru urządzenia do komunikacji po porcie szeregowym. Znajdź swoje urządzenie, którego nazwa powinna zawierać CP210x UART, i kliknij Connect.
  • Następnie zaczekaj, aż firmware zostanie zainstalowany na płytce.

Zakończenie procesu

Po pomyślnej instalacji powinieneś otrzymać komunikat potwierdzający zakończenie procesu. Na dashboardzie pojawi się także Twoje urządzenie z opisem ONLINE. To oznacza, że płyta została poprawnie skonfigurowana i jest gotowa do dalszych działań.

Krok 3 – Wgraj kod do sterowania szlabanem w ESPHome

W tej sekcji wgramy teraz dodamy odpowiednie wpisy dotyczące sterowania otwieraniem szlabanu. Skopiuj niezbędne elementy kodu do swojej instalacji.
# boom-barrier control v 1.0 #
esphome:
  name: esp01-boom-barrier
  friendly_name: esp01-boom-barrier
  on_boot:
    then:
    - cover.close: gate 

esp8266:
  board: esp01_1m

# Enable logging
logger:

web_server:
  port: 80

# Enable Home Assistant API
api:
  encryption:
    key: "TUTAJ BĘDZIE WYGENEROWANY KOD PRZEZ ESPHOME"

ota:
  password: "TUTAJ POJAWI SIĘ WYGENEROWANE HASŁO PRZEZ ESPHOME"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp01-Boom-Barrier Fallback Hotspot"
    password: "1234567890"

captive_portal:

# OD TEGO MIEJSCA MOŻESZ SKOPIOWAĆ ZAWARTOŚĆ #
# Cały kod załączyłem poglądowo jak powinien wyglądać #

switch:
  - platform: gpio
    pin: GPIO14
    name: "Remote - Button 01"
    icon: "mdi:boom-gate" 
    id: gate_relay
    inverted: true
    internal: true

cover:
  - platform: template
    name: "Boom barrier"
    id: gate
    optimistic: true
    open_action:
      - switch.turn_on: gate_relay
      - delay: 1000ms
      - switch.turn_off: gate_relay
      - delay: 2s
      - lambda: |-
          id(gate).publish_state(COVER_OPEN);
      - delay: 10s
      - lambda: |-
          auto call = id(gate).make_call();
          call.set_command_close();
          call.perform();       
    close_action:
      - lambda: |-
          ESP_LOGD("custom", "Executing close action lambda");
          id(gate).publish_state(COVER_CLOSED);
  • Czekamy, aż oprogramowanie zostanie skompilowane i wgrane na płytkę. Jeśli proces instalacji przebiegnie pomyślnie, w podglądzie logów zostanie Ci pokazane podsumowanie konfiguracji Twojej płytki.

Krok 4 – Podłącz wszystkie elementy do płytki

Pamiętaj, aby wykonywać te czynności z zachowaniem najwyższych standardów bezpieczeństwa elektrycznego. Upewnij się, że wszystkie połączenia są odpowiednio zabezpieczone.

Dostosowanie pilota

  • Rozebranie pilota i wyprowadzenie przewodów do zwarcia mikro-łącznika (microswitcha):
    • W większości pilotów do bram i szlabanów znajdują się mikro-łączniki pełniące funkcję przycisków. Po naciśnięciu dany mikro-łącznik zostaje zwarty, przepuszczając sygnał do otwarcia bramy.
    • Zlokalizuj na płytce pilota właściwy mikro-łącznik odpowiadający za sygnał otwierania szlabanu/bramy.
    • Delikatnie przylutuj dwa przewody do styków tego mikro-łącznika w taki sposób, abyś mógł sztucznie zwierać je sposobem naśladującym wciśnięcie przycisku.

Instalacja

  • Podłącz szybko-złączki elektryczne lub użyj ładowarki sieciowej 5V:
    • Podłącz przewód fazowy i neutralny do szybko-złączek elektrycznych. Te złączki posłużą jako punkt dystrybucji zasilania – w przyszłości Ci się może to przydać. Uwaga: Nie podłączaj jeszcze złączek do napięcia.
  • Podłącz zasilanie przetwornicy:
    • Z szybko-złączek elektrycznych poprowadź zasilanie do przetwornicy, która zamienia napięcie z 230V AC na 5V DC. Ten krok jest niezbędny, ponieważ zapewnia odpowiednie zasilanie dla płytki ESP8266.
  • Zasilanie płytki ESP8266:
    • Z płytki ESP8266 poprowadź przewody zasilające 5V DC z przetwornicy. Zasilanie płytki możesz podłączyć do złącza microUSB.
    • Poprowadź również przewód komunikacyjny z ESP8266 do przekaźnika, który posłuży do sterowania zwieraniem przekaźnika.
  • Podłączanie przekaźnika
    • Podłącz jeden z kabelków od pilota do zacisku oznaczonego jako NO (Normally Open) na module przekaźnika.
    • Podłącz drugi kabelek do zacisku oznaczonego jako COM (Common) na module przekaźnika.
    • Po takim podłączeniu, gdy przekaźnik zostanie aktywowany (załączony), dojdzie do zwarcia styków NO i COM – to zwarcie będzie symulowało sytuację zwierania mikro-łącznika, tak jakbyś fizycznie nacisnął przycisk na pilocie. W rezultacie spowoduje to wysłanie sygnału otwierającego szlaban/bramę, dokładnie tak samo jak przy użyciu oryginalnego pilota.

Końcowa weryfikacja

  • Upewnij się, że wszystkie połączenia są odpowiednio zabezpieczone:
    • Sprawdź, czy styki płytek nie dotykają metalowych (ewentualnych) części obudowy hermetycznej lub innych przewodów, które mogłyby uszkodzić Twoją elektronikę.
  • Podłącz instalację do zasilania:
    • Poczekaj, aż płytka ESP8266 podłączy się do Twojej sieci Wi-Fi.

Teraz przystąpimy do dodania nowego urządzenia do sekcji integracji w Home Assistant.

Krok 5 – Reverse proxy na Synology przy pomocy Nginx Proxy Manager

Czy korzystasz z Synology i chcesz usprawnić dostęp do swojego serwera Home Assistant? Oto szybki przewodnik krok po kroku, jak skonfigurować logowanie przy użyciu nazwy domeny i subdomeny, na przykład ha.xyz.com, zamiast wprowadzania adresu IP. Wszystko to możesz osiągnąć za pomocą Docker Compose w Portainerze.

👉 Sprawdź teraz i przygotuj swoje środowisko do kolejnych usprawnień!

Dzięki temu, korzystając z nazwy domeny, zamiast adresu IP, upraszczasz proces logowania do swojego serwera Home Assistant na Synology.

Krok 6 – Dodawanie urządzenia do Home Assistant

  • W sekcji powiadomień Home Assistant powinna pojawić się informacja, że nasz serwer automatyki domowej wykrył nowe urządzenie,
  • Przejdź do Ustawień, a następnie do Integracji i urządzeń
  • Nowe urządzenie będzie opatrzone błękitną ramką. Zatwierdzamy nowe urządzenie do integracji.
  • Ustaw obszar, gdzie będzie znajdować się dane urządzenie. W naszym przypadku będzie to Loggia.
  • Gratulacje! Osiągnąłeś ten etap, co oznacza, że sukcesywnie przeszedłeś przez proces konfiguracji. Aby sprawdzić działanie nowego urządzenia, możesz bezpośrednio przejść do niego i z poziomu Home Assistant kontrolować otwieranie szlabanu / bramy garażowej.🚀
Sterowanie szlabanem, Home Assistant encja

Apple HomeKit > CarPlay

Jeśli masz już skonfigurowane w Home Assistant integrację z Apple HomeKit, umożliwiającą sterowanie różnymi urządzeniami za pośrednictwem aplikacji Home na iOS, możesz w prosty sposób dodać do niej także encję reprezentującą bramę/szlaban.

Po pomyślnej konfiguracji i wyeksponowaniu tej encji do Apple HomeKit, będziesz mógł zobaczyć przycisk do otwierania bramy bezpośrednio na ekranie systemu multimedialnego samochodu, który obsługuje standard Apple CarPlay.

Dzięki temu zyskasz wygodną możliwość zdalnego otwierania przejazdu na osiedle już w trakcie dojazdu, bez konieczności sięgania po smartfon czy pilota. Wystarczy jedno kliknięcie na ekranie systemu multimedialnego w aucie, aby aktywować bramę.

Ta funkcjonalność jest niezwykle przydatna, ponieważ system samochodowy wykrywa Twoją lokalizację i automatycznie wyświetla przydatne akcje do wykonania w pobliżu miejsca zamieszkania. Możliwość otwierania bramy wjazdowej będzie więc wyświetlana w odpowiednim momencie, gdy tylko znajdziesz się w zasięgu swojego osiedla.

Sterowanie szlabanem, Apple CarPlay

Dodatkowe materiały i informacje

W celu dalszego zgłębienia tematu i uzyskania szczegółowych informacji, polecam sprawdzenie poniższych linków. Są one wartościowymi źródłami, które zostały wykorzystane podczas opracowywania tego poradnika.

Przeczytaj także

Filip Chochół

Filip Chochol runs two blogs: personal “chochol.io” and together with his girlfriend “Warsaw Travelers” about travel. He specializes in IT resource management and technical support, and has been active in the field of cyber security awareness for almost two years. A proponent of open-source technologies, he previously worked in the film and television industry in the camera division (2013-2021). After hours, he develops interests in smart homes and networking.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


This site uses Akismet to reduce spam. Learn how your comment data is processed.