ESP32 w połączeniu z Home Assistantem pozwala stworzyć elastyczny, niedrogi i skalowalny system automatyki domowej — od prostych czujników po zaawansowane sterowniki oraz integracje z innymi technologiami.
ESP32 i Home Assistant – dlaczego to połączenie ma sens?
ESP32 to mikrokontroler wyposażony w moduły Wi-Fi i Bluetooth. Dzięki dużej liczbie pinów GPIO, obsłudze interfejsów UART, I2C i SPI oraz przystępnej cenie doskonale sprawdza się w projektach IoT.
Home Assistant jest otwartym systemem automatyki domowej, który integruje setki urządzeń i umożliwia zarządzanie nimi z jednego miejsca. Pozwala także tworzyć rozbudowane automatyzacje, sceny i panele sterowania.
Po zastosowaniu ESPHome lub MQTT moduł ESP32 może działać jako czujnik, sterownik, bramka BLE, interfejs urządzenia przewodowego albo panel sterujący z ekranem TFT.
Architektura rozwiązania – jak ESP32 „rozmawia” z Home Assistantem?
Komunikację między ESP32 a Home Assistantem najczęściej realizuje się na jeden z dwóch sposobów:
| Rozwiązanie | Sposób działania | Najważniejsze zalety | Najlepsze zastosowanie |
|---|---|---|---|
| ESPHome z natywnym API | Deklaratywna konfiguracja w YAML i komunikacja przez dedykowane API | Szybka konfiguracja, szyfrowanie, OTA i gotowe komponenty | Urządzenia współpracujące bezpośrednio z Home Assistantem |
| MQTT | Publikowanie i odbieranie danych za pośrednictwem brokera MQTT | Duża elastyczność oraz możliwość integracji z wieloma systemami | Urządzenia działające niezależnie od Home Assistanta lub współpracujące z innymi aplikacjami |
ESPHome jest zwykle najszybszym sposobem rozpoczęcia pracy, szczególnie dla początkujących. Większość popularnych czujników i sterowników można skonfigurować za pomocą gotowych komponentów YAML.
MQTT będzie lepszym wyborem, jeśli urządzenie ma działać również bez Home Assistanta, wymieniać dane z innymi systemami albo korzystać z niestandardowej logiki przygotowanej w Arduino IDE lub PlatformIO.
Przygotowanie środowiska Home Assistant
Do integracji z ESP32 potrzebny jest działający Home Assistant. System można zainstalować między innymi na Raspberry Pi, minikomputerze, serwerze domowym lub maszynie wirtualnej.
Przygotowanie środowiska obejmuje następujące czynności:
- instalację Home Assistant OS albo odpowiednich kontenerów,
- konfigurację sieci LAN i stałego adresu IP Home Assistanta, na przykład
192.168.1.100, - utworzenie konta użytkownika, ustawienie silnego hasła i dodanie podstawowych integracji.
Warto zapisać adres IP oraz dane logowania do Home Assistanta. Mogą być potrzebne podczas konfigurowania dodatków i interfejsów internetowych urządzeń ESP32.
Instalacja i konfiguracja ESPHome w Home Assistant
ESPHome jest dostępny jako dodatek do Home Assistanta, dzięki czemu zarządzanie modułami ESP32, edycja konfiguracji i instalowanie aktualizacji odbywają się z poziomu jednego interfejsu.
Proces instalacji przebiega następująco:
- przejdź do sekcji „Ustawienia → Dodatki → Sklep z dodatkami” w Home Assistant;
- wyszukaj ESPHome i zainstaluj stabilną wersję dodatku;
- uruchom dodatek, a następnie otwórz jego interfejs internetowy.
W panelu ESPHome można tworzyć projekty, edytować pliki YAML oraz instalować oprogramowanie układowe na ESP32 przez USB lub bezprzewodowo za pomocą mechanizmu OTA.
Tworzenie pierwszego urządzenia ESP32 w ESPHome
Po zainstalowaniu dodatku należy utworzyć konfigurację przeznaczoną dla konkretnego modułu ESP32.
Standardowa konfiguracja urządzenia obejmuje następujące kroki:
- wybierz w ESPHome opcję „Nowe urządzenie”;
- nadaj urządzeniu czytelną nazwę, na przykład
salon_czujnikilubsterownik_rolet; - wybierz platformę ESP32 i właściwy model płytki, na przykład
esp32dev,ESP32-C3lubWROOM-32; - zapisz projekt i przejdź do edytora YAML.
ESPHome wygeneruje podstawowy plik zawierający między innymi sekcje esphome, wifi, logger, api i ota.
Uproszczona konfiguracja może wyglądać następująco:
esphome:
name: salon_czujnik
esp32:
board: esp32dev
wifi:
ssid: "Twoja_Siec_WiFi"
password: "TwojeHasloWiFi"
logger:
api:
ota:
- platform: esphome
Taka konfiguracja umożliwia połączenie ESP32 z Home Assistantem po prawidłowym ustawieniu sieci Wi-Fi i aktywowaniu integracji ESPHome.
Konfiguracja Wi-Fi, API i OTA – bezpieczna komunikacja
Sekcja wifi: definiuje połączenie z siecią lokalną, w której działa Home Assistant. Jej najważniejsze ustawienia to:
ssid– nazwa sieci Wi-Fi;password– hasło do sieci;manual_ip– ustawienia stałego adresu IP, bramy i maski podsieci.
Sekcja api: odpowiada za bezpośrednią komunikację z Home Assistantem. Można w niej skonfigurować uwierzytelnianie oraz szyfrowanie za pomocą wygenerowanego klucza.
Sekcja ota: umożliwia zdalne aktualizowanie oprogramowania układowego przez sieć, bez konieczności ponownego podłączania modułu do portu USB.
Rozbudowana konfiguracja sieci i zabezpieczeń może wyglądać tak:
wifi:
ssid: "Domowa_siec"
password: "MocneHaslo123"
manual_ip:
static_ip: 192.168.1.123
gateway: 192.168.1.1
subnet: 255.255.255.0
api:
encryption:
key: "WygenerowanyKluczSzyfrowania"
ota:
- platform: esphome
password: "HasloDoOTA"
Silne hasła oraz szyfrowanie komunikacji są kluczowe dla bezpieczeństwa automatyki domowej. Ograniczają ryzyko przejęcia sterowania przez nieuprawnione osoby mające dostęp do sieci lokalnej.
Dodawanie ESP32 do Home Assistanta
Po skompilowaniu i zainstalowaniu oprogramowania ESPHome Home Assistant powinien automatycznie wykryć nowe urządzenie, jeśli znajduje się ono w tej samej sieci i integracja ESPHome jest aktywna.
Pierwsze uruchomienie urządzenia przebiega następująco:
- podłącz ESP32 przewodem USB do komputera obsługującego panel ESPHome i wybierz instalację przez przeglądarkę;
- po zainstalowaniu oprogramowania uruchom moduł i zaczekaj, aż połączy się z siecią Wi-Fi;
- otwórz w Home Assistant sekcję „Urządzenia i usługi”, dodaj wykryte urządzenie ESPHome i podaj wymagane dane uwierzytelniające.
Od tego momentu encje zdefiniowane w YAML, takie jak czujniki, przyciski i przełączniki, będą widoczne w Home Assistant. Ich identyfikatory mogą mieć postać sensor.salon_czujnik_temperatura.
Dodawanie czujników i sterowników w ESPHome
ESPHome udostępnia gotowe komponenty obsługujące między innymi czujniki temperatury i wilgotności, wejścia binarne, wyjścia PWM, Modbus, przekaźniki, diody LED oraz ekrany TFT.
Czujnik temperatury DS18B20
Przykładowa konfiguracja magistrali 1-Wire i czujnika DS18B20 wygląda następująco:
one_wire:
- platform: gpio
pin: 4
sensor:
- platform: dallas_temp
address: 0x1234567890ABCDEF
name: "Temperatura salon"
Wejście binarne dla przycisku
Przycisk dzwonkowy podłączony do pinu GPIO można skonfigurować jako czujnik binarny:
binary_sensor:
- platform: gpio
pin:
number: 23
inverted: true
name: "Przycisk salon"
Sterowanie przekaźnikiem oświetlenia
Przekaźnik sterujący oświetleniem można udostępnić w Home Assistant jako przełącznik:
switch:
- platform: gpio
pin: 5
name: "Światło salon"
restore_mode: ALWAYS_OFF
Zadeklarowanie komponentu, takiego jak sensor, switch lub binary_sensor, oraz przypisanie właściwego pinu GPIO powoduje utworzenie odpowiedniej encji w Home Assistant. Można ją następnie wykorzystać w automatyzacjach, scenach i panelach sterowania.
Alternatywa – ESP32 i MQTT w Home Assistant
MQTT warto rozważyć, gdy urządzenie ma działać niezależnie od Home Assistanta, komunikować się z kilkoma systemami albo korzystać z istniejącej infrastruktury IoT.
Konfiguracja takiego rozwiązania obejmuje następujące działania:
- uruchom broker MQTT, na przykład Mosquitto, i dodaj integrację MQTT w Home Assistant;
- zaprogramuj ESP32 tak, aby publikował dane w określonych tematach, na przykład
dom/salon/temperaturalubdom/salon/swiatlo/stan; - skonfiguruj encje Home Assistanta, które będą odbierały dane i wysyłały polecenia za pośrednictwem odpowiednich tematów MQTT.
MQTT może również obsługiwać panel z ekranem TFT, który wyświetla informacje o stanie domu i pozwala sterować wybranymi urządzeniami.
ESP32 jako proxy Bluetooth dla Home Assistanta
ESP32 może działać jako bramka BLE, umożliwiając Home Assistantowi odbieranie rozgłoszeń oraz nawiązywanie aktywnych połączeń GATT z urządzeniami Bluetooth, takimi jak termometry, czujniki wilgotności czy zamki elektroniczne.
Komponent Bluetooth Proxy odbiera dane BLE w pobliżu modułu ESP32 i przekazuje je do Home Assistanta, który udostępnia obsługiwane urządzenia jako encje.
Konfiguracja polega na dodaniu w YAML modułu śledzącego BLE i komponentu proxy Bluetooth, a następnie powiązaniu wykrytych urządzeń z właściwymi integracjami w Home Assistant.
Rozmieszczenie kilku modułów ESP32 w różnych częściach domu zwiększa zasięg Bluetooth i pozwala niezawodnie zbierać dane z rozproszonych czujników.
Integracje przewodowe – Modbus, RS485 i przekaźniki
ESP32 dobrze sprawdza się w integracjach z urządzeniami komunikującymi się przez RS485 i Modbus, takimi jak falowniki fotowoltaiczne, liczniki energii, rekuperatory oraz sterowniki ogrzewania.
Przykładowe połączenie interfejsu RS485 obejmuje:
- konwerter UART–RS485 zgodny z poziomami napięć używanymi przez ESP32,
- połączenie linii TX z pinem GPIO17, a linii RX z pinem GPIO16,
- odpowiednie zasilanie modułu oraz wspólną masę GND.
W konfiguracji YAML można zdefiniować komponent Modbus i właściwe rejestry, a następnie udostępnić odczyty energii, mocy, napięcia lub stanu urządzenia jako czujniki w Home Assistant.
Typowy układ do sterowania oświetleniem lub roletami składa się z następujących elementów:
- ESP32 – steruje układami tranzystorowymi lub przekaźnikami;
- przyciski ścienne – są podłączone do wejść GPIO i skonfigurowane jako
binary_sensor; - Home Assistant – realizuje tryb ręczny, automatykę, harmonogramy i sceny.
Obwody niskonapięciowe ESP32 muszą być bezpiecznie odseparowane od instalacji 230 V.
Przykładowe projekty automatyki domowej z ESP32 i Home Assistantem
ESP32, ESPHome i Home Assistant mogą stanowić podstawę zarówno prostych projektów, jak i rozbudowanych instalacji automatyki domowej:
- Sterowanie oświetleniem i scenami – ESP32 obsługuje przekaźniki lub ściemniacze, a Home Assistant zarządza harmonogramami i scenami, takimi jak „Film”, „Wieczór” czy „Noc”;
- Monitorowanie temperatury i wilgotności – moduły z czujnikami DS18B20 lub BME280 przesyłają pomiary wykorzystywane do sterowania ogrzewaniem, wentylacją i klimatyzacją;
- Sterowanie roletami i żaluzjami – ESP32 obsługuje przekaźniki kierunkowe, a Home Assistant uwzględnia harmonogramy, temperaturę i poziom nasłonecznienia;
- Proxy BLE – rozmieszczone w domu moduły ESP32 zwiększają zasięg komunikacji z czujnikami Bluetooth znajdującymi się na przykład w garażu, lodówce lub piwnicy;
- Monitoring fotowoltaiki i magazynu energii – ESP32 komunikuje się z falownikiem przez RS485 i Modbus, natomiast Home Assistant prezentuje produkcję, zużycie i pozostałe parametry instalacji.
Możliwe są również mniej typowe zastosowania, takie jak sterowniki do filmów poklatkowych, systemy podlewania, lokalne stacje pogodowe czy niestandardowe panele sterowania.
Integracja z automatyzacjami i panelami w Home Assistant
Po dodaniu encji ESP32 do Home Assistanta można wykorzystać je w rozbudowanych automatyzacjach:
- uruchamianiu scen na podstawie ruchu, temperatury, wilgotności lub pory dnia,
- realizowaniu reguł, takich jak „jeśli temperatura w salonie przekroczy 26°C, włącz klimatyzację i zamknij rolety”,
- wysyłaniu powiadomień po przekroczeniu ustalonych progów, wykryciu awarii albo utracie połączenia z urządzeniem.
Encje udostępniane przez ESP32 można prezentować w panelach Home Assistanta na kilka sposobów:
- jako przełączniki oświetlenia, rolet, przekaźników i scen,
- jako wykresy temperatury, wilgotności, mocy oraz zużycia energii,
- jako interaktywne panele sterowania wyświetlane na tabletach ściennych.
Połączenie lokalnych odczytów z ESP32 z logiką Home Assistanta umożliwia tworzenie automatyzacji działających szybko, elastycznie i bez uzależnienia od usług chmurowych.
Bezpieczeństwo i dobre praktyki
Podczas budowy automatyki domowej z ESP32 i Home Assistantem należy przestrzegać najważniejszych zasad bezpieczeństwa:
- Silne hasła Wi-Fi, API i OTA – stosuj unikalne dane uwierzytelniające i nie zapisuj ich w publicznie dostępnych repozytoriach;
- Szyfrowanie komunikacji – używaj klucza szyfrującego API i zabezpieczaj dostęp do brokera MQTT;
- Oddzielenie obwodów 230 V od ESP32 – stosuj certyfikowane przekaźniki, moduły SSR, separację galwaniczną i odpowiednie obudowy;
- Stałe adresy IP dla kluczowych urządzeń – ułatwiają diagnostykę i ograniczają problemy z komunikacją;
- Monitorowanie dzienników ESPHome – regularnie sprawdzaj komunikaty dotyczące błędów konfiguracji, czujników i połączeń;
- Etapowe aktualizacje OTA – nową wersję oprogramowania najpierw testuj na jednym urządzeniu, a dopiero później instaluj ją na pozostałych modułach.
Prace przy obwodach 230 V powinny być wykonywane przez osobę posiadającą wymagane kwalifikacje. W instalacji należy stosować certyfikowane elementy, właściwe zabezpieczenia, odpowiednie przekroje przewodów oraz obudowy chroniące przed przypadkowym dotknięciem części znajdujących się pod napięciem.


