
Spis treści
Cześć!
Konfiguracja monitoringu zużycia energii elektrycznej to kluczowy element w budowie inteligentnego domu. Jakiś czas temu opisałem, jak zintegrować jednofazowy licznik energii Eastron z systemem automatyki domowej, a jeśli jeszcze tego nie widziałeś, zachęcam do przeczytania tamtego artykułu. Dziś idziemy o krok dalej i zajmiemy się konfiguracją modułu PZEM004T v3 z ESPHome. W tym artykule pokażę krok po kroku, jak połączyć go z Home Assistant, abyś mógł precyzyjnie monitorować zużycie energii elektrycznej w swoim domu.
Zaczynajmy! 🚀
Czym jest ESP8266 NodeMCU?
ESP8266 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 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ę systemu przy użyciu ESP i ESPHome, warto odpowiednio się przygotować. Poniżej znajdziesz kluczowe kroki, aby rozpocząć projekt.
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.
- PZEM004T v3 – jednofazowy miernik energii elektrycznej (Link do sklepu),
- Źródło zasilania dla płytki ESP (5V DC),
- Kostki elektryczne,
- (opcjonalnie) Puszka, w której schowamy płytkę ESP wraz z modułem konwertera,
- 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.
BHP pracy przy napięciu elektrycznym
Bezpieczeństwo elektryczne jest kluczowe podczas pracy z prądem. Oto kilka istotnych zaleceń:
- Wyłączanie Zasilania: Przed każdą pracą na obwodzie wyłącz zasilanie w celu uniknięcia porażenia prądem.
- Odpowiednie Narzędzia: Używaj narzędzi izolowanych i przeznaczonych do prac elektrycznych – powinny spełniać odpowiednie normy bezpieczeństwa.
- Doświadczenie: Prace przy instalacjach elektrycznych wymagają doświadczenia. Jeśli nie masz pewności co do swoich umiejętności, warto skorzystać z pomocy osoby doświadczonej.
- Ochrona oczu i rąk: Zawsze noś ochronę oczu i rąk, szczególnie podczas lutowania i manipulacji przyłączami, aby uniknąć obrażeń i kontaktu z gorącymi powierzchniami.
- Sprawdź zasilanie: Przed rozpoczęciem jakichkolwiek działań, zlokalizuj główne źródło zasilania i upewnij się, że zostało ono wyłączone, aby uniknąć porażenia prądem.
- Znajomość Układu Elektrycznego: Zawsze sprawdzaj, czy wiesz, jak działa dany układ elektryczny. Nie podejmuj działań na ślepo.
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 uruchomisz dodatek ESPHome na serwerze Home Assistant, możesz przejść do dodania swojego 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,
- Z panelu bocznego przechodzimy do zakładki ESPHome,
- Następnie klikamy 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.
- 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.
- 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 – Zamontuj miernik w miejscu pomiaru energii elektrycznej
Podłączenie miernika energii PZEM004T v3 do instalacji elektrycznej wymaga dokładności oraz przestrzegania odpowiednich procedur bezpieczeństwa.
Rodzaje modułów
Przy montażu modułu warto zwrócić uwagę na dwa rodzaje dostępnych modeli: obsługujące prądy do 10A i do 100A. Różnica między nimi polega głównie na sposobie podłączenia przekładnika prądowego (CT).
Wersja 10A: Moduł zawiera wbudowany czujnik prądowy, który bezpośrednio mierzy prąd przepływający przez obwód. Jest to rozwiązanie prostsze do instalacji, ale ograniczone do obwodów, które nie przekraczają 10A.
Wersja 100A: Ta wersja korzysta z zewnętrznego przekładnika prądowego (CT), który jest bardziej elastyczny w instalacji. Przekładnik ten należy zamontować na przewodzie fazowym, a jego zaletą jest to, że można go łatwo założyć na istniejący przewód bez konieczności rozłączania instalacji. Jest to idealne rozwiązanie do monitorowania większych obwodów o prądach do 100A.
Opisywany sposób instalacji będzie opierał się na wersji 100A z wykorzystaniem przekładnika prądowego.
Przygotowanie
- Wybór lokalizacji: Moduł PZEM004T v3 nie posiada wyświetlacza, dlatego nie musisz go instalować w miejscu łatwo dostępnym do odczytu danych. Możesz zamontować go w dowolnym bezpiecznym miejscu w pobliżu obwodu, który chcesz monitorować. Ważne jest jednak, aby miejsce montażu było suche, dobrze wentylowane i zgodne z lokalnymi przepisami dotyczącymi instalacji elektrycznych.
- Przygotowanie instalacji: Wyłącz zasilanie w obwodzie elektrycznym, w którym będziesz montował miernik. Zawsze upewnij się, że pracujesz w warunkach bez napięcia, aby uniknąć ryzyka porażenia prądem. Sprawdź, czy przewody są suche i wolne od uszkodzeń.
- Montaż modułu: Zamontuj PZEM004T v3 w wybranym miejscu za wybranych przez siebie elementów mocujących. Upewnij się, że moduł jest stabilnie zamocowany, aby uniknąć przypadkowego uszkodzenia podczas użytkowania.
Czynności
- Podłączenie przewodów elektrycznych:
- Przekładnik prądowy (CT): Przekładnik prądowy (split-core) należy zamontować na przewodzie fazowym obwodu, który chcesz monitorować. Ważne jest, aby przekładnik był zamontowany w taki sposób, aby strzałka na obudowie przekładnika wskazywała kierunek przepływu prądu (od strony źródła energii do obciążenia). Przekładnik prądowy nie przenosi fizycznie prądu przez siebie, ale wykrywa pole magnetyczne generowane przez przepływ prądu i w ten sposób dokonuje pomiaru.
- Przewód fazowy (L): Przewód fazowy w module nie przenosi pełnego obciążenia prądu, a jedynie służy do pomiaru napięcia w obwodzie. Należy go podłączyć do odpowiedniego zacisku na module zgodnie z oznaczeniami, aby miernik mógł monitorować napięcie w obwodzie.
- Przewód neutralny (N): Przewód neutralny również służy do pomiaru napięcia i należy go podłączyć do odpowiedniego zacisku w module PZEM004T. Neutralny nie przechodzi przez przekładnik prądowy, ale musi być podłączony, aby system mógł poprawnie dokonywać pomiarów.
- Sprawdzenie połączeń: Upewnij się, że wszystkie przewody są solidnie zamocowane, a połączenia są dobrze izolowane. Luźne połączenia mogą prowadzić do nieprawidłowych odczytów lub stanowić zagrożenie dla bezpieczeństwa.
- Włączenie zasilania: Po zakończeniu podłączania, włącz zasilanie obwodu i sprawdź, czy moduł działa poprawnie. PZEM004T v3 komunikuje się poprzez UART, więc weryfikacja poprawnego działania nastąpi poprzez odczyty w ESPHome lub Home Assistant.
- Testowanie: Sprawdź, czy wszystkie parametry są prawidłowo raportowane przez moduł w systemie monitorującym. Możesz przeprowadzić testy obciążeniowe, aby upewnić się, że miernik dokładnie monitoruje zużycie energii.
Zalecenia
- Stosowanie tulejek na przewody linkowe: Tulejki zaciskowe należy stosować na końcówkach przewodów linkowych, aby zapobiec rozwarstwianiu się żył podczas montażu w zaciskach. Dzięki tulejkom połączenie staje się trwalsze, poprawia się kontakt elektryczny, a przewody są chronione przed uszkodzeniami mechanicznymi, które mogą wystąpić podczas dokręcania zacisków.
Krok 4 – Podłącz moduł do płytki
- Podłącz pin 5V na PZEM-004T do pinu 5V na płytce.
- Podłącz pin GND na PZEM-004T do pinu GND na płytce.
- Podłącz pin RX na PZEM-004T do pinu RX na płytce ESP8266 (lub innego pinu, zgodnie z konfiguracją).
- Podłącz pin TX na PZEM-004T do pinu RX na płytce ESP8266 (lub innego pinu zgodnie z konfiguracją).
Sprawdzenie połączeń:
- Upewnij się, że wszystkie przewody są solidnie podłączone i prawidłowo zidentyfikowane (5V, GND, RX, TX).
- Sprawdź, czy przewody do komunikacji (RX, TX) nie są zamienione, ponieważ prawidłowe podłączenie jest kluczowe dla komunikacji UART.
- Sprawdź, czy styki płytek nie dotykają metalowych (ewentualnych) części obudowy lub innych przewodów, które mogłyby uszkodzić Twoją elektronikę.
- Podłącz instalację do zasilania.
- Poczekaj, aż płytka podłączy się do Twojej sieci Wi-Fi.
Krok 5 – Wgraj kod do ESPHome
W tej sekcji wgramy teraz dodamy odpowiednie wpisy dotyczące konfiguracji połączenia z modułem pomiaru energii elektrycznej. Skopiuj niezbędne elementy kodu do swojej instalacji.
esphome:
name: esp06-pzemac
comment: "I like pancakes"
area: "Roof"
# on_boot:
# then:
# - pzemac.reset_energy: pzemac_wardrobe
esp8266:
board: esp01_1m
# Enable logging
logger:
baud_rate: 0
web_server:
port: 80
# Enable Home Assistant API
api:
encryption:
key: "HERE WILL BE THE CODE GENERATED BY ESPHOME"
ota:
- platform: esphome
password: "HERE WILL APPEAR THE PASSWORD GENERATED BY ESPHOME"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp06-Roof Fallback Hotspot"
password: "123456789"
captive_portal:
uart:
tx_pin: RX
rx_pin: TX
baud_rate: 9600
stop_bits: 1
modbus:
button:
- platform: restart
name: "Restart device"
sensor:
- platform: pzemac
address: 1
current:
name: "Current"
id: "pzem_current"
unit_of_measurement: "A"
voltage:
name: "Voltage"
id: "pzem_voltage"
unit_of_measurement: "V"
energy:
name: "Energy"
id: "pzem_energy"
unit_of_measurement: "kWh"
accuracy_decimals: 2
filters:
- lambda: return x / 1000.0;
power:
name: "Power"
id: "pzem_power"
unit_of_measurement: "W"
frequency:
name: "Frequency"
id: "pzem_frequency"
unit_of_measurement: "Hz"
power_factor:
name: "Power Factor"
id: "pzem_power_factor"
unit_of_measurement: "%"
update_interval: 10s
id: "pzemac_roof"
- platform: wifi_signal
name: "Wi-Fi Signal"
update_interval: 60s
binary_sensor:
- platform: status
name: "Connection status"
- 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 6 – 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 7 – 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.
- 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 sprawdzić parametry, które są mierzone przez moduł pomiaru energii elektrycznej. 🚀
- W zależności od ustawionego czasu raportowania – poczekaj chwilę, aż moduł zainstalowany przy płytce ESP wykryje wartości zmierzone przez miernik. Podgląd surowych danych możesz podejrzeć z poziomu logów w ESPHome.
Powodzenia!
Jeśli masz dodatkowe pytania dotyczące konfiguracji, śmiało zostaw komentarz pod tym artykułem lub skontaktuj się ze mną bezpośrednio. Chętnie odpowiem na wszelkie wątpliwości i pomogę rozwiązać ewentualne problemy. Twoje pytania mogą pomóc w ulepszeniu tego poradnika dla innych użytkowników.
Dodatkowe materiały i informacje
Reset licznika energii elektrycznej
Jeśli chcesz zresetować licznik zużytej energii (kWh) i usunąć zapisane dane, możesz skorzystać z funkcji resetowania dostępnej w ESPHome. W kodzie możesz dodać sekcję on_boot
, która automatycznie zresetuje licznik po każdym uruchomieniu urządzenia. Taki zapis wygląda tak:
on_boot:
then:
- pzemac.reset_energy: pzemac_roof
Dzięki temu licznik energii zostanie wyzerowany, co pozwala na rozpoczęcie nowych pomiarów od zera, na przykład po zakończeniu danego okresu rozliczeniowego lub po zakończeniu testów. Jest to przydatne, gdy chcesz zacząć śledzić zużycie energii od nowa, bez konieczności ręcznego resetowania.
Jeśli potrzebujesz jednorazowego wyzerowania wartości kWh, możesz tymczasowo dodać tę sekcję do swojego kodu, uruchomić urządzenie, a następnie usunąć lub „zakomentować” (#) kod, aby zapamiętywać nowe wartości w przyszłości.
Przydatne linki
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.
- Getting Started with ESPHome and Home Assistant. https://esphome.io/guides/getting_started_hassio
- Peacefair PZEM-004T v3 Energy monitor. https://esphome.io/components/sensor/pzemac.html

Prosty przewodnik instalacji i konfiguracji odbiornika OGN na Raspberry Pi dla monitorowania ruchu lotniczego. Obserwuj ruch lotniczy.

Odkryj prostą instrukcję zmiany numeru seryjnego dongla RTL-SDR na systemie Linux. Krok po kroku przewodnik przez proces modyfikacji.

Odkryj iperf3 – narzędzie do testowania sieci na Raspberry Pi. Zbadaj, jak mierzy wydajność sieci TCP/UDP w prosty sposób.

Stwórz prostą stację pogodową na balkon z ESPHome i Home Assistant. Dzięki temu poradnikowi zbudujesz system z czujnikiem BME280.

Telestar Digibit Twin: Odkryj w dzisiejszym wpisie na blogu krok po kroku konfigurację dekodera SAT>IP z TVHeadend w Docker Compose.

Zdalny odczyt licznika wody Apator w Home Assistant z wykorzystaniem ESPHome i dodatku wmbusmeters. Prosta instalacja i konfiguracja.
Komentarze (3)
JYsays:
21/01/2025 at 16:48Czy w przypadku gdy chcę podłączyć trzy takie pzem, modyfikacja kodu polegałaby na dodaniu w liście sensor kodu od linni 53 z takim samym wcięciem?
Łukaszsays:
18/11/2024 at 11:42Hej,
A czy to urządzenie potrafi odczytać kilka faz? Potrzebuję urządzenie, które odczyta jednocześnie 3 fazy.
Filip Chochółsays:
18/11/2024 at 16:59Hej,
W przypadku pomiaru energii na trzech fazach – poszedłbym w coś stabilnego i gotowego np. Shelly. Ja u siebie mam Shelly Pro 3EM i nie dostrzegam żadnych problemów w działaniu.
Można wyrzeźbić na trzech PZEM004T, ale to jak się chce komuś 😉