Świetne i co najważniejsze, tanie narzędzie do budowy własnych urządzeń IoT. Bez problemu zbudujemy własny multisensor, czyli urządzenie z wieloma czujnikami-komponentami. Co najważniejsze bez problemu dodamy go do naszego Home Assistant. ESPHome wymaga od nas trochę wiedzy z elektroniki, sprawności manualnej a przede wszystkim chęci. Jak to mówią, dla chcącego nic trudnego. Za moment dowiesz się jak zainstalować dodatek ESPHome oraz zaprogramować Twój własny czujnik.
Do zabawy w elektronika i programistę będziemy potrzebować jedną z płytek ESP. Mogą to być płytki: Wemos D1 Mini, ESP8266, ESP32. Wszystko zależy od potrzeb, ale na sam początek wystarczy, że zaopatrzysz się w najmniejszą płytkę Wemos D1 Mini.
ESPHome instalacja dodatku.
W pierwszej kolejności musimy zainstalować sam dodatek ESPHome. Dodatek dostępny jest w Ustawienia – Dodatki.
Następnie przechodzimy do Sklepu z dodatkami.
Kolejnym krokiem jest wyszukanie ESPHome na liście dodatków.
Teraz pozostało zainstalować dodatek. Kliknij Zainstaluj.
Po instalacji czas na uruchomienie ESPHome. Kliknij Uruchom, opcjonalnie dla wygody można zaznaczyć opcję „Pokaż na pasku bocznym„(2).
Tworzenie kodu.
Gdy dodatek już wystartuje, możemy przejść do dodania naszego pierwszego urządzenia opartego na ESPHome. W tym kroku warto już podłączyć płytkę opartą na ESP. W moim przypadku będzie to Wemos D1 Mini. Podłączamy płytkę za pomocą przewodu USB do naszego serwera z zainstalowanym Home Assistant. Ważne aby przewód USB miał transmisje danych, często bywa tak (w tych tanich kablach) że dany przewód posiada tylko obsadę zasilania. Do prawidłowego działania zaleca się korzystanie z przeglądarki Chrome lub Edge. Przechodzimy do naszego ESPHome wybierając go z panelu bocznego w naszym Home Assistant. Klikamy na New Device.
Ta metoda wgrywania zadziała Wam tylko w przypadku czystej instalacji Home Assistant. Jeśli macie HA postawiony w wirtualnej maszynie (Proxmox, Synolog Virtul Machine itd.) ta metoda może Wam nie zadziałać. Będziecie musieli wybrać inną opcję którą opiszę poniżej.
Po kliknięciu w New Device w okienku klikamy na Continue.
W kolejnym okienku podajemy nazwę naszego urządzenia (wymyśloną przez nas), oraz dane naszej sieci WiFi. Dane WiFi podajemy tylko za pierwszym razem, kolejne dodawane urządzenia oparte na ESP już tego kroku nie będą wymagały.
Następny krok to wybór naszej płytki. W moim przypadku z listy wybrałem Wemos D1 Mini, Wemos D1.
W następnym kroku klikamy na Skip.
Teraz przechodzimy do edycji naszego kodu. W tym celu kliknij na Edytuj.
Jeśli korzystasz tak z płytki Wemos D1 Mini to sprawa jest prosta, kopiujesz cały poniższy kod i wklejasz go do swojego ESP. Natomiast gdy używasz innej płytki skopiuj poniższy kod od linii (27) substitutions: w dół i wklej go poniżej istniejącego kodu Twojej płytki ESP. Po wklejeniu kodu zapisz swoją konfigurację.
esphome:
name: "espd1-mini-1"
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esphome-Web-Dde3C9"
password: !secret wifi_password
captive_portal:
substitutions:
device_name: "Wemos D1 mini" #Nazwa Twojego urządzenia wyświetlana w Home Assistant
# Pobieranie czasu z HA
time:
- platform: homeassistant
id: homeassistant_time
# Dioda LED Informacyjna o stanie połącznia.
status_led:
pin:
number: GPIO2 #PIN D4
inverted: yes # "yes" - Dioda mruga gdy nie można nawiązać połączenie.
# "no" - Dioda świeci gdy połączenie jest nawiązane.
# Przyscisk Restartu Urządzenia
switch:
- platform: restart
name: "${device_name} Reset"
binary_sensor:
# Status Urządzenia
- platform: status
name: "${device_name} Status"
sensor:
# Poziom Sygnału WiFi
- platform: wifi_signal
name: "${device_name} WiFi Sygnał"
update_interval: 160s
# Czas Pracy Urządzenia
- platform: uptime
name: "${device_name} Czas Pracy"
update_interval: 300s
device_class: "timestamp"
entity_category: "diagnostic"
unit_of_measurement: ""
filters:
- lambda: |-
auto time = id(homeassistant_time).now();
if (time.is_valid()) {
return time.timestamp - x;
} else {
return {};
}
text_sensor:
- platform: wifi_info
ip_address:
name: "${device_name} IP Adres"
ssid:
name: "${device_name} Połączony z siecią"
mac_address:
name: "${device_name} Mac Adres WiFi"

Wgrywanie kodu do płytki.
Przechodzimy do wgrywania stworzonego przez nas oprogramowania. W tym celu kliknij na trzy kropeczki i przejdź do Install.
Tym razem musimy wybrać metodę wgrywania oprogramowania do naszego ESP. Pokazuje tu najprostszą metodę, która nie wymaga od Was instalacji nawet sterowników. Ale wymaga czystej instalacji na naszym serwerze Home Assistant. W innym przypadku wymierz metodę (2) Plug in this computer, ta metoda może od Was wymagać instalacji sterowników. Kreator wgrywania poprowadzi Was krok po kroku.
Jak już mamy podpiętą płytkę pod serwer HA może rozpocząć wgrywanie naszego programu. Kliknij na (1) Plug into the computer running ESPHome Dashboard.
Wybieramy port USB pod który jest podpięta płytka ESP.
Wgrywanie oprogramowanie powinno się rozpocząć, jeśli wszystko poszło zgodnie z planem.
Czekamy aż oprogramowanie się skompiluje i wgra. Jeśli wszystko się wgra prawidłowo, zobaczycie coś mniej więcej jak na screenie poniżej. Klikamy Stop, i przechodzimy do powiadomień (2).
Powinna się pojawić informacja że nasz Home Assistant wykrył nowe urządzenie. Sprawdzamy to (1).
Zatwierdzamy nowe urządzenie.
Oraz możemy dodać obszar gdzie będzie znajdować się dane urządzenie.

Gratuluję! Jeśli doszedłeś do tego etapu to znak że Ci się udało. Jest podstawowa konfiguracja oraz kod który możesz wykorzystać w każdym Twoim projekcie. Są to podstawowe dane diagnostyczne.
Należy też pamiętać że już od teraz nie musisz wgrywać oprogramowania przez przewód USB, wystarczy że urządzenie jest podłączone do Twojej sieci WiFi.

W niedalekiej przyszłości pojawi się kilka ciekawych projektów z wykorzystaniem ESPHome.















banga
Czy jest gdzieś opisany drugi sposób?
Drugi sposób różni się tylko tym ze podłączasz płytkę ESP do laptopa czy komputera gdzie masz odpalonego w przeglądarce home assistant. Co prawda wymaga to zainstalowania sterowników ale komunikat o braku sterowników pojawia się i prowadzi intuicyjnie krok po kroku
Niestety dostaje taki komunikat:
Connecting………………………………..
ERROR Running command failed: Failed to connect to ESP8266: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
ERROR Please try running esptool.py –before default_reset –after hard_reset –baud 460800 –port /dev/ttyACM0 –chip esp8266 write_flash -z –flash_size detect 0x0 /data/build/test02/.pioenvs/test02/firmware.bin locally.
INFO Upload with baud rate 460800 failed. Trying again with baud rate 115200.
esptool.py v4.6.2
Serial port /dev/ttyACM0
Connecting………………………………..
ERROR Running command failed: Failed to connect to ESP8266: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
ERROR Please try running esptool.py –before default_reset –after hard_reset –baud 115200 –port /dev/ttyACM0 –chip esp8266 write_flash -z –flash_size detect 0x0 /data/build/test02/.pioenvs/test02/firmware.bin locally.
jakiej płytki ESP używasz? zdefiniowana widzę 8266 ale konkretny model (NodeMCU, WemosD1mni, ESP32) bo tego na rynku jest dużo . Jaką metodą to robisz? bezpośrednio podłączasz do serwera HA czy przez przeglądarkę i laptopa? Zakładam że kabel USB jest również sprawdzony i ma transmisję danych?.
Mam identyczny problem, poradziłeś sobie? Identyczny komunikat