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"