Modbus Must ESP Publicat de Florin pe ianuarie 26, 2026 ianuarie 26, 2026
esphome:
name: must
friendly_name: Must
comment: "Must inverter"
esp32:
board: az-delivery-devkit-v4
substitutions:
inverter_id: inverter
updates: 10s
# Enable Home Assistant API
#api:
# encryption:
# key: "j1sQbRW1BCRnNi+Z7o+CGBaNuHxAzM56gRCE0+tCbj0="
ota:
# Enable Home Assistant Mqtt
mqtt:
broker: !secret mqtt_host
username: !secret mqtt_username
password: !secret mqtt_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "ESP_MUST_iRQ"
password: "123654"
# Enable fallback hotspot (captive portal) in case wifi connection fails
web_server:
port: 80
auth:
username: admin
password: admin
button:
- platform: restart
name: WiFi Must Reboot
captive_portal:
logger:
level: DEBUG
# UART CONFIG
uart:
id: mod_bus
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 19200
stop_bits: 1
parity: NONE
data_bits: 8
modbus:
id: mod_bus_must
send_wait_time: 200ms
modbus_controller:
- id: must
address: 0x4
modbus_id: mod_bus_must
setup_priority: -10
update_interval: 60s
#text_sensor:
# - platform: wifi_info
# ip_address:
# name: ESP Must IP
# ssid:
# name: ESP Must SSID
sensor:
- platform: internal_temperature
name: "WiFi Intern Temp"
# - platform: wifi_signal
# name: "ESP Must Signal"
# update_interval: 60s
# - platform: uptime
# name: ESP Must Uptime
# charger sensors
- platform: modbus_controller
address: 15201
name: "PV Charger Workstate"
register_type: holding
- platform: modbus_controller
address: 15202
name: "PV Charger MPPT state"
register_type: holding
- platform: modbus_controller
address: 15203
name: "PV Charger Charging state"
register_type: holding
- platform: modbus_controller
address: 15205
name: "PV Charger Voltage"
register_type: holding
unit_of_measurement: "V"
device_class: voltage
accuracy_decimals: 1
icon: mdi:sine-wave
filters:
multiply: 0.1
- platform: modbus_controller
address: 15206
name: "PV Charger Battery voltage"
register_type: holding
unit_of_measurement: "V"
accuracy_decimals: 1
icon: mdi:sine-wave
filters:
multiply: 0.1
- platform: modbus_controller
address: 15207
name: "PV Charger Current"
register_type: holding
unit_of_measurement: "A"
device_class: current
accuracy_decimals: 1
icon: mdi:current-dc
filters:
multiply: 0.1
- platform: modbus_controller
address: 15208
register_type: holding
name: "PV Charger power"
unit_of_measurement: "W"
device_class: power
accuracy_decimals: 1
icon: mdi:flash
- platform: modbus_controller
address: 15209
register_type: holding
name: "Temp PV Charger Radiator"
unit_of_measurement: "°C"
device_class: temperature
accuracy_decimals: 1
icon: mdi:temperature-celsius
# - platform: modbus_controller
# modbus_controller_id: must_inverter
# address: 15210
# register_type: holding
# name: "PV Charger External temp"
# unit_of_measurement: "°C"
# accuracy_decimals: 1
# icon: mdi:temperature-celsius
- platform: modbus_controller
address: 15212
register_type: holding
name: "Relay PV"
icon: mdi:electric-switch
- platform: modbus_controller
address: 15217
register_type: holding
id: charger_total_mwh
internal: true
- platform: modbus_controller
address: 15218
register_type: holding
id: charger_total_kwh
internal: true
filters:
multiply: 0.1
- platform: template
name: "Accumulated PV chg power"
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
lambda: !lambda 'return (id(charger_total_mwh).state * 1000.0 + id(charger_total_kwh).state );'
accuracy_decimals: 1
# Accumulate power
- platform: modbus_controller
address: 25256
register_type: holding
name: "Accumulated self power"
unit_of_measurement: "W"
device_class: energy
accuracy_decimals: 1
icon: mdi:flash
# - platform: modbus_controller
# address: 15220
# register_type: holding
# name: "Accumulated PV chg hour"
# unit_of_measurement: "W"
# device_class: energy
# accuracy_decimals: 1
# icon: mdi:flash
#- platform: modbus_controller
# address: 15221
# register_type: holding
# name: "Accumulated PV chg minute"
# unit_of_measurement: "W"
# device_class: energy
# accuracy_decimals: 1
# icon: mdi:flash
# inverter sensors
- platform: modbus_controller
address: 25201
register_type: holding
name: "Inverter Work mode"
- platform: modbus_controller
address: 25205
name: "Battery Voltage"
register_type: holding
unit_of_measurement: "V"
device_class: voltage
accuracy_decimals: 1
icon: mdi:sine-wave
filters:
multiply: 0.1
- platform: modbus_controller
address: 25206
name: "Inverter out Voltage"
register_type: holding
unit_of_measurement: "V"
device_class: voltage
accuracy_decimals: 1
icon: mdi:sine-waveum
filters:
multiply: 0.1
- platform: modbus_controller
address: 25207
name: "Grid voltage"
register_type: holding
unit_of_measurement: "V"
device_class: voltage
accuracy_decimals: 1
icon: mdi:sine-wave
filters:
multiply: 0.1
- platform: modbus_controller
address: 25208
name: "Inverter bus Voltage"
register_type: holding
unit_of_measurement: "V"
device_class: voltage
accuracy_decimals: 1
icon: mdi:sine-wave
filters:
multiply: 0.1
- platform: modbus_controller
address: 25209
name: "Inverter Load current"
register_type: holding
unit_of_measurement: "A"
device_class: current
accuracy_decimals: 1
icon: mdi:current-dc
filters:
multiply: 0.1
#- platform: modbus_controller
# address: 25210
# name: "Inverter Current"
# register_type: holding
# unit_of_measurement: "A"
# device_class: current
# accuracy_decimals: 1
# icon: mdi:current-dc
# filters:
# multiply: 0.1
- platform: modbus_controller
address: 25211
name: "Grid current"
register_type: holding
unit_of_measurement: "A"
device_class: current
accuracy_decimals: 1
icon: mdi:current-ac
filters:
multiply: 0.1
- platform: modbus_controller
address: 25225
name: "Inverter Freq"
register_type: holding
unit_of_measurement: "Hz"
device_class: frequency
accuracy_decimals: 1
icon: mdi:current-ac
filters:
multiply: 0.01
- platform: modbus_controller
address: 25225
name: "Grid Freq"
register_type: holding
unit_of_measurement: "Hz"
device_class: frequency
accuracy_decimals: 1
icon: mdi:current-ac
filters:
multiply: 0.01
#- platform: modbus_controller
# address: 25212
# name: "Inverter control current"
# register_type: holding
# unit_of_measurement: "A"
# device_class: current
# accuracy_decimals: 1
# icon: mdi:current-ac
# filters:
# multiply: 0.1
#- platform: modbus_controller
# address: 25213
# name: "Inverter Power"
# register_type: holding
# unit_of_measurement: "W"
# accuracy_decimals: 1
# icon: mdi:flash
- platform: modbus_controller
address: 25214
name: "Grid power"
register_type: holding
unit_of_measurement: "W"
device_class: power
accuracy_decimals: 1
value_type: S_WORD
icon: mdi:flash
- platform: modbus_controller
address: 25215
name: "Inverter Load power"
register_type: holding
unit_of_measurement: "W"
device_class: power
accuracy_decimals: 1
icon: mdi:flash
- platform: modbus_controller
address: 25216
name: "Inverter System load"
register_type: holding
unit_of_measurement: "%"
accuracy_decimals: 1
icon: mdi:flash
# MOST INFO
- platform: modbus_controller
address: 25233
register_type: holding
name: "Temp AC Radiator"
accuracy_decimals: 1
unit_of_measurement: "°C"
device_class: temperature
icon: mdi:temperature-celsius
#- platform: modbus_controller
# address: 25234
# register_type: holding
# name: " Temp Transformer"
# unit_of_measurement: "°C"
# device_class: temperature
# accuracy_decimals: 1
# icon: mdi:temperature-celsius
- platform: modbus_controller
address: 25235
register_type: holding
name: "Temp DC Radiator"
unit_of_measurement: "°C"
device_class: temperature
accuracy_decimals: 1
icon: mdi:temperature-celsius
#- platform: modbus_controller
# address: 25237
# register_type: holding
# name: "Relay state inv"
# icon: mdi:electric-switch
#- platform: modbus_controller
# address: 25238
# register_type: holding
# name: "Relay state Grid"
# icon: mdi:electric-switch
#- platform: modbus_controller
# address: 25239
# register_type: holding
# name: "Relay state Load"
# icon: mdi:electric-switch
#- platform: modbus_controller
# address: 25240
# register_type: holding
# name: "Relay state NLine"
# icon: mdi:electric-switch
#- platform: modbus_controller
# address: 25241
# register_type: holding
# name: "Relay state DC"
# icon: mdi:electric-switch
#- platform: modbus_controller
# address: 25242
# register_type: holding
# name: "Relay state Earth"
# icon: mdi:electric-switch
# Inverter Accumulated discharge power
# address: 25247
# register_type: holding
# id: discharger_total_mwh
# internal: true
#
# - platform: modbus_controller
# address: 25248
# register_type: holding
# id: discharger_total_kwh
# internal: true
# filters:
# multiply: 0.1
# - platform: template
# name: "Accumulated discharger power"
# unit_of_measurement: kWh
# accuracy_decimals: 1
# lambda: !lambda 'return (id(discharger_total_mwh).state * 1000.0 + id(discharger_total_kwh).state);'
# Inverter Accumulated buy power
# - platform: modbus_controller
# address: 25249
# register_type: holding
# id: buy_mwh
# internal: true
# - platform: modbus_controller
# address: 25250
# register_type: holding
# id: buy_kwh
# internal: true
# filters:
# multiply: 0.1
# - platform: template
# name: "Accumulated buy power"
# unit_of_measurement: kWh
# device_class: energy
# icon: mdi:flash
# state_class: total_increasing
# lambda: |-
# return (id(buy_mwh).state * 1000.0 + id(buy_kwh).state);
# accuracy_decimals: 1
# Inverter Accumulated sell power
#- platform: modbus_controller
# address: 25251
# register_type: holding
# id: sell_mwh
#- platform: modbus_controller
# address: 25252
# register_type: holding
# id: sell_kwh
# filters:
# multiply: 0.1
#- platform: template
# name: "Accumulated sell power"
# unit_of_measurement: kWh
# accuracy_decimals: 1
# lambda: !lambda return (id(sell_mwh).state * 1000.0 + id(sell_kwh).state);
# Inverter Accumulated load power
- platform: modbus_controller
address: 25253
register_type: holding
id: load_mwh
internal: True
- platform: modbus_controller
address: 25254
register_type: holding
id: load_kwh
internal: True
filters:
multiply: 0.1
- platform: template
name: "Accumulated load power"
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
accuracy_decimals: 1
lambda: !lambda return (id(load_mwh).state * 1000.0 + id(load_kwh).state);
- platform: modbus_controller
address: 25273
register_type: holding
value_type: S_WORD
name: "Battery power"
unit_of_measurement: "W"
device_class: power
accuracy_decimals: 1
icon: mdi:flash
- platform: modbus_controller
address: 25274
register_type: holding
value_type: S_WORD
name: "Battery current"
device_class: current
unit_of_measurement: "A"
accuracy_decimals: 1
icon: mdi:current-dc
#select:
#- platform: modbus_controller
# id: energy_use_mode
# name: "Inv use mode"
# address: 20109
# optionsmap:
# "SBU (Sol/batt/uti)": 1
# "SUB (Sol/uti/batt)": 2
# "UTI (Utility only)": 3
# "SOL (Solar only)": 4
#- platform: modbus_controller
# id: charger_source_priority
# name: "Inv chg first "
# address: 20143
# optionsmap:
# "CSO (Solar first)": 0
# "SNU (Sol and uti)": 2
# "OSO (Solar only)": 3
#- platform: modbus_controller
# address: 20111
# id: inverter_ac_input_voltage_range
# name: "Inv work mode"
# optionsmap:
# "VDE (184-253VAC)": 0
# "UPS (170-280VAC)": 1
# "APL (90-280VAC)": 2
# "GEN (Generator)": 3
number:
#- platform: template
# name: "Battery Enable grid chg"
# id: inv_grid_chg_start
# device_class: voltage
# unit_of_measurement: "V"
# min_value: 10
# max_value: 14.6
# initial_value: 10.5
# step: 0.1
# optimistic: true
# restore_value: true
# mode: box
#- platform: template
# name: "Battery Disable grid chg"
# id: inv_grid_chg_stop
# device_class: voltage
# unit_of_measurement: "V"
# min_value: 10
# max_value: 14.6
# initial_value: 12
# step: 0.1
# optimistic: true
# restore_value: true
# mode: box
- platform: modbus_controller
id: easun_batt_float_voltage
name: "PV Charger Float voltage"
unit_of_measurement: "V"
address: 10103
value_type: U_WORD
multiply: 10
- platform: modbus_controller
id: easun_absorb_voltage
name: "PV Charger Absorb voltage"
unit_of_measurement: "V"
address: 10104
value_type: U_WORD
multiply: 10
- platform: modbus_controller
id: easun_batt_stop_dischg
name: "Battery stop discharging voltage"
unit_of_measurement: "V"
address: 20118
value_type: U_WORD
lambda: "return x * 0.1; "
write_lambda: |-
return x * 10 ;
- platform: modbus_controller
id: easun_batt_stop_chg
name: "Battery stop charging voltage"
unit_of_measurement: "V"
address: 20119
value_type: U_WORD
multiply: 10
- platform: modbus_controller
id: easun_batt_low_voltage
name: "Battery low voltage"
unit_of_measurement: "V"
address: 20127
value_type: U_WORD
multiply: 10
#- platform: modbus_controller
# id: batt_high_voltage
# name: "Battery high voltage"
# unit_of_measurement: "V"
# address: 20128
# value_type: U_WORD
# multiply: 10
#- platform: modbus_controller
# id: solar_charger_current
# name: "Inverter Charger current"
# unit_of_measurement: "A"
# address: 20132
# value_type: U_WORD
# multiply: 10
0 comentarii