Tani licznik energii z Modbus do Home Assistant – EA777 (EARU)

Admin/ 8 lutego, 2026/ HA/ 1Komentarze

Po co używać licznika energii w Home Assistant?

Home Assistant daje ogromne możliwości automatyzacji, ale bez dokładnych danych o zużyciu energii wiele scenariuszy po prostu nie ma sensu. Odczyty z falownika czy „inteligentnych gniazdek” są często zbyt ogólne albo niedokładne.

Dedykowany licznik energii pozwala opomiarować konkretne urządzenia lub całe obwody, takie jak:

  • pompa ciepła,
  • klimatyzacja,
  • bojler lub grzałka,
  • płyta indukcyjna,
  • ładowarka samochodu elektrycznego,
  • cały dom lub wybrane fazy.

Dzięki temu:

  • widzisz realne zużycie energii w czasie rzeczywistym,
  • możesz analizować koszty działania konkretnych urządzeń,
  • budujesz automatyzacje reagujące na faktyczny pobór mocy,
  • dane trafiają bezpośrednio do Energy Dashboard w Home Assistant.

Licznik energii z komunikacją Modbus RTU to dodatkowo pełna niezależność od chmury, stabilność działania i możliwość integracji dokładnie tak, jak tego potrzebujesz.

EA777 to tani licznik energii elektrycznej z interfejsem Modbus RTU (RS485). Nie jest to urządzenie „smart” z aplikacją w chmurze, tylko klasyczny licznik przemysłowy — dokładnie to, czego potrzebujemy w Home Assistant.

Najważniejsze cechy:

  • komunikacja RS485 / Modbus RTU
  • pomiar:
    • napięcia
    • prądu
    • mocy chwilowej
    • energii (import / eksport)
  • montaż na szynę DIN
  • bardzo dobra relacja cena → możliwości

To idealny kandydat:

  • jako licznik główny domu,
  • do pomiaru konkretnego obwodu (np. grzałka, falownik),
  • do automatyzacji opartych o rzeczywiste zużycie.

Zalety EA777

1. Cena
EA777 kosztuje ułamek ceny markowych liczników typu DDSU czy SDM, a funkcjonalnie robi dokładnie to, czego potrzeba.

2. Modbus RTU (RS485)
Stabilna, przewidywalna komunikacja bez:

  • chmury,
  • aplikacji producenta,
  • kont użytkownika.

3. Działa lokalnie
Home Assistant, ESPHome, brak internetu — wszystko działa nawet gdy sieć padnie.

4. Szybkie odczyty
Dane są dostępne praktycznie w czasie rzeczywistym, co jest kluczowe dla automatyzacji.


Dlaczego Modbus to nadal świetny wybór?

Modbus RTU to jeden z najstarszych, ale też najbardziej niezawodnych protokołów przemysłowych.

Dlaczego jest „fajny”:

  • 📡 brak opóźnień i chmury
  • 🔒 pełna kontrola nad danymi
  • 🔧 łatwa integracja (HA, ESPHome, PLC)
  • ⚙️ przewidywalne rejestry (liczby, nie „magia API”)

W przeciwieństwie do Wi-Fi liczników:

  • nic się samo nie aktualizuje i nie psuje,
  • urządzenie będzie działać tak samo za 5–10 lat.

Integracja EA777 z ESPHome

Do komunikacji wystarczy:

  • ESP32 lub ESP8266,
  • konwerter RS485 → UART (np. MAX485).

Przykładowa konfiguracja ESPHome

esphome:
  name: ${name}
  friendly_name: Energy Meter EA777 (ModBus RTU)
  min_version: 2025.5.0
  name_add_mac_suffix: false

# ESP32 Board
esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Home Assistant API
api:

# Over-The-Air updates
ota:
- platform: esphome

# Wi-Fi settings with secrets
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Optional manual IP
  # manual_ip:
  #   static_ip: 192.168.0.100
  #   gateway: 192.168.0.1
  #   subnet: 255.255.255.0

# UART Bus for the MAX485 transceiver
uart:
  id: uart_modbus_server
  baud_rate: 9600  # Adjust Baudrate
  tx_pin: 19       # Adjust TX PIN
  rx_pin: 18       # Adjust RX PIN
  stop_bits: 1     # Adjust Stop bits
  parity: EVEN     # Adjust Parity

modbus:
  uart_id: uart_modbus_server
  id: modbus_server
  flow_control_pin: 4
  send_wait_time: 1000ms

modbus_controller:
  - id: earu_ea777
    address: 0x1              # Adjust device address
    modbus_id: modbus_server
    setup_priority: -10
    update_interval: 10s

sensor:
  # Voltage section, Phase A, B, C as per the EA777 markings, Can also be named L1, L2, L3
  # In Volts, precision 0.1V
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_a_voltage
    name: "Phase A voltage"
    address: 0x00
    register_type: read
    accuracy_decimals: 1
    value_type: U_WORD
    unit_of_measurement: "V"
    filters: 
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_b_voltage
    name: "Phase B voltage"
    address: 0x01
    register_type: read
    accuracy_decimals: 1
    value_type: U_WORD
    unit_of_measurement: "V"
    filters: 
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_c_voltage
    name: "Phase C voltage"
    address: 0x02
    register_type: read
    accuracy_decimals: 1
    value_type: U_WORD
    unit_of_measurement: "V"
    filters: 
      - multiply: 0.1

  # Current section in Amperes, precision 0.1A
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_a_current
    name: "Phase A current"
    address: 0x03
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "A"
    filters: 
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_b_current
    name: "Phase B current"
    address: 0x04
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "A"
    filters: 
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_c_current
    name: "Phase C current"
    address: 0x05
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "A"
    filters: 
      - multiply: 0.01

  # Active power in Watts: Total, Phases A, B, C
  # Precision 1W
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: active_power
    name: "Active power"
    address: 0x07
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "W"

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_a_active_power
    name: "Phase A active power"
    address: 0x08
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "W"

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_b_active_power
    name: "Phase B active power"
    address: 0x09
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "W"

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_c_active_power
    name: "Phase C active power"
    address: 0x0A
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "W"

  # Active power in Watts: Total, Phases A, B, C
  # Precision 1W
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: reactive_power
    name: "Reactive power"
    address: 0x0B
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "W"

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_a_reactive_power
    name: "Phase A reactive power"
    address: 0x0C
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "W"

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_b_reactive_power
    name: "Phase B reactive power"
    address: 0x0D
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "W"

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_c_reactive_power
    name: "Phase C reactive power"
    address: 0x0E
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "W"

  # Power factor, cos phi
  # Range 0-1.000, precision 0.001
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_a_power_factor
    name: "Phase A power factor"
    address: 0x14
    register_type: read
    accuracy_decimals: 3
    value_type: U_WORD
    unit_of_measurement: "cos φ"
    filters: 
      - multiply: 0.001

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_b_power_factor
    name: "Phase B power factor"
    address: 0x15
    register_type: read
    accuracy_decimals: 3
    value_type: U_WORD
    unit_of_measurement: "cos φ"
    filters: 
      - multiply: 0.001

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: phase_c_power_factor
    name: "Phase C power factor"
    address: 0x16
    register_type: read
    accuracy_decimals: 3
    value_type: U_WORD
    unit_of_measurement: "cos φ"
    filters: 
      - multiply: 0.001

  # Frequency, Hertz, precision 0.01Hz
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: current_voltage_frequency
    name: "Current voltage frequency"
    address: 0x1A
    register_type: read
    accuracy_decimals: 2
    value_type: U_WORD
    unit_of_measurement: "Hz"
    filters: 
      - multiply: 0.01

  # Settings
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: instrument_communication_address
    name: "Instrument communication address"
    address: 0x61
    register_type: read
    value_type: U_WORD
  
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: communication_baud_rate
    name: "Communication baud rate"
    address: 0x62
    register_type: read
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: communication_data_format
    name: "Communication data format"
    address: 0x63
    register_type: read
    value_type: U_WORD

  # Energy
  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: current_total_active_energy
    name: "Current total active energy"
    address: 0x001D
    register_type: read
    register_count: 2
    accuracy_decimals: 2
    value_type: U_DWORD
    unit_of_measurement: "kWh"
    filters: 
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: current_positive_total_active_energy
    name: "Current positive total active energy"
    address: 0x0027
    register_type: read
    register_count: 2
    accuracy_decimals: 2
    value_type: U_DWORD
    unit_of_measurement: "kWh"
    filters: 
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: current_reverse_total_active_energy
    name: "Current reverse total active energy"
    address: 0x0031
    register_type: read
    register_count: 2
    accuracy_decimals: 2
    value_type: U_DWORD
    unit_of_measurement: "kWh"
    filters: 
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: current_total_reactive_energy
    name: "Current total reactive energy"
    address: 0x003B
    register_type: read
    register_count: 2
    accuracy_decimals: 2
    value_type: U_DWORD
    unit_of_measurement: "kVArh"
    filters: 
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: current_positive_total_reactive_energy
    name: "Current positive total reactive energy"
    address: 0x0045
    register_type: read
    register_count: 2
    accuracy_decimals: 2
    value_type: U_DWORD
    unit_of_measurement: "kVArh"
    filters: 
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: earu_ea777
    id: current_reverse_total_reactive_energy
    name: "Current reverse total reactive energy"
    address: 0x004F
    register_type: read
    register_count: 2
    accuracy_decimals: 2
    value_type: U_DWORD
    unit_of_measurement: "kVArh"
    filters: 
      - multiply: 0.01

Podsumowanie

EA777 to bardzo dobry wybór, jeśli:

  • chcesz tani, ale solidny licznik energii,
  • zależy Ci na pracy lokalnej,
  • używasz Home Assistant i ESPHome,
  • cenisz prostotę i stabilność.

To kolejny przykład, że proste rozwiązania przemysłowe świetnie sprawdzają się w smart home.

Share this Post

1 Comment

  1. Witam
    Do jakiego prądu max można wykorzystać licznik?
    Bo nie ma on ctków

Leave a Comment

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

*
*