Licznik energii Eastron SDM72-D można zintegrować z Home Assistant używając ESP z Espresiff i ESPHome.

Oprócz samego ESP potrzebny jeszcze będzie moduł RS-485 (Modbus) -> UART, przykładowo WaveShark 3485 pracujący na napięciu 3.3V prawidłowo działający z ESP i kilka kabelków.

Łączymy licznik z modułem a moduł z ESP jak poniżej:

Następnie musimy dodać w ESP sekcję UART, modbus i modbus-controller:

# Ustawienia portu szeregowego
uart:
  id: mod_bus
  rx_pin: D5
  tx_pin: D6
  baud_rate: 9600
  stop_bits: 1

# Ustanowienie komunikacji modbus na wskazanym porcie szeregowym
# oraz dodanie PINu który steruje kierunkiem pracy magistrali modbus
modbus:
  uart_id: mod_bus
  flow_control_pin: D7
  id: modbus1

# Na wcześniej skonfigurowanym połączeniu modbus tworzymy kontroler
# oraz podajemy adres urządzenia z którym będzie odbywać się komunikacja
# dane będziemy pobierać co sekundę
modbus_controller:
  - id: modbus_control1
    ## the Modbus device addr
    address: 0x1
    modbus_id: modbus1
    setup_priority: -10
    update_interval: 1s

Teraz pozostaje sprawa ustawienia sensora w ESP który będzie prezentował dane zebrane z licznika przez modbus

sensor:
  - platform: modbus_controller
    # Wskazujemy kontroler modbus pod którym dostępny jest nasz licznik
    modbus_controller_id: modbus_control1
    name: "Napięcie L1 (V)"
    register_type: read
    address: 0x0000
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "V"
    device_class: "voltage"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Napięcie L2 (V)"
    register_type: read
    address: 0x0002
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "V"
    device_class: "voltage"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Napięcie L3 (V)"
    register_type: read
    address: 0x0004
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "V"
    device_class: "voltage"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Prąd L1 (A)"
    register_type: read
    address: 0x0006
    value_type: FP32
    accuracy_decimals: 3
    unit_of_measurement: "A"
    device_class: "current"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Prąd L2 (A)"
    register_type: read
    address: 0x0008
    value_type: FP32
    accuracy_decimals: 3
    unit_of_measurement: "A"
    device_class: "current"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Prąd L3 (A)"
    register_type: read
    address: 0x000A
    value_type: FP32
    accuracy_decimals: 3
    unit_of_measurement: "A"
    device_class: "current"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc L1 (W)"
    register_type: read
    address: 0x000C
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "W"
    device_class: "power"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc L2 (W)"
    register_type: read
    address: 0x000E
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "W"
    device_class: "power"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc L3 (W)"
    register_type: read
    address: 0x0010
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "W"
    device_class: "power"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc pozorna L1 (VA)"
    register_type: read
    address: 0x0012
    value_type: FP32
    accuracy_decimals: 1
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc pozorna L2 (VA)"
    register_type: read
    address: 0x0014
    value_type: FP32
    accuracy_decimals: 1
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc pozorna L3 (VA)"
    register_type: read
    address: 0x0016
    value_type: FP32
    accuracy_decimals: 1
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc reaktywna L1 (VAr)"
    register_type: read
    address: 0x0018
    value_type: FP32
    accuracy_decimals: 1
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc reaktywna L2 (VAr)"
    register_type: read
    address: 0x001A
    value_type: FP32
    accuracy_decimals: 1
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc reaktywna L3 (VAr)"
    register_type: read
    address: 0x001C
    value_type: FP32
    accuracy_decimals: 1
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "PF L1"
    register_type: read
    address: 0x001E
    value_type: FP32
    accuracy_decimals: 3
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "PF L2"
    register_type: read
    address: 0x0020
    value_type: FP32
    accuracy_decimals: 3
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "PF L3"
    register_type: read
    address: 0x0022
    value_type: FP32
    accuracy_decimals: 3
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Średnie napięcie (V)"
    register_type: read
    address: 0x002A
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "V"
    device_class: "voltage"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Średni prąd (I)"
    register_type: read
    address: 0x002E
    value_type: FP32
    accuracy_decimals: 3
    unit_of_measurement: "A"
    device_class: "current"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Łączny prąd (I)"
    register_type: read
    address: 0x0030
    value_type: FP32
    accuracy_decimals: 3
    unit_of_measurement: "A"
    device_class: "current"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Łączna moc (W)"
    register_type: read
    address: 0x0034
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "W"
    device_class: "power"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Łączna moc pozorna (VA)"
    register_type: read
    address: 0x0038
    value_type: FP32
    accuracy_decimals: 1
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Łączna moc bierna (VAr)"
    register_type: read
    address: 0x003C
    value_type: FP32
    accuracy_decimals: 1
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "PF"
    register_type: read
    address: 0x003E
    value_type: FP32
    accuracy_decimals: 3
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Częstotliwość (Hz)"
    register_type: read
    address: 0x0046
    value_type: FP32
    accuracy_decimals: 2
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Energia pobrana (kWh)"
    register_type: read
    address: 0x0048
    value_type: FP32
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: "kWh"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Energia wysłana (kWh)"
    register_type: read
    address: 0x004A
    value_type: FP32
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: "kWh"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Napięcie L1 -> L2 (V)"
    register_type: read
    address: 0x00C8
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "V"
    device_class: "voltage"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Napięcie L2 -> L3 (V)"
    register_type: read
    address: 0x00CA
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "V"
    device_class: "voltage"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Napięcie L3 -> L1 (V)"
    register_type: read
    address: 0x00CC
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "V"
    device_class: "voltage"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Średnie napięcie międzyfazowe (V)"
    register_type: read
    address: 0x00CE
    value_type: FP32
    accuracy_decimals: 1
    unit_of_measurement: "V"
    device_class: "voltage"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Prąd żyły neutralnej (I)"
    register_type: read
    address: 0x00E0
    value_type: FP32
    accuracy_decimals: 2
    unit_of_measurement: "A"
    device_class: "current"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Łączna energia czynna (kWh)"
    register_type: read
    address: 0x0156
    value_type: FP32
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: "kWh"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Łączna energia reaktywna (kVArh)"
    register_type: read
    address: 0x0158
    value_type: FP32
    accuracy_decimals: 2
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Zbilansowana energia (kWh)"
    register_type: read
    address: 0x018C
    value_type: FP32
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: "kWh"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc importowana (W)"
    register_type: read
    address: 0x0500
    value_type: FP32
    accuracy_decimals: 1
    device_class: power
    unit_of_measurement: "W"
  - platform: modbus_controller
    modbus_controller_id: modbus_control1
    name: "Moc exportowana (W)"
    register_type: read
    address: 0x0502
    value_type: FP32
    accuracy_decimals: 1
    device_class: power
    unit_of_measurement: "W"